@laerdal/life-react-components 1.3.2-dev.9 → 1.4.1-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/Accordion/ContentAccordion.js +102 -81
- package/dist/esm/Accordion/ContentAccordion.js.map +1 -1
- package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js +27 -27
- package/dist/esm/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/esm/Button/DualFunctionButton.js +4 -0
- package/dist/esm/Button/DualFunctionButton.js.map +1 -1
- package/dist/esm/Button/Iconbutton.js +0 -1
- package/dist/esm/Button/Iconbutton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownButton.js +5 -2
- package/dist/esm/Dropdown/DropdownButton.js.map +1 -1
- package/dist/esm/Dropdown/DropdownContent.js +6 -6
- package/dist/esm/Dropdown/DropdownContent.js.map +1 -1
- package/dist/esm/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/esm/HyperLink/HyperLink.js +2 -1
- package/dist/esm/HyperLink/HyperLink.js.map +1 -1
- package/dist/esm/InputFields/Checkbox.js +23 -13
- package/dist/esm/InputFields/Checkbox.js.map +1 -1
- package/dist/esm/Modals/ModalDialog.js +14 -5
- package/dist/esm/Modals/ModalDialog.js.map +1 -1
- package/dist/esm/Modals/ModalNote.js +1 -1
- package/dist/esm/Modals/ModalNote.js.map +1 -1
- package/dist/esm/Table/Table.js +131 -181
- package/dist/esm/Table/Table.js.map +1 -1
- package/dist/esm/Table/TableBody.js +135 -0
- package/dist/esm/Table/TableBody.js.map +1 -0
- package/dist/esm/Table/TableFooter.js +68 -0
- package/dist/esm/Table/TableFooter.js.map +1 -0
- package/dist/esm/Table/TableHeaders.js +55 -0
- package/dist/esm/Table/TableHeaders.js.map +1 -0
- package/dist/esm/Table/TableStyles.js +181 -110
- package/dist/esm/Table/TableStyles.js.map +1 -1
- package/dist/esm/Table/__tests__/Table.test.js +162 -21
- package/dist/esm/Table/__tests__/Table.test.js.map +1 -1
- package/dist/js/Accordion/ContentAccordion.d.ts +0 -9
- package/dist/js/Accordion/ContentAccordion.js +21 -42
- package/dist/js/Accordion/ContentAccordion.js.map +1 -1
- package/dist/js/Accordion/__tests__/ContetnAccordion.test.js +27 -33
- package/dist/js/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/js/Button/DualFunctionButton.js +4 -0
- package/dist/js/Button/DualFunctionButton.js.map +1 -1
- package/dist/js/Button/Iconbutton.d.ts +2 -2
- package/dist/js/Button/Iconbutton.js +0 -1
- package/dist/js/Button/Iconbutton.js.map +1 -1
- package/dist/js/Dropdown/DropdownButton.d.ts +1 -1
- package/dist/js/Dropdown/DropdownButton.js +5 -2
- package/dist/js/Dropdown/DropdownButton.js.map +1 -1
- package/dist/js/Dropdown/DropdownButtonTypes.d.ts +1 -0
- package/dist/js/Dropdown/DropdownContent.js +8 -8
- package/dist/js/Dropdown/DropdownContent.js.map +1 -1
- package/dist/js/Dropdown/DropdownFilter.d.ts +1 -1
- package/dist/js/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/js/HyperLink/HyperLink.d.ts +1 -1
- package/dist/js/HyperLink/HyperLink.js +2 -2
- package/dist/js/HyperLink/HyperLink.js.map +1 -1
- package/dist/js/InputFields/Checkbox.d.ts +3 -2
- package/dist/js/InputFields/Checkbox.js +13 -11
- package/dist/js/InputFields/Checkbox.js.map +1 -1
- package/dist/js/Modals/ModalDialog.d.ts +2 -1
- package/dist/js/Modals/ModalDialog.js +14 -5
- package/dist/js/Modals/ModalDialog.js.map +1 -1
- package/dist/js/Modals/ModalNote.d.ts +1 -1
- package/dist/js/Modals/ModalNote.js +1 -1
- package/dist/js/Modals/ModalNote.js.map +1 -1
- package/dist/js/Table/Table.js +166 -209
- package/dist/js/Table/Table.js.map +1 -1
- package/dist/js/Table/TableBody.d.ts +9 -0
- package/dist/js/Table/TableBody.js +167 -0
- package/dist/js/Table/TableBody.js.map +1 -0
- package/dist/js/Table/TableFooter.d.ts +15 -0
- package/dist/js/Table/TableFooter.js +95 -0
- package/dist/js/Table/TableFooter.js.map +1 -0
- package/dist/js/Table/TableHeaders.d.ts +9 -0
- package/dist/js/Table/TableHeaders.js +77 -0
- package/dist/js/Table/TableHeaders.js.map +1 -0
- package/dist/js/Table/TableStyles.d.ts +19 -7
- package/dist/js/Table/TableStyles.js +66 -16
- package/dist/js/Table/TableStyles.js.map +1 -1
- package/dist/js/Table/TableTypes.d.ts +26 -16
- package/dist/js/Table/__tests__/Table.test.js +172 -30
- package/dist/js/Table/__tests__/Table.test.js.map +1 -1
- package/dist/umd/Accordion/ContentAccordion.js +103 -82
- package/dist/umd/Accordion/ContentAccordion.js.map +1 -1
- package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js +26 -26
- package/dist/umd/Accordion/__tests__/ContetnAccordion.test.js.map +1 -1
- package/dist/umd/Button/DualFunctionButton.js +4 -0
- package/dist/umd/Button/DualFunctionButton.js.map +1 -1
- package/dist/umd/Button/Iconbutton.js +0 -1
- package/dist/umd/Button/Iconbutton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownButton.js +5 -2
- package/dist/umd/Dropdown/DropdownButton.js.map +1 -1
- package/dist/umd/Dropdown/DropdownContent.js +6 -6
- package/dist/umd/Dropdown/DropdownContent.js.map +1 -1
- package/dist/umd/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/umd/HyperLink/HyperLink.js +2 -1
- package/dist/umd/HyperLink/HyperLink.js.map +1 -1
- package/dist/umd/InputFields/Checkbox.js +23 -13
- package/dist/umd/InputFields/Checkbox.js.map +1 -1
- package/dist/umd/Modals/ModalDialog.js +14 -5
- package/dist/umd/Modals/ModalDialog.js.map +1 -1
- package/dist/umd/Modals/ModalNote.js +1 -1
- package/dist/umd/Modals/ModalNote.js.map +1 -1
- package/dist/umd/Table/Table.js +157 -188
- package/dist/umd/Table/Table.js.map +1 -1
- package/dist/umd/Table/TableBody.js +270 -0
- package/dist/umd/Table/TableBody.js.map +1 -0
- package/dist/umd/Table/TableFooter.js +89 -0
- package/dist/umd/Table/TableFooter.js.map +1 -0
- package/dist/umd/Table/TableHeaders.js +91 -0
- package/dist/umd/Table/TableHeaders.js.map +1 -0
- package/dist/umd/Table/TableStyles.js +185 -115
- package/dist/umd/Table/TableStyles.js.map +1 -1
- package/dist/umd/Table/__tests__/Table.test.js +164 -25
- package/dist/umd/Table/__tests__/Table.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Table/TableStyles.ts"],"names":["TableWrapper","styled","div","
|
|
1
|
+
{"version":3,"sources":["../../../src/Table/TableStyles.ts"],"names":["TableWrapper","styled","div","StyledTable","table","StyledTableHeader","thead","StyledTableHeaderTitle","tr","StyledTableHeaderTitleContent","COLORS","neutral_200","ComponentTextStyle","Bold","black","StyledTableHeaderColumns","StyledTableHeaderColumnContent","StyledTableHeaderColumn","th","neutral_600","white","primary_20","primary_700","Z_INDEXES","hover","primary_100","primary_800","active","focus_25","focus","neutral_20","StyledTableBodyRow","primary_200","StyledTableBody","tbody","neutral_100","StyledTableCell","td","StyledTableCellContent","Regular","StyledTableCellIcon","neutral_700","StyledTableCellText","span","StyledTableFooter","tfoot","StyledTableFooterContent","StyledTableFooterCurrentInfo","StyledTableFooterControls","StyledTableSpinner","StyledTableFooterCollapseButton","button","neutral_800"],"mappings":"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","sourcesContent":["/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\n\n/**\n * Import custom style properties.\n */\nimport {COLORS} from '../styles';\nimport {\n ComponentLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling\n} from '../styles/typography';\nimport {Z_INDEXES} from '../styles/z-indexes';\n\n/**\n * Table styles\n */\n\nexport const TableWrapper = styled.div`\n position: relative;\n`;\n\n\nexport const StyledTable = styled.table`\n background: transparent;\n width: 100%;\n table-layout: fixed;\n`;\n\nexport const StyledTableHeader = styled.thead`\n`;\n\nexport const StyledTableHeaderTitle = styled.tr`\n`;\n\nexport const StyledTableHeaderTitleContent = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n box-sizing: border-box;\n min-height: 56px;\n border-bottom: 1px solid ${COLORS.neutral_200};\n border-top: 2px solid ${COLORS.neutral_200};\n padding: 0 16px;\n\n ${ComponentLStyling(ComponentTextStyle.Bold, COLORS.black)}\n .title-menu {\n margin-right: -16px;\n }\n`;\n\nexport const StyledTableHeaderColumns = styled.tr`\n`;\n\nexport const StyledTableHeaderColumnContent = styled.div`\n box-sizing: border-box;\n min-height: 56px;\n padding: 0 16px;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-top: 1px solid ${COLORS.neutral_200};\n border-bottom: 1px solid ${COLORS.neutral_200};\n`;\n\nexport const StyledTableHeaderColumn = styled.th`\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n position: relative;\n\n background-color: ${COLORS.white};\n\n //fixes header heights no idea why\n height: 1px;\n\n &.sortable {\n cursor: pointer;\n\n &:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:active {\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n box-shadow: none !important;\n z-index: ${Z_INDEXES.active};\n }\n\n &:focus {\n outline: none;\n box-shadow: 0 4px 12px ${COLORS.focus_25}, 0 0 8px ${COLORS.focus};\n z-index: ${Z_INDEXES.focus};\n }\n }\n\n &.sortable ${StyledTableHeaderColumnContent} > svg {\n opacity: 0;\n }\n\n &.sortable.sorted ${StyledTableHeaderColumnContent} > svg {\n opacity: 1;\n }\n\n &.sorted {\n background-color: ${COLORS.neutral_20};\n }\n\n`;\n\nexport const StyledTableBodyRow = styled.tr`\n cursor: pointer;\n position: relative;\n outline: none;\n\n &:hover {\n background-color: ${COLORS.primary_200};\n z-index: ${Z_INDEXES.hover};\n }\n\n &:focus {\n background-color: ${COLORS.primary_200};\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2E7FA1;\n z-index: ${Z_INDEXES.focus};\n outline: none;\n }\n\n &:active {\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n }\n\n`;\n\nexport const StyledTableBody = styled.tbody`\n ${StyledTableBodyRow}:nth-child(odd):not(:hover):not(:focus):not(:active) {\n background-color: ${COLORS.neutral_100};\n }\n\n ${StyledTableBodyRow}:nth-child(even):not(:hover):not(:focus):not(:active) {\n background-color: ${COLORS.neutral_20};\n }\n`;\n\n\nexport const StyledTableCell = styled.td``;\n\nexport const StyledTableCellContent = styled.div`\n min-height: 48px;\n\n padding: 0 16px;\n ${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}\n\n display: flex;\n align-items: center;\n justify-content: left;\n gap: 8px;\n\n &.truncate-text,\n &.truncate-text span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &.left {\n justify-content: left;\n }\n\n &.right {\n justify-content: right;\n }\n\n &.center {\n justify-content: center;\n }\n\n a:first-letter,\n span:first-letter {\n text-transform: uppercase;\n }\n`;\n\nexport const StyledTableCellIcon = styled.div`\n color: ${COLORS.neutral_700};\n width: 24px;\n height: 24px;\n\n svg {\n color: ${COLORS.neutral_700};\n width: 24px;\n height: 24px;\n }\n`;\n\nexport const StyledTableCellText = styled.span`\n padding: 12px 0;\n`;\n\n\nexport const StyledTableFooter = styled.tfoot`\n`;\n\nexport const StyledTableFooterContent = styled.div`\n border-top: 2px solid ${COLORS.neutral_200};\n border-bottom: 1px solid ${COLORS.neutral_200};\n box-sizing: border-box;\n min-height: 56px;\n\n display: flex;\n align-items: center;\n justify-content: right;\n\n`;\n\nexport const StyledTableFooterCurrentInfo = styled.span`\n padding: 0 16px;\n ${ComponentXSStyling(ComponentTextStyle.Regular, COLORS.black)}\n`;\n\nexport const StyledTableFooterControls = styled.div`\n display: flex;\n`;\n\nexport const StyledTableSpinner = styled.div`\n height: 100%;\n width: 100%;\n position: absolute;\n background-color: rgba(0, 0, 0, 0.5);\n top: 0;\n`;\n\nexport const StyledTableFooterCollapseButton = styled.button`\n position: relative;\n border-bottom: 1px solid ${COLORS.neutral_200};\n border-top: 1px solid ${COLORS.neutral_200};\n border-left: none;\n border-right: none;\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n gap: 4px;\n background: ${COLORS.white};\n\n cursor: pointer;\n\n ${ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_800)}\n &:focus {\n outline: none;\n z-index: ${Z_INDEXES.focus};\n color: ${COLORS.neutral_600};\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2E7FA1;\n }\n\n &:hover {\n z-index: ${Z_INDEXES.hover};\n background: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:active {\n box-shadow: none;\n z-index: ${Z_INDEXES.active};\n background: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n\n &:disabled {\n display: none;\n }\n\n`;\n"],"file":"TableStyles.js"}
|
|
@@ -1,38 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for the table.
|
|
3
3
|
*/
|
|
4
|
+
import { DropdownButtonProps } from '../Dropdown/DropdownButtonTypes';
|
|
5
|
+
import { ButtonProps } from '../Button/Button';
|
|
6
|
+
import { IconButtonProps } from '../Button/Iconbutton';
|
|
7
|
+
import { HyperlinkProps } from '../HyperLink/HyperLink';
|
|
4
8
|
export interface TableProps {
|
|
5
|
-
rowClick?: (row: any) => void;
|
|
6
|
-
linkClick?: (row: any, key: string) => void;
|
|
7
|
-
iconClick?: (row: any, key: string) => void;
|
|
8
9
|
title?: string;
|
|
9
10
|
columns: TableColumn[];
|
|
10
11
|
rows: any[];
|
|
11
|
-
|
|
12
|
+
accordion?: boolean;
|
|
13
|
+
collapsed?: boolean;
|
|
14
|
+
collapsedRows?: number;
|
|
15
|
+
remoteOperations?: boolean;
|
|
12
16
|
pagination?: TablePagination;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
onPreviousPageClick?: () => void;
|
|
18
|
+
onNextPageClick?: () => void;
|
|
19
|
+
onRowsPerPageChange?: (count: number) => void;
|
|
20
|
+
onTriggerSortingChange?: (key: string, direction: TableSortingDirection) => void;
|
|
17
21
|
showLoadingIndicator?: boolean;
|
|
22
|
+
menu?: Pick<DropdownButtonProps, 'items' | 'onClick' | 'disabled' | 'width' | 'itemsType' | 'multiSelect'>;
|
|
23
|
+
selectable?: boolean;
|
|
24
|
+
onSelectionChange?: (value: any | any[]) => void;
|
|
25
|
+
multiSelect?: boolean;
|
|
26
|
+
keyExpr?: string;
|
|
27
|
+
selectedRows?: any[];
|
|
18
28
|
}
|
|
19
29
|
export interface TableColumn {
|
|
30
|
+
key: string;
|
|
20
31
|
name: string;
|
|
21
32
|
filterValue?: string;
|
|
22
|
-
|
|
33
|
+
icon?: React.ReactNode;
|
|
34
|
+
width?: string | number;
|
|
23
35
|
colorFn?: (row: any, key: string) => string;
|
|
24
|
-
|
|
25
|
-
icon?: ColumnIcons;
|
|
26
|
-
isLink?: boolean;
|
|
27
|
-
width?: number;
|
|
36
|
+
justify?: TableJustification;
|
|
28
37
|
shortenText?: boolean;
|
|
38
|
+
action?: (row: any, event: any) => void;
|
|
39
|
+
type?: TableColumnTypes;
|
|
40
|
+
additionalProps?: Pick<ButtonProps, 'variant' | 'size' | 'width' | 'icon'> | Pick<IconButtonProps, 'variant' | 'shape' | 'disabled'> | Pick<HyperlinkProps, 'variant'>;
|
|
29
41
|
customContent?: (row: any, key: string) => any;
|
|
30
42
|
sortable?: boolean;
|
|
31
|
-
justify?: TableJustification;
|
|
32
43
|
sortingDirection?: TableSortingDirection;
|
|
33
44
|
}
|
|
45
|
+
export declare type TableColumnTypes = 'text' | 'boolean' | 'number' | 'custom' | 'button' | 'icon' | 'link';
|
|
34
46
|
export declare type TableJustification = 'right' | 'left' | 'center';
|
|
35
|
-
declare type ColumnIcons = 'Add' | 'ArrowDropDown' | 'ArrowDropUp' | 'ArrowLineDown' | 'ArrowLineLeft' | 'ArrowLineRight' | 'ArrowLineUp' | 'ArrowStopLeft' | 'ArrowStopRight' | 'Attachment' | 'Attention' | 'BackwardsFiveSec' | 'Book' | 'BookmarkOff' | 'BookmarkOn' | 'Bullet' | 'Calendar' | 'CheckboxOff' | 'CheckboxOn' | 'CheckboxSemi' | 'CheckComplete' | 'ChevronDown' | 'ChevronLeft' | 'ChevronRight' | 'ChevronUp' | 'Clear' | 'Close' | 'ClosedCaptionOff' | 'ClosedCaptionOn' | 'CloudAttention' | 'CloudCheck' | 'CloudDownload' | 'CloudLocked' | 'CloudNoConnection' | 'CloudSyncing' | 'CloudUpload' | 'Cloud' | 'Dashboard' | 'Delete' | 'Download' | 'DragHandle' | 'DragIndicator' | 'Edit' | 'Educator' | 'Equals' | 'EventLog' | 'ExtendTextArea' | 'Filter' | 'Forward' | 'ForwardSlash' | 'ForwardFiveSec' | 'FullscreenExit' | 'Fullscreen' | 'GearSettings' | 'GridView' | 'Group' | 'GuidedTour' | 'Help' | 'Hierarchy' | 'History' | 'Home' | 'Information' | 'Institute' | 'Language' | 'ListView' | 'LoadingMedium' | 'LoadingSmall' | 'LockedOff' | 'LockedOn' | 'Login' | 'Logout' | 'Loop' | 'Mail' | 'Manikin' | 'MapPoint' | 'Menu' | 'Minus' | 'MoreHorizontal' | 'MoreVertical' | 'NotificationNew' | 'Notification' | 'OpenFolder' | 'OpenNewWindow' | 'Pause' | 'PlayOutline' | 'Play' | 'Plus' | 'PointDown' | 'PointLeft' | 'PointRight' | 'PointUp' | 'RadioButtonOff' | 'RadioButtonOn' | 'Record' | 'Refresh' | 'Replay' | 'Rewind' | 'Save' | 'Search' | 'Share' | 'ShoppingCart' | 'StarFilled' | 'StarOutlined' | 'Stop' | 'Support' | 'Team' | 'ThumbsDown' | 'ThumbsUp' | 'TimeLimited' | 'Time' | 'Tip' | 'Upload' | 'Usb' | 'User' | 'Video' | 'VisibleOff' | 'VisibleOn' | 'VolumeDown' | 'VolumeOff' | 'VolumeUp';
|
|
36
47
|
export declare type TableSortingDirection = 'asc' | 'desc';
|
|
37
48
|
export interface TablePagination {
|
|
38
49
|
from: number;
|
|
@@ -41,4 +52,3 @@ export interface TablePagination {
|
|
|
41
52
|
currentPage: number;
|
|
42
53
|
rowsPerPage: number;
|
|
43
54
|
}
|
|
44
|
-
export {};
|
|
@@ -8,6 +8,10 @@ var _index = require("../index");
|
|
|
8
8
|
|
|
9
9
|
require("jest-styled-components");
|
|
10
10
|
|
|
11
|
+
var _TableStyles = require("../TableStyles");
|
|
12
|
+
|
|
13
|
+
var _testUtils = require("react-dom/test-utils");
|
|
14
|
+
|
|
11
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
16
|
|
|
13
17
|
/**
|
|
@@ -226,28 +230,6 @@ describe('<Table />', function () {
|
|
|
226
230
|
expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(false);
|
|
227
231
|
expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(false);
|
|
228
232
|
});
|
|
229
|
-
it('Should render columns with no-border class in the column header row, in case title is not passed', function () {
|
|
230
|
-
var columns = [{
|
|
231
|
-
key: 'column1',
|
|
232
|
-
name: 'Column 1'
|
|
233
|
-
}, {
|
|
234
|
-
key: 'column2',
|
|
235
|
-
name: 'Column 2'
|
|
236
|
-
}];
|
|
237
|
-
var rows = [{
|
|
238
|
-
column1: 'Test content',
|
|
239
|
-
column2: 'Test content 2'
|
|
240
|
-
}];
|
|
241
|
-
|
|
242
|
-
var _render10 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
243
|
-
rows: rows,
|
|
244
|
-
columns: columns
|
|
245
|
-
})),
|
|
246
|
-
getByTestId = _render10.getByTestId;
|
|
247
|
-
|
|
248
|
-
expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(true);
|
|
249
|
-
expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(true);
|
|
250
|
-
});
|
|
251
233
|
});
|
|
252
234
|
describe('Table Body Row tests', function () {
|
|
253
235
|
it('Should not render "No Data" row in case there are rows', function () {
|
|
@@ -263,11 +245,11 @@ describe('<Table />', function () {
|
|
|
263
245
|
column2: 'Test content 2'
|
|
264
246
|
}];
|
|
265
247
|
|
|
266
|
-
var
|
|
248
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
267
249
|
rows: rows,
|
|
268
250
|
columns: columns
|
|
269
251
|
})),
|
|
270
|
-
queryByTestId =
|
|
252
|
+
queryByTestId = _render10.queryByTestId;
|
|
271
253
|
|
|
272
254
|
expect(queryByTestId('TestTableNoDataRow')).toBeNull();
|
|
273
255
|
});
|
|
@@ -283,11 +265,11 @@ describe('<Table />', function () {
|
|
|
283
265
|
}];
|
|
284
266
|
var rows = [];
|
|
285
267
|
|
|
286
|
-
var
|
|
268
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
287
269
|
rows: rows,
|
|
288
270
|
columns: columns
|
|
289
271
|
})),
|
|
290
|
-
queryByTestId =
|
|
272
|
+
queryByTestId = _render11.queryByTestId;
|
|
291
273
|
|
|
292
274
|
expect(queryByTestId('TestTableNoDataRow')).not.toBeNull();
|
|
293
275
|
expect((_queryByTestId2 = queryByTestId('TestTableNoDataRow')) === null || _queryByTestId2 === void 0 ? void 0 : _queryByTestId2.textContent).toEqual('There are no rows to display');
|
|
@@ -305,11 +287,11 @@ describe('<Table />', function () {
|
|
|
305
287
|
column2: 'Test content 2'
|
|
306
288
|
}];
|
|
307
289
|
|
|
308
|
-
var
|
|
290
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
309
291
|
rows: rows,
|
|
310
292
|
columns: columns
|
|
311
293
|
})),
|
|
312
|
-
getByTestId =
|
|
294
|
+
getByTestId = _render12.getByTestId;
|
|
313
295
|
|
|
314
296
|
expect(getByTestId('TestTableDataRow')).toBeDefined();
|
|
315
297
|
expect(getByTestId('TestTableDataRow').children.length).toEqual(2);
|
|
@@ -330,13 +312,173 @@ describe('<Table />', function () {
|
|
|
330
312
|
column2: 'Test content 2'
|
|
331
313
|
}];
|
|
332
314
|
|
|
333
|
-
var
|
|
315
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
334
316
|
rows: rows,
|
|
335
317
|
columns: columns
|
|
336
318
|
})),
|
|
337
|
-
getByTestId =
|
|
319
|
+
getByTestId = _render13.getByTestId;
|
|
338
320
|
|
|
339
321
|
expect(getByTestId('TestTableFooterRow')).toBeDefined();
|
|
340
322
|
});
|
|
323
|
+
describe('Table Accordion tests', function () {
|
|
324
|
+
it('Should render collapse button when configured as accordion', function () {
|
|
325
|
+
var columns = [{
|
|
326
|
+
key: 'column1',
|
|
327
|
+
name: 'Column 1'
|
|
328
|
+
}, {
|
|
329
|
+
key: 'column2',
|
|
330
|
+
name: 'Column 2'
|
|
331
|
+
}];
|
|
332
|
+
var rows = [{
|
|
333
|
+
column1: 'Test content',
|
|
334
|
+
column2: 'Test content 2'
|
|
335
|
+
}, {
|
|
336
|
+
column1: 'Test content',
|
|
337
|
+
column2: 'Test content 2'
|
|
338
|
+
}, {
|
|
339
|
+
column1: 'Test content',
|
|
340
|
+
column2: 'Test content 2'
|
|
341
|
+
}, {
|
|
342
|
+
column1: 'Test content',
|
|
343
|
+
column2: 'Test content 2'
|
|
344
|
+
}];
|
|
345
|
+
var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
346
|
+
rows: rows,
|
|
347
|
+
columns: columns,
|
|
348
|
+
accordion: true,
|
|
349
|
+
collapsedRows: 3
|
|
350
|
+
}));
|
|
351
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableFooterCollapseButton))).toHaveLength(1);
|
|
352
|
+
});
|
|
353
|
+
it('Should not render all items when collapsed', function () {
|
|
354
|
+
var columns = [{
|
|
355
|
+
key: 'column1',
|
|
356
|
+
name: 'Column 1'
|
|
357
|
+
}, {
|
|
358
|
+
key: 'column2',
|
|
359
|
+
name: 'Column 2'
|
|
360
|
+
}];
|
|
361
|
+
var rows = [{
|
|
362
|
+
column1: 'Test content',
|
|
363
|
+
column2: 'Test content 2'
|
|
364
|
+
}, {
|
|
365
|
+
column1: 'Test content',
|
|
366
|
+
column2: 'Test content 2'
|
|
367
|
+
}, {
|
|
368
|
+
column1: 'Test content',
|
|
369
|
+
column2: 'Test content 2'
|
|
370
|
+
}, {
|
|
371
|
+
column1: 'Test content',
|
|
372
|
+
column2: 'Test content 2'
|
|
373
|
+
}];
|
|
374
|
+
var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
375
|
+
rows: rows,
|
|
376
|
+
columns: columns,
|
|
377
|
+
accordion: true,
|
|
378
|
+
collapsedRows: 3
|
|
379
|
+
}));
|
|
380
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(3);
|
|
381
|
+
});
|
|
382
|
+
it('Should render all items when not collapsed', function () {
|
|
383
|
+
var columns = [{
|
|
384
|
+
key: 'column1',
|
|
385
|
+
name: 'Column 1'
|
|
386
|
+
}, {
|
|
387
|
+
key: 'column2',
|
|
388
|
+
name: 'Column 2'
|
|
389
|
+
}];
|
|
390
|
+
var rows = [{
|
|
391
|
+
column1: 'Test content',
|
|
392
|
+
column2: 'Test content 2'
|
|
393
|
+
}, {
|
|
394
|
+
column1: 'Test content',
|
|
395
|
+
column2: 'Test content 2'
|
|
396
|
+
}, {
|
|
397
|
+
column1: 'Test content',
|
|
398
|
+
column2: 'Test content 2'
|
|
399
|
+
}, {
|
|
400
|
+
column1: 'Test content',
|
|
401
|
+
column2: 'Test content 2'
|
|
402
|
+
}];
|
|
403
|
+
var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
404
|
+
rows: rows,
|
|
405
|
+
columns: columns,
|
|
406
|
+
accordion: true,
|
|
407
|
+
collapsedRows: 3,
|
|
408
|
+
collapsed: false
|
|
409
|
+
}));
|
|
410
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(4);
|
|
411
|
+
});
|
|
412
|
+
it('Should expand when show more button is clicked', function () {
|
|
413
|
+
var columns = [{
|
|
414
|
+
key: 'column1',
|
|
415
|
+
name: 'Column 1'
|
|
416
|
+
}, {
|
|
417
|
+
key: 'column2',
|
|
418
|
+
name: 'Column 2'
|
|
419
|
+
}];
|
|
420
|
+
var rows = [{
|
|
421
|
+
column1: 'Test content',
|
|
422
|
+
column2: 'Test content 2'
|
|
423
|
+
}, {
|
|
424
|
+
column1: 'Test content',
|
|
425
|
+
column2: 'Test content 2'
|
|
426
|
+
}, {
|
|
427
|
+
column1: 'Test content',
|
|
428
|
+
column2: 'Test content 2'
|
|
429
|
+
}, {
|
|
430
|
+
column1: 'Test content',
|
|
431
|
+
column2: 'Test content 2'
|
|
432
|
+
}];
|
|
433
|
+
var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
434
|
+
rows: rows,
|
|
435
|
+
columns: columns,
|
|
436
|
+
accordion: true,
|
|
437
|
+
collapsedRows: 3,
|
|
438
|
+
collapsed: true
|
|
439
|
+
}));
|
|
440
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(3);
|
|
441
|
+
(0, _testUtils.act)(function () {
|
|
442
|
+
var button = wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableFooterCollapseButton))[0];
|
|
443
|
+
button.click();
|
|
444
|
+
});
|
|
445
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(4);
|
|
446
|
+
});
|
|
447
|
+
it('Should collapse when show less button is clicked', function () {
|
|
448
|
+
var columns = [{
|
|
449
|
+
key: 'column1',
|
|
450
|
+
name: 'Column 1'
|
|
451
|
+
}, {
|
|
452
|
+
key: 'column2',
|
|
453
|
+
name: 'Column 2'
|
|
454
|
+
}];
|
|
455
|
+
var rows = [{
|
|
456
|
+
column1: 'Test content',
|
|
457
|
+
column2: 'Test content 2'
|
|
458
|
+
}, {
|
|
459
|
+
column1: 'Test content',
|
|
460
|
+
column2: 'Test content 2'
|
|
461
|
+
}, {
|
|
462
|
+
column1: 'Test content',
|
|
463
|
+
column2: 'Test content 2'
|
|
464
|
+
}, {
|
|
465
|
+
column1: 'Test content',
|
|
466
|
+
column2: 'Test content 2'
|
|
467
|
+
}];
|
|
468
|
+
var wrapper = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_index.Table, {
|
|
469
|
+
rows: rows,
|
|
470
|
+
columns: columns,
|
|
471
|
+
accordion: true,
|
|
472
|
+
collapsedRows: 3,
|
|
473
|
+
collapsed: false
|
|
474
|
+
}));
|
|
475
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(4);
|
|
476
|
+
(0, _testUtils.act)(function () {
|
|
477
|
+
var button = wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableFooterCollapseButton))[0];
|
|
478
|
+
button.click();
|
|
479
|
+
});
|
|
480
|
+
expect(wrapper.container.querySelectorAll("".concat(_TableStyles.StyledTableBodyRow))).toHaveLength(3);
|
|
481
|
+
});
|
|
482
|
+
});
|
|
341
483
|
});
|
|
342
484
|
//# sourceMappingURL=Table.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/Table/__tests__/Table.test.tsx"],"names":["describe","it","columns","key","name","rows","column1","column2","getByTestId","expect","toBeDefined","queryByTestId","not","toBeNull","tableHeaderRow","children","textContent","toContain","getElementsByTagName","length","toEqual","classList","contains","toBe"],"mappings":"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","sourcesContent":["import React from 'react';\n/**\n * Import React libraries.\n */\nimport { render } from '@testing-library/react';\n\n/**\n * Import custom components.\n */\nimport { Table } from '../index';\n\n/**\n * Import third-party libraries.\n */\nimport 'jest-styled-components';\n\n/**\n * Import custom types.\n */\nimport { TableColumn } from '../TableTypes';\n\ndescribe('<Table />', () => {\n it('Renders the Table', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(getByTestId('TestTable')).toBeDefined();\n });\n\n describe('Table Header Row Tests', () => {\n it('Should render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(queryByTestId('TestTableHeaderRow')).not.toBeNull();\n });\n\n it('Should not render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableHeaderRow')).toBeNull();\n });\n\n describe('Table Header Row functional tests', () => {\n it('Should have title', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n const tableHeaderRow = queryByTestId('TestTableHeaderRow');\n expect(tableHeaderRow?.children[0].children[0].textContent).toContain('Test Title');\n });\n\n it('Should have options menu', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n expect(queryByTestId('TestTableHeaderRow')?.getElementsByTagName('svg')).not.toBeNull();\n });\n });\n });\n\n describe('Table Column Header Row Tests', () => {\n it('Should render column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow')).not.toBeNull();\n });\n\n it('Should render two columns in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children.length).toEqual(2);\n });\n\n it('Should render correct column names in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].textContent).toEqual('Column 1');\n expect(getByTestId('TestTableColumnHeaderRow').children[1].textContent).toEqual('Column 2');\n });\n\n it('Should render columns without no-border class in the column header row, in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"test title\" />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(false);\n expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(false);\n });\n\n it('Should render columns with no-border class in the column header row, in case title is not passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(true);\n expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(true);\n });\n });\n\n describe('Table Body Row tests', () => {\n it('Should not render \"No Data\" row in case there are rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).toBeNull();\n });\n\n it('Should render \"No Data\" row in case there are no rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).not.toBeNull();\n expect(queryByTestId('TestTableNoDataRow')?.textContent).toEqual('There are no rows to display');\n });\n\n it('Should render a data row with correct content for each row that is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableDataRow')).toBeDefined();\n expect(getByTestId('TestTableDataRow').children.length).toEqual(2);\n expect(getByTestId('TestTableDataRow').children[0].textContent).toEqual('Test content');\n expect(getByTestId('TestTableDataRow').children[1].textContent).toEqual('Test content 2');\n });\n });\n\n it('Should render footer row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableFooterRow')).toBeDefined();\n });\n});\n"],"file":"Table.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/Table/__tests__/Table.test.tsx"],"names":["describe","it","columns","key","name","rows","column1","column2","getByTestId","expect","toBeDefined","queryByTestId","not","toBeNull","tableHeaderRow","children","textContent","toContain","getElementsByTagName","length","toEqual","classList","contains","toBe","wrapper","container","querySelectorAll","StyledTableFooterCollapseButton","toHaveLength","StyledTableBodyRow","button","click"],"mappings":"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","sourcesContent":["import React from 'react';\n/**\n * Import React libraries.\n */\nimport { render } from '@testing-library/react';\n\n/**\n * Import custom components.\n */\nimport { Table } from '../index';\n\n/**\n * Import third-party libraries.\n */\nimport 'jest-styled-components';\n\n/**\n * Import custom types.\n */\nimport { TableColumn } from '../TableTypes';\nimport {StyledTableBodyRow, StyledTableFooterCollapseButton} from '../TableStyles';\nimport {act} from 'react-dom/test-utils';\n\ndescribe('<Table />', () => {\n it('Renders the Table', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(getByTestId('TestTable')).toBeDefined();\n });\n\n describe('Table Header Row Tests', () => {\n it('Should render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test title\" />);\n expect(queryByTestId('TestTableHeaderRow')).not.toBeNull();\n });\n\n it('Should not render table header row in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableHeaderRow')).toBeNull();\n });\n\n describe('Table Header Row functional tests', () => {\n it('Should have title', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n const tableHeaderRow = queryByTestId('TestTableHeaderRow');\n expect(tableHeaderRow?.children[0].children[0].textContent).toContain('Test Title');\n });\n\n it('Should have options menu', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} title=\"Test Title\" />);\n expect(queryByTestId('TestTableHeaderRow')?.getElementsByTagName('svg')).not.toBeNull();\n });\n });\n });\n\n describe('Table Column Header Row Tests', () => {\n it('Should render column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow')).not.toBeNull();\n });\n\n it('Should render two columns in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children.length).toEqual(2);\n });\n\n it('Should render correct column names in the column header row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].textContent).toEqual('Column 1');\n expect(getByTestId('TestTableColumnHeaderRow').children[1].textContent).toEqual('Column 2');\n });\n\n it('Should render columns without no-border class in the column header row, in case title is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} title=\"test title\" />);\n expect(getByTestId('TestTableColumnHeaderRow').children[0].classList.contains('no-border')).toBe(false);\n expect(getByTestId('TestTableColumnHeaderRow').children[1].classList.contains('no-border')).toBe(false);\n });\n\n });\n\n describe('Table Body Row tests', () => {\n it('Should not render \"No Data\" row in case there are rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).toBeNull();\n });\n\n it('Should render \"No Data\" row in case there are no rows', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [];\n const { queryByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(queryByTestId('TestTableNoDataRow')).not.toBeNull();\n expect(queryByTestId('TestTableNoDataRow')?.textContent).toEqual('There are no rows to display');\n });\n\n it('Should render a data row with correct content for each row that is passed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableDataRow')).toBeDefined();\n expect(getByTestId('TestTableDataRow').children.length).toEqual(2);\n expect(getByTestId('TestTableDataRow').children[0].textContent).toEqual('Test content');\n expect(getByTestId('TestTableDataRow').children[1].textContent).toEqual('Test content 2');\n });\n });\n\n it('Should render footer row', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const { getByTestId } = render(<Table rows={rows} columns={columns} />);\n expect(getByTestId('TestTableFooterRow')).toBeDefined();\n });\n\n describe('Table Accordion tests', () => {\n it('Should render collapse button when configured as accordion', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)).toHaveLength(1);\n });\n\n it('Should not render all items when collapsed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n });\n\n it('Should render all items when not collapsed', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={false}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n });\n\n it('Should expand when show more button is clicked', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={true}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n\n act(() => {\n let button = wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)[0] as HTMLButtonElement;\n button.click();\n })\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n });\n\n it('Should collapse when show less button is clicked', () => {\n const columns: TableColumn[] = [\n {\n key: 'column1',\n name: 'Column 1',\n },\n {\n key: 'column2',\n name: 'Column 2',\n },\n ];\n const rows: any[] = [\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n {\n column1: 'Test content',\n column2: 'Test content 2',\n },\n ];\n const wrapper = render(<Table rows={rows} columns={columns} accordion={true} collapsedRows={3}\n collapsed={false}/>);\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(4);\n\n act(() => {\n let button = wrapper.container.querySelectorAll(`${StyledTableFooterCollapseButton}`)[0] as HTMLButtonElement;\n button.click();\n })\n\n expect(wrapper.container.querySelectorAll(`${StyledTableBodyRow}`)).toHaveLength(3);\n });\n });\n});\n"],"file":"Table.test.js"}
|