@axinom/mosaic-ui 0.69.0-rc.2 → 0.69.0-rc.21
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/components/Buttons/Button/Button.d.ts +3 -3
- package/dist/components/Buttons/Button/Button.d.ts.map +1 -1
- package/dist/components/Buttons/Button.model.d.ts +2 -1
- package/dist/components/Buttons/Button.model.d.ts.map +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts +0 -1
- package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts.map +1 -1
- package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts +2 -2
- package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicDataList.d.ts +1 -1
- package/dist/components/DynamicDataList/DynamicDataList.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicDataList.model.d.ts +0 -1
- package/dist/components/DynamicDataList/DynamicDataList.model.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts +2 -2
- package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts +2 -0
- package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts +2 -2
- package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts.map +1 -1
- package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts +2 -2
- package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts +2 -2
- package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts +1 -1
- package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts +1 -1
- package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/useRowAnimation.d.ts.map +1 -1
- package/dist/components/DynamicDataList/helpers/useRowEditing.d.ts.map +1 -1
- package/dist/components/EmptyStation/EmptyStation.d.ts.map +1 -1
- package/dist/components/Explorer/BulkEdit/FormFieldsConfigConverter.d.ts.map +1 -1
- package/dist/components/Explorer/BulkEdit/GenerateMutation.d.ts.map +1 -1
- package/dist/components/Explorer/BulkEdit/helpers/FieldWrapper.d.ts.map +1 -1
- package/dist/components/Explorer/BulkEdit/useBulkEdit.d.ts.map +1 -1
- package/dist/components/Explorer/Explorer.d.ts +1 -1
- package/dist/components/Explorer/Explorer.d.ts.map +1 -1
- package/dist/components/Explorer/Explorer.model.d.ts +0 -1
- package/dist/components/Explorer/Explorer.model.d.ts.map +1 -1
- package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts +1 -1
- package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts.map +1 -1
- package/dist/components/Explorer/QuickEdit/useQuickEdit.d.ts.map +1 -1
- package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts +1 -1
- package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts.map +1 -1
- package/dist/components/Explorer/helpers/useActions.d.ts +0 -1
- package/dist/components/Explorer/helpers/useActions.d.ts.map +1 -1
- package/dist/components/Explorer/helpers/useDataProvider.d.ts +0 -1
- package/dist/components/Explorer/helpers/useDataProvider.d.ts.map +1 -1
- package/dist/components/Explorer/helpers/useFilters.d.ts +0 -1
- package/dist/components/Explorer/helpers/useFilters.d.ts.map +1 -1
- package/dist/components/FieldSelection/FieldSelection.d.ts +1 -0
- package/dist/components/FieldSelection/FieldSelection.d.ts.map +1 -1
- package/dist/components/Filters/Filter/Filter.d.ts +2 -2
- package/dist/components/Filters/Filter/Filter.d.ts.map +1 -1
- package/dist/components/Filters/Filters.d.ts +2 -2
- package/dist/components/Filters/Filters.d.ts.map +1 -1
- package/dist/components/Filters/Filters.model.d.ts +0 -1
- package/dist/components/Filters/Filters.model.d.ts.map +1 -1
- package/dist/components/Filters/Validators/DateRangeFilterValidator.d.ts.map +1 -1
- package/dist/components/Filters/Validators/NumberRangeFilterValidator.d.ts.map +1 -1
- package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts +0 -1
- package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts.map +1 -1
- package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts +2 -2
- package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts.map +1 -1
- package/dist/components/FormElements/FormGroup/FormGroup.d.ts +12 -0
- package/dist/components/FormElements/FormGroup/FormGroup.d.ts.map +1 -0
- package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts +5 -0
- package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts.map +1 -1
- package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts +0 -1
- package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts.map +1 -1
- package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts +2 -2
- package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts.map +1 -1
- package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts +2 -2
- package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts.map +1 -1
- package/dist/components/FormElements/Tags/Tags.d.ts +2 -2
- package/dist/components/FormElements/Tags/Tags.d.ts.map +1 -1
- package/dist/components/FormElements/Tags/TagsField.d.ts +2 -2
- package/dist/components/FormElements/Tags/TagsField.d.ts.map +1 -1
- package/dist/components/FormElements/formStoryHelper.d.ts.map +1 -1
- package/dist/components/FormElements/index.d.ts +1 -0
- package/dist/components/FormElements/index.d.ts.map +1 -1
- package/dist/components/FormElements/useFormikError.d.ts.map +1 -1
- package/dist/components/FormStation/Create/Create.d.ts +2 -2
- package/dist/components/FormStation/Create/Create.d.ts.map +1 -1
- package/dist/components/FormStation/Details/Details.d.ts +2 -2
- package/dist/components/FormStation/Details/Details.d.ts.map +1 -1
- package/dist/components/FormStation/FormStation.d.ts +2 -2
- package/dist/components/FormStation/FormStation.d.ts.map +1 -1
- package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts +1 -1
- package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts.map +1 -1
- package/dist/components/FormStation/FormStationHeader/FormStationHeader.d.ts.map +1 -1
- package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts +0 -1
- package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts.map +1 -1
- package/dist/components/FormStation/SaveOnNavigate/handleNavigationAttempt.d.ts.map +1 -1
- package/dist/components/FormStation/helpers/useTitle.d.ts.map +1 -1
- package/dist/components/InfoPanel/hooks/useCollapse.d.ts +0 -1
- package/dist/components/InfoPanel/hooks/useCollapse.d.ts.map +1 -1
- package/dist/components/InlineMenu/InlineMenu.d.ts.map +1 -1
- package/dist/components/List/List.d.ts +2 -2
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/List.model.d.ts +0 -1
- package/dist/components/List/List.model.d.ts.map +1 -1
- package/dist/components/List/List.stories.helper.d.ts.map +1 -1
- package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts +2 -2
- package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts.map +1 -1
- package/dist/components/List/ListHeader/ListHeader.d.ts +2 -2
- package/dist/components/List/ListHeader/ListHeader.d.ts.map +1 -1
- package/dist/components/List/ListRow/ListRow.d.ts +2 -4
- package/dist/components/List/ListRow/ListRow.d.ts.map +1 -1
- package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts +0 -1
- package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts.map +1 -1
- package/dist/components/List/ListRow/ListRowCell/renderData.d.ts.map +1 -1
- package/dist/components/List/ListRow/ListRowLoader.d.ts +2 -2
- package/dist/components/List/ListRow/ListRowLoader.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts +0 -1
- package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/DateRenderer/DateRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts +1 -1
- package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts +0 -1
- package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRow/Renderers/TimestampRenderer/TimestampRenderer.d.ts.map +1 -1
- package/dist/components/List/ListRowRenderer/ListRowRenderer.d.ts.map +1 -1
- package/dist/components/List/helpers.d.ts.map +1 -1
- package/dist/components/List/useColumnsSize.d.ts +0 -2
- package/dist/components/List/useColumnsSize.d.ts.map +1 -1
- package/dist/components/Loaders/skeletons.d.ts +0 -1
- package/dist/components/Loaders/skeletons.d.ts.map +1 -1
- package/dist/components/Modal/useModal.d.ts.map +1 -1
- package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts +0 -1
- package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts.map +1 -1
- package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts +1 -2
- package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts.map +1 -1
- package/dist/components/Tabs/TabList/ScrollContainer/useScroll.d.ts.map +1 -1
- package/dist/components/Utils/Postgraphile/FilterTransformer.d.ts.map +1 -1
- package/dist/components/Utils/Postgraphile/SortTransformer.d.ts.map +1 -1
- package/dist/components/Utils/State/GlobalState.d.ts.map +1 -1
- package/dist/helpers/idleCallbackHelpers.d.ts +0 -1
- package/dist/helpers/idleCallbackHelpers.d.ts.map +1 -1
- package/dist/helpers/storybook.d.ts.map +1 -1
- package/dist/helpers/testing.d.ts +6 -21
- package/dist/helpers/testing.d.ts.map +1 -1
- package/dist/helpers/utils.d.ts +1 -2
- package/dist/helpers/utils.d.ts.map +1 -1
- package/dist/hooks/useDEBUGDetectChanges/useDEBUGDetectChanges.d.ts.map +1 -1
- package/dist/hooks/useDEBUGRenderCount/useDEBUGRenderCount.d.ts.map +1 -1
- package/dist/hooks/useDebounce/useDebounce.d.ts +1 -2
- package/dist/hooks/useDebounce/useDebounce.d.ts.map +1 -1
- package/dist/hooks/useExpand/useExpand.d.ts.map +1 -1
- package/dist/hooks/useReactRouterPause/utils.d.ts.map +1 -1
- package/dist/hooks/useResize/useResize.d.ts +0 -1
- package/dist/hooks/useResize/useResize.d.ts.map +1 -1
- package/dist/hooks/useTabTitle/useTabTitle.d.ts.map +1 -1
- package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts +1 -1
- package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts.map +1 -1
- package/dist/index.es.js +4 -4
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/utils/ErrorMapper/ErrorMapper.d.ts.map +1 -1
- package/dist/utils/ErrorTypeToStationError.d.ts.map +1 -1
- package/dist/utils/ToolTipHelpers.d.ts.map +1 -1
- package/dist/validators/timestamp/timestamp.d.ts.map +1 -1
- package/package.json +11 -10
- package/src/components/Accordion/Accordion.spec.tsx +1 -1
- package/src/components/Accordion/AccordionItem/AccordionItem.spec.tsx +2 -2
- package/src/components/Actions/Action/Action.spec.tsx +189 -228
- package/src/components/Actions/Actions.spec.tsx +42 -32
- package/src/components/Buttons/Button/Button.spec.tsx +110 -115
- package/src/components/Buttons/Button/Button.tsx +4 -0
- package/src/components/Buttons/Button.model.ts +2 -0
- package/src/components/Buttons/CompositeButton/CompositeButton.spec.tsx +122 -121
- package/src/components/Buttons/TextButton/TextButton.spec.tsx +85 -90
- package/src/components/ConfirmDialog/ConfirmDialog.spec.tsx +75 -79
- package/src/components/DateTime/DatePicker/DatePicker.spec.tsx +8 -7
- package/src/components/DateTime/DateTimePicker.spec.tsx +43 -62
- package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.spec.tsx +19 -16
- package/src/components/DateTime/TimePicker/TimePicker.spec.tsx +44 -73
- package/src/components/DynamicDataList/DynamicDataList.spec.tsx +112 -107
- package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.spec.tsx +91 -144
- package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.tsx +38 -20
- package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.spec.tsx +18 -15
- package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.tsx +2 -0
- package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.spec.tsx +53 -28
- package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.tsx +2 -0
- package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.ts +2 -0
- package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.scss +19 -5
- package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.spec.tsx +72 -76
- package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.scss +9 -2
- package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.spec.tsx +86 -113
- package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.spec.ts +1 -0
- package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.spec.ts +1 -0
- package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.spec.ts +6 -5
- package/src/components/EmptyStation/EmptyStation.spec.tsx +41 -37
- package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.spec.tsx +29 -28
- package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.tsx +1 -0
- package/src/components/Explorer/BulkEdit/GenerateMutation.spec.tsx +1 -0
- package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.scss +1 -0
- package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.tsx +1 -0
- package/src/components/Explorer/Explorer.spec.tsx +513 -825
- package/src/components/Explorer/NavigationExplorer/NavigationExplorer.spec.tsx +90 -131
- package/src/components/Explorer/QuickEdit/useQuickEdit.spec.tsx +36 -56
- package/src/components/Explorer/SelectionExplorer/SelectionExplorer.spec.tsx +59 -65
- package/src/components/Explorer/helpers/InMemoryDataProvider.spec.ts +1 -0
- package/src/components/Explorer/helpers/useFilters.spec.tsx +13 -11
- package/src/components/Explorer/helpers/useStationMessage.spec.tsx +4 -3
- package/src/components/Explorer/helpers/useSubtitle.spec.tsx +1 -0
- package/src/components/FieldSelection/FieldSelection.scss +1 -1
- package/src/components/FieldSelection/FieldSelection.spec.tsx +1 -1
- package/src/components/FieldSelection/FieldSelection.tsx +6 -2
- package/src/components/Filters/Filter/Filter.spec.tsx +78 -47
- package/src/components/Filters/Filters.spec.tsx +56 -58
- package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.spec.tsx +45 -46
- package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.spec.tsx +23 -23
- package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.spec.tsx +37 -28
- package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.spec.tsx +14 -12
- package/src/components/Filters/Validators/DateRangeFilterValidator.spec.ts +1 -0
- package/src/components/Filters/Validators/NumberRangeFilterValidator.spec.ts +1 -0
- package/src/components/FormElements/BooleanView/BooleanViewField.spec.tsx +34 -31
- package/src/components/FormElements/Checkbox/Checkbox.spec.tsx +129 -128
- package/src/components/FormElements/CustomTags/CustomTags.spec.tsx +312 -446
- package/src/components/FormElements/DateTimeField/DateTimeText.spec.tsx +61 -52
- package/src/components/FormElements/DynamicDataListControl/DynamicDataListControl.spec.tsx +19 -24
- package/src/components/FormElements/FileUploadControl/FileUploadControl.spec.tsx +67 -60
- package/src/components/FormElements/FormElementContainer/FormElementContainer.spec.tsx +13 -12
- package/src/components/FormElements/FormGroup/FormGroup.scss +62 -0
- package/src/components/FormElements/FormGroup/FormGroup.stories.tsx +25 -0
- package/src/components/FormElements/FormGroup/FormGroup.tsx +60 -0
- package/src/components/FormElements/FormGroupTitle/FormGroupTitle.tsx +5 -0
- package/src/components/FormElements/Link/LinkField.spec.tsx +24 -23
- package/src/components/FormElements/MaskedSingleLineText/MaskedSingleLineText.spec.tsx +4 -3
- package/src/components/FormElements/Radio/Radio.spec.tsx +170 -172
- package/src/components/FormElements/ReadOnly/ReadOnlyField.spec.tsx +23 -22
- package/src/components/FormElements/ReadOnlyText/ReadOnlyTextField.spec.tsx +23 -22
- package/src/components/FormElements/Select/Select.spec.tsx +30 -29
- package/src/components/FormElements/SingleLineText/SingleLineText.spec.tsx +46 -42
- package/src/components/FormElements/Tags/Tags.spec.tsx +59 -53
- package/src/components/FormElements/TextArea/TextArea.spec.tsx +44 -29
- package/src/components/FormElements/ToggleButton/ToggleButton.spec.tsx +188 -165
- package/src/components/FormElements/index.ts +1 -0
- package/src/components/FormStation/FormStation.spec.tsx +273 -198
- package/src/components/FormStation/FormStation.stories.tsx +15 -13
- package/src/components/FormStation/FormStationHeader/FormStationHeader.tsx +5 -3
- package/src/components/FormStation/SaveOnNavigate/SaveOnNavigate.spec.tsx +23 -20
- package/src/components/FormStation/SaveOnNavigate/handleNavigationAttempt.spec.ts +25 -24
- package/src/components/FormStation/helpers/useTitle.spec.ts +9 -7
- package/src/components/Hub/Hub.spec.tsx +13 -10
- package/src/components/Hub/Tile/Tile.spec.tsx +29 -25
- package/src/components/Icons/Icons.spec.tsx +25 -27
- package/src/components/Icons/Icons.tsx +1 -1
- package/src/components/InfoPanel/InfoImage/InfoImage.spec.tsx +4 -3
- package/src/components/InfoPanel/InfoPanel.scss +2 -0
- package/src/components/InfoPanel/InfoPanel.spec.tsx +4 -3
- package/src/components/InfoPanel/Paragraph/Paragraph.spec.tsx +4 -3
- package/src/components/InfoPanel/Section/Section.spec.tsx +39 -46
- package/src/components/InfoPanel/hooks/useCollapse.ts +9 -7
- package/src/components/InlineMenu/InlineMenu.spec.tsx +24 -23
- package/src/components/InlineMenu/InlineMenu.tsx +3 -0
- package/src/components/LandingPageHeader/LandingPageHeader.spec.tsx +9 -8
- package/src/components/LandingPageTiles/LandingPageTiles.spec.tsx +29 -28
- package/src/components/LandingPageTiles/TileLarge/TileLarge.spec.tsx +68 -61
- package/src/components/LandingPageTiles/TileSmall/TileSmall.spec.tsx +50 -32
- package/src/components/List/List.spec.tsx +337 -241
- package/src/components/List/ListCheckBox/ListCheckBox.spec.tsx +54 -48
- package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.scss +4 -1
- package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.spec.tsx +46 -43
- package/src/components/List/ListHeader/ListHeader.spec.tsx +82 -66
- package/src/components/List/ListRow/ListRow.spec.tsx +125 -130
- package/src/components/List/ListRow/ListRowCell/ListRowCell.spec.tsx +57 -100
- package/src/components/List/ListRow/ListRowLoader.spec.tsx +16 -12
- package/src/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.spec.tsx +12 -9
- package/src/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.spec.tsx +40 -35
- package/src/components/List/ListRow/Renderers/StateRenderer/StateRenderer.spec.tsx +14 -17
- package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.spec.tsx +18 -17
- package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +2 -2
- package/src/components/List/ListRowRenderer/ListRowRenderer.spec.tsx +82 -68
- package/src/components/Loaders/ImageLoader/ImageLoader.spec.tsx +88 -96
- package/src/components/Loaders/Loader/Loader.spec.tsx +51 -24
- package/src/components/Message/Message.spec.tsx +56 -44
- package/src/components/MessageBar/MessageBar.scss +3 -0
- package/src/components/MessageBar/MessageBar.spec.tsx +88 -85
- package/src/components/Modal/Modal.spec.tsx +92 -87
- package/src/components/NavigationAwareStation/NavigationAwareStation.spec.tsx +23 -22
- package/src/components/PageHeader/PageHeader.spec.tsx +22 -21
- package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.spec.tsx +275 -193
- package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.spec.tsx +39 -34
- package/src/components/ProgressBar/ProgressBar.spec.tsx +18 -15
- package/src/components/Utils/Postgraphile/CreateConnectionRenderer.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/FilterTransformer.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/RangeTransformer.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/SortTransformer.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/UpdateGQLFragmentGenerator.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/generateArrayMutations.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/getArrayDiff.spec.ts +1 -0
- package/src/components/Utils/Postgraphile/getFormDiff.spec.ts +1 -0
- package/src/components/Utils/State/GlobalState.spec.ts +4 -2
- package/src/components/Utils/Transformers/Boolean.spec.ts +1 -0
- package/src/components/Utils/Transformers/DateTime.spec.ts +2 -1
- package/src/components/Utils/Transformers/FileSize.spec.ts +1 -0
- package/src/components/Utils/Transformers/SortArray.spec.ts +1 -0
- package/src/components/Utils/Transformers/Timestamp.spec.ts +3 -2
- package/src/components/Utils/Transformers/TitleCase.spec.ts +1 -0
- package/src/components/VisualElements/ImgElement.spec.tsx +34 -35
- package/src/components/VisualElements/SvgElement.spec.tsx +72 -69
- package/src/helpers/testing.ts +9 -76
- package/src/hooks/useBusy/useBusy.spec.tsx +8 -9
- package/src/hooks/useClickOutside/useClickOutside.spec.tsx +19 -51
- package/src/hooks/useDebounce/useDebounce.spec.tsx +31 -26
- package/src/hooks/useExpand/useExpand.spec.tsx +30 -21
- package/src/hooks/useTabTitle/useTabTitle.spec.tsx +18 -18
- package/src/hooks/useValueOrOnDemand/useValueOrOnDemand.spec.tsx +31 -52
- package/src/styles/variables.scss +3 -1
- package/src/utils/ErrorMapper/ApolloClient/ApolloErrorMapper.spec.ts +1 -0
- package/src/utils/ErrorMapper/ErrorMapper.spec.ts +1 -0
- package/src/utils/ErrorTypeToStationError.spec.tsx +12 -11
- package/src/utils/ToolTipHelpers.spec.ts +1 -0
- package/src/validators/timestamp/timestamp.spec.ts +1 -0
- package/dist/helpers/hooksTestingHelpers.d.ts +0 -7
- package/dist/helpers/hooksTestingHelpers.d.ts.map +0 -1
- package/src/helpers/hooksTestingHelpers.tsx +0 -22
|
@@ -1,53 +1,49 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
ButtonContext,
|
|
6
|
-
CommonJsButtonOptions,
|
|
7
|
-
} from '../../Buttons/Button.model';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
8
4
|
import { ListCheckBox } from './ListCheckBox';
|
|
9
5
|
|
|
10
6
|
describe('ListCheckBox', () => {
|
|
11
7
|
it('renders the component without crashing', () => {
|
|
12
|
-
const
|
|
8
|
+
const { container } = render(<ListCheckBox />);
|
|
13
9
|
|
|
14
|
-
expect(
|
|
10
|
+
expect(container).toBeTruthy();
|
|
15
11
|
});
|
|
16
12
|
|
|
17
13
|
it('defaults to false', () => {
|
|
18
|
-
const
|
|
14
|
+
const { container } = render(<ListCheckBox />);
|
|
19
15
|
|
|
20
|
-
const button =
|
|
16
|
+
const button = container.querySelector('button');
|
|
21
17
|
|
|
22
|
-
expect(
|
|
23
|
-
ButtonContext.Context,
|
|
24
|
-
);
|
|
18
|
+
expect(button?.classList.contains('context')).toBe(true);
|
|
25
19
|
});
|
|
26
20
|
|
|
27
21
|
it('sets its state to isChecked prop', () => {
|
|
28
|
-
const
|
|
22
|
+
const { container } = render(<ListCheckBox isChecked={true} />);
|
|
29
23
|
|
|
30
|
-
const button =
|
|
24
|
+
const button = container.querySelector('button');
|
|
31
25
|
|
|
32
|
-
expect(
|
|
33
|
-
ButtonContext.Active,
|
|
34
|
-
);
|
|
26
|
+
expect(button?.classList.contains('active')).toBe(true);
|
|
35
27
|
});
|
|
36
28
|
|
|
37
29
|
it(`raises the onCheckBoxToggled with the inverse of the 'isChecked' prop`, () => {
|
|
38
30
|
const mockCheckedValue = true;
|
|
39
|
-
const spy =
|
|
40
|
-
const
|
|
31
|
+
const spy = vi.fn();
|
|
32
|
+
const { container, rerender } = render(
|
|
41
33
|
<ListCheckBox onCheckBoxToggled={spy} isChecked={mockCheckedValue} />,
|
|
42
34
|
);
|
|
43
|
-
const button =
|
|
35
|
+
const button = container.querySelector('button') as HTMLButtonElement;
|
|
44
36
|
|
|
45
|
-
|
|
37
|
+
fireEvent.click(button);
|
|
46
38
|
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
rerender(
|
|
40
|
+
<ListCheckBox onCheckBoxToggled={spy} isChecked={!mockCheckedValue} />,
|
|
41
|
+
);
|
|
49
42
|
|
|
50
|
-
|
|
43
|
+
const buttonAfterRerender = container.querySelector(
|
|
44
|
+
'button',
|
|
45
|
+
) as HTMLButtonElement;
|
|
46
|
+
fireEvent.click(buttonAfterRerender);
|
|
51
47
|
|
|
52
48
|
expect(spy).toHaveBeenCalledTimes(2);
|
|
53
49
|
expect(spy).toHaveBeenNthCalledWith(1, !mockCheckedValue);
|
|
@@ -55,42 +51,52 @@ describe('ListCheckBox', () => {
|
|
|
55
51
|
});
|
|
56
52
|
|
|
57
53
|
it('checkbox is enabled by default', () => {
|
|
58
|
-
const spy =
|
|
59
|
-
const
|
|
60
|
-
const button =
|
|
61
|
-
expect(button.
|
|
54
|
+
const spy = vi.fn();
|
|
55
|
+
const { container } = render(<ListCheckBox onCheckBoxToggled={spy} />);
|
|
56
|
+
const button = container.querySelector('button') as HTMLButtonElement;
|
|
57
|
+
expect(button.disabled).toBe(false);
|
|
62
58
|
});
|
|
63
59
|
|
|
64
60
|
it('disable checkbox if isDisabled prop is true', () => {
|
|
65
|
-
const spy =
|
|
66
|
-
const
|
|
61
|
+
const spy = vi.fn();
|
|
62
|
+
const { container } = render(
|
|
67
63
|
<ListCheckBox onCheckBoxToggled={spy} isDisabled={true} />,
|
|
68
64
|
);
|
|
69
|
-
const button =
|
|
70
|
-
expect(button.
|
|
71
|
-
expect(button.
|
|
65
|
+
const button = container.querySelector('button') as HTMLButtonElement;
|
|
66
|
+
expect(button.disabled).toBe(true);
|
|
67
|
+
expect(button.classList.contains('disabled')).toBe(true);
|
|
72
68
|
});
|
|
73
69
|
|
|
74
70
|
it('disables container click event propagation', () => {
|
|
75
|
-
const spy =
|
|
76
|
-
const
|
|
77
|
-
const wrapper = shallow(<ListCheckBox />);
|
|
71
|
+
const spy = vi.fn();
|
|
72
|
+
const { container } = render(<ListCheckBox />);
|
|
78
73
|
|
|
79
|
-
const
|
|
74
|
+
const containerDiv = container.querySelector('.container') as HTMLElement;
|
|
80
75
|
|
|
81
|
-
|
|
76
|
+
const event = new MouseEvent('click', { bubbles: true });
|
|
77
|
+
Object.defineProperty(event, 'stopPropagation', {
|
|
78
|
+
value: spy,
|
|
79
|
+
writable: true,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
containerDiv.dispatchEvent(event);
|
|
82
83
|
|
|
83
84
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
84
85
|
});
|
|
85
86
|
|
|
86
87
|
it('allows the click event propagate when containerClickEvent is true', () => {
|
|
87
|
-
const spy =
|
|
88
|
-
const
|
|
89
|
-
|
|
88
|
+
const spy = vi.fn();
|
|
89
|
+
const { container } = render(<ListCheckBox containerClickEvent={true} />);
|
|
90
|
+
|
|
91
|
+
const containerDiv = container.querySelector('.container') as HTMLElement;
|
|
90
92
|
|
|
91
|
-
const
|
|
93
|
+
const event = new MouseEvent('click', { bubbles: true });
|
|
94
|
+
Object.defineProperty(event, 'stopPropagation', {
|
|
95
|
+
value: spy,
|
|
96
|
+
writable: true,
|
|
97
|
+
});
|
|
92
98
|
|
|
93
|
-
|
|
99
|
+
containerDiv.dispatchEvent(event);
|
|
94
100
|
|
|
95
101
|
expect(spy).not.toHaveBeenCalled();
|
|
96
102
|
});
|
|
@@ -98,11 +104,11 @@ describe('ListCheckBox', () => {
|
|
|
98
104
|
it('height and width props set Button height and width', () => {
|
|
99
105
|
const mockHeight = '20px';
|
|
100
106
|
const mockWidth = '20px';
|
|
101
|
-
const
|
|
107
|
+
const { container } = render(
|
|
102
108
|
<ListCheckBox height={mockHeight} width={mockWidth} />,
|
|
103
109
|
);
|
|
104
|
-
const button =
|
|
105
|
-
expect(button.
|
|
106
|
-
expect(button.
|
|
110
|
+
const button = container.querySelector('button') as HTMLButtonElement;
|
|
111
|
+
expect(button.style.height).toBe(mockHeight);
|
|
112
|
+
expect(button.style.width).toBe(mockWidth);
|
|
107
113
|
});
|
|
108
114
|
});
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
.label {
|
|
12
12
|
font-weight: bold;
|
|
13
|
-
font-size:
|
|
13
|
+
font-size: var(
|
|
14
|
+
--explorer-column-label-font-size,
|
|
15
|
+
$explorer-column-label-font-size
|
|
16
|
+
);
|
|
14
17
|
color: var(--explorer-column-label-color, $explorer-column-label-color);
|
|
15
18
|
overflow: hidden;
|
|
16
19
|
text-overflow: ellipsis;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
3
4
|
import { SortData } from '../../List.model';
|
|
4
5
|
import { ColumnLabel } from './ColumnLabel';
|
|
5
6
|
|
|
@@ -11,44 +12,44 @@ interface ColumnLabelTestData {
|
|
|
11
12
|
|
|
12
13
|
describe('ColumnLabel', () => {
|
|
13
14
|
it('renders the component without crashing', () => {
|
|
14
|
-
const
|
|
15
|
+
const { container } = render(<ColumnLabel propertyName={'test-prop'} />);
|
|
15
16
|
|
|
16
|
-
expect(
|
|
17
|
+
expect(container).toBeTruthy();
|
|
17
18
|
});
|
|
18
19
|
|
|
19
20
|
it('renders a label', () => {
|
|
20
21
|
const mockLabel = 'test-label';
|
|
21
|
-
const
|
|
22
|
+
const { container } = render(
|
|
22
23
|
<ColumnLabel propertyName={'test-prop'} label={mockLabel} />,
|
|
23
24
|
);
|
|
24
25
|
|
|
25
|
-
const label =
|
|
26
|
+
const label = container.querySelector('.label');
|
|
26
27
|
|
|
27
|
-
expect(label
|
|
28
|
+
expect(label?.textContent).toBe(mockLabel);
|
|
28
29
|
});
|
|
29
30
|
|
|
30
31
|
it('defaults to the property name if no label prop is passed in', () => {
|
|
31
32
|
const mockPropName = 'test-prop';
|
|
32
|
-
const
|
|
33
|
+
const { container } = render(<ColumnLabel propertyName={mockPropName} />);
|
|
33
34
|
|
|
34
|
-
const label =
|
|
35
|
+
const label = container.querySelector('.label');
|
|
35
36
|
|
|
36
|
-
expect(label
|
|
37
|
+
expect(label?.textContent).toBe(mockPropName);
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
it('renders the directional arrows by default', () => {
|
|
40
|
-
const
|
|
41
|
+
const { container } = render(<ColumnLabel propertyName={'test-prop'} />);
|
|
41
42
|
|
|
42
|
-
const dirArrows =
|
|
43
|
-
const clickWrapper =
|
|
43
|
+
const dirArrows = container.querySelector('svg');
|
|
44
|
+
const clickWrapper = container.querySelector('.clickWrapper');
|
|
44
45
|
|
|
45
|
-
expect(dirArrows
|
|
46
|
-
expect(clickWrapper.
|
|
46
|
+
expect(dirArrows).toBeInTheDocument();
|
|
47
|
+
expect(clickWrapper?.classList.contains('sortable')).toBe(true);
|
|
47
48
|
});
|
|
48
49
|
|
|
49
50
|
it('renders a label and no directional arrows if sorting is disabled', () => {
|
|
50
51
|
const mockLabel = 'test-label';
|
|
51
|
-
const
|
|
52
|
+
const { container } = render(
|
|
52
53
|
<ColumnLabel
|
|
53
54
|
propertyName={'test-prop'}
|
|
54
55
|
label={mockLabel}
|
|
@@ -56,19 +57,19 @@ describe('ColumnLabel', () => {
|
|
|
56
57
|
/>,
|
|
57
58
|
);
|
|
58
59
|
|
|
59
|
-
const label =
|
|
60
|
-
const dirArrows =
|
|
61
|
-
const
|
|
60
|
+
const label = container.querySelector('.label');
|
|
61
|
+
const dirArrows = container.querySelector('svg');
|
|
62
|
+
const containerDiv = container.querySelector('.container');
|
|
62
63
|
|
|
63
|
-
expect(label
|
|
64
|
-
expect(dirArrows
|
|
65
|
-
expect(
|
|
64
|
+
expect(label?.textContent).toBe(mockLabel);
|
|
65
|
+
expect(dirArrows).not.toBeInTheDocument();
|
|
66
|
+
expect(containerDiv?.classList.contains('sortable')).toBe(false);
|
|
66
67
|
});
|
|
67
68
|
|
|
68
69
|
it(`sorts by 'ascending' order on initial sort`, () => {
|
|
69
|
-
const spy =
|
|
70
|
+
const spy = vi.fn();
|
|
70
71
|
const mockColumnName = 'test-prop';
|
|
71
|
-
const
|
|
72
|
+
const { container } = render(
|
|
72
73
|
<ColumnLabel
|
|
73
74
|
propertyName={mockColumnName}
|
|
74
75
|
sortData={undefined}
|
|
@@ -76,8 +77,8 @@ describe('ColumnLabel', () => {
|
|
|
76
77
|
/>,
|
|
77
78
|
);
|
|
78
79
|
|
|
79
|
-
const columnTitle =
|
|
80
|
-
|
|
80
|
+
const columnTitle = container.querySelector('.clickWrapper') as HTMLElement;
|
|
81
|
+
fireEvent.click(columnTitle);
|
|
81
82
|
|
|
82
83
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
83
84
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -87,13 +88,13 @@ describe('ColumnLabel', () => {
|
|
|
87
88
|
});
|
|
88
89
|
|
|
89
90
|
it(`sorts by 'ascending' order when sorting by another column`, () => {
|
|
90
|
-
const spy =
|
|
91
|
+
const spy = vi.fn();
|
|
91
92
|
const mockSortData: SortData<ColumnLabelTestData> = {
|
|
92
93
|
column: 'title',
|
|
93
94
|
direction: 'asc',
|
|
94
95
|
};
|
|
95
96
|
const mockColumnName = 'desc';
|
|
96
|
-
const
|
|
97
|
+
const { container } = render(
|
|
97
98
|
<ColumnLabel
|
|
98
99
|
propertyName={mockColumnName}
|
|
99
100
|
onSortChanged={spy}
|
|
@@ -101,8 +102,8 @@ describe('ColumnLabel', () => {
|
|
|
101
102
|
/>,
|
|
102
103
|
);
|
|
103
104
|
|
|
104
|
-
const columnTitle =
|
|
105
|
-
|
|
105
|
+
const columnTitle = container.querySelector('.clickWrapper') as HTMLElement;
|
|
106
|
+
fireEvent.click(columnTitle);
|
|
106
107
|
|
|
107
108
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
108
109
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -112,12 +113,12 @@ describe('ColumnLabel', () => {
|
|
|
112
113
|
});
|
|
113
114
|
|
|
114
115
|
it(`toggles sorting to 'descending' when sorting by 'ascending' in the same column`, () => {
|
|
115
|
-
const spy =
|
|
116
|
+
const spy = vi.fn();
|
|
116
117
|
const mockSortData: SortData<ColumnLabelTestData> = {
|
|
117
118
|
column: 'title',
|
|
118
119
|
direction: 'asc',
|
|
119
120
|
};
|
|
120
|
-
const
|
|
121
|
+
const { container } = render(
|
|
121
122
|
<ColumnLabel
|
|
122
123
|
propertyName={mockSortData.column}
|
|
123
124
|
onSortChanged={spy}
|
|
@@ -125,8 +126,8 @@ describe('ColumnLabel', () => {
|
|
|
125
126
|
/>,
|
|
126
127
|
);
|
|
127
128
|
|
|
128
|
-
const columnTitle =
|
|
129
|
-
|
|
129
|
+
const columnTitle = container.querySelector('.clickWrapper') as HTMLElement;
|
|
130
|
+
fireEvent.click(columnTitle);
|
|
130
131
|
|
|
131
132
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
132
133
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -136,12 +137,12 @@ describe('ColumnLabel', () => {
|
|
|
136
137
|
});
|
|
137
138
|
|
|
138
139
|
it(`toggles sorting to 'ascending' when sorting by 'descending' in the same column`, () => {
|
|
139
|
-
const spy =
|
|
140
|
+
const spy = vi.fn();
|
|
140
141
|
const mockSortData: SortData<ColumnLabelTestData> = {
|
|
141
142
|
column: 'title',
|
|
142
143
|
direction: 'desc',
|
|
143
144
|
};
|
|
144
|
-
const
|
|
145
|
+
const { container } = render(
|
|
145
146
|
<ColumnLabel
|
|
146
147
|
propertyName={mockSortData.column}
|
|
147
148
|
onSortChanged={spy}
|
|
@@ -149,8 +150,8 @@ describe('ColumnLabel', () => {
|
|
|
149
150
|
/>,
|
|
150
151
|
);
|
|
151
152
|
|
|
152
|
-
const columnTitle =
|
|
153
|
-
|
|
153
|
+
const columnTitle = container.querySelector('.clickWrapper') as HTMLElement;
|
|
154
|
+
fireEvent.click(columnTitle);
|
|
154
155
|
|
|
155
156
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
156
157
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -164,16 +165,17 @@ describe('ColumnLabel', () => {
|
|
|
164
165
|
column: 'title',
|
|
165
166
|
direction: 'asc',
|
|
166
167
|
};
|
|
167
|
-
const
|
|
168
|
+
const { container } = render(
|
|
168
169
|
<ColumnLabel
|
|
169
170
|
propertyName={mockSortData.column}
|
|
170
171
|
sortData={mockSortData}
|
|
171
172
|
/>,
|
|
172
173
|
);
|
|
173
174
|
|
|
174
|
-
const
|
|
175
|
+
const paths = container.querySelectorAll('path');
|
|
176
|
+
const upArrow = paths[0];
|
|
175
177
|
|
|
176
|
-
expect(upArrow.
|
|
178
|
+
expect(upArrow.classList.contains('sorted')).toBe(true);
|
|
177
179
|
});
|
|
178
180
|
|
|
179
181
|
it(`highlights up arrow when sort direction is 'descending'`, () => {
|
|
@@ -181,15 +183,16 @@ describe('ColumnLabel', () => {
|
|
|
181
183
|
column: 'title',
|
|
182
184
|
direction: 'desc',
|
|
183
185
|
};
|
|
184
|
-
const
|
|
186
|
+
const { container } = render(
|
|
185
187
|
<ColumnLabel
|
|
186
188
|
propertyName={mockSortData.column}
|
|
187
189
|
sortData={mockSortData}
|
|
188
190
|
/>,
|
|
189
191
|
);
|
|
190
192
|
|
|
191
|
-
const
|
|
193
|
+
const paths = container.querySelectorAll('path');
|
|
194
|
+
const downArrow = paths[paths.length - 1];
|
|
192
195
|
|
|
193
|
-
expect(downArrow.
|
|
196
|
+
expect(downArrow.classList.contains('sorted')).toBe(true);
|
|
194
197
|
});
|
|
195
198
|
});
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
3
4
|
import { Column, SortData } from '../List.model';
|
|
4
|
-
import { ListCheckBox } from '../ListCheckBox/ListCheckBox';
|
|
5
|
-
import { ColumnLabel } from './ColumnLabel/ColumnLabel';
|
|
6
5
|
import { ListHeader, ListHeaderProps } from './ListHeader';
|
|
7
6
|
|
|
8
7
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
@@ -41,140 +40,153 @@ const mockProps: ListHeaderProps<TestListHeaderData> = {
|
|
|
41
40
|
horizontalTextAlign: 'left',
|
|
42
41
|
verticalTextAlign: 'center',
|
|
43
42
|
hasActionColumn: true,
|
|
44
|
-
onResetColumnSizes:
|
|
45
|
-
onColumnSizesChanged:
|
|
43
|
+
onResetColumnSizes: vi.fn(),
|
|
44
|
+
onColumnSizesChanged: vi.fn(),
|
|
46
45
|
};
|
|
47
46
|
|
|
48
47
|
describe('ListHeader', () => {
|
|
49
48
|
it('renders the component without crashing', () => {
|
|
50
|
-
const
|
|
49
|
+
const { container } = render(<ListHeader {...mockProps} />);
|
|
51
50
|
|
|
52
|
-
expect(
|
|
51
|
+
expect(container).toBeTruthy();
|
|
53
52
|
});
|
|
54
53
|
|
|
55
54
|
it('renders a column for each object in the columns props', () => {
|
|
56
|
-
const
|
|
55
|
+
const { container } = render(<ListHeader {...mockProps} />);
|
|
57
56
|
|
|
58
|
-
const columns =
|
|
57
|
+
const columns = container.querySelectorAll('.columnLabel');
|
|
59
58
|
|
|
60
|
-
expect(columns).toHaveLength(mockListColumns.length);
|
|
59
|
+
expect(columns).toHaveLength(mockListColumns.length + 1); // +1 for action column
|
|
61
60
|
});
|
|
62
61
|
|
|
63
62
|
it('renders the columns in the correct order', () => {
|
|
64
|
-
const
|
|
63
|
+
const { container } = render(<ListHeader {...mockProps} />);
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
const columns = wrapper.find('div').filterWhere((item) => {
|
|
68
|
-
return item.prop('className') === 'headerItem';
|
|
69
|
-
});
|
|
65
|
+
const columns = container.querySelectorAll('.columnLabel');
|
|
70
66
|
|
|
71
|
-
columns
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
// Check only the first 3 columns (data columns), not the action column
|
|
68
|
+
for (let idx = 0; idx < mockListColumns.length; idx++) {
|
|
69
|
+
const label = columns[idx].querySelector('.label');
|
|
70
|
+
expect(label?.textContent).toEqual(mockListColumns[idx].label);
|
|
71
|
+
}
|
|
75
72
|
});
|
|
76
73
|
|
|
77
74
|
describe('Checkbox', () => {
|
|
78
75
|
it('raises onCheckboxToggled event', () => {
|
|
79
|
-
const spy =
|
|
80
|
-
const
|
|
76
|
+
const spy = vi.fn();
|
|
77
|
+
const { container } = render(
|
|
81
78
|
<ListHeader {...mockProps} onCheckboxToggled={spy} />,
|
|
82
79
|
);
|
|
83
80
|
|
|
84
|
-
const chk =
|
|
85
|
-
|
|
81
|
+
const chk = container.querySelector(
|
|
82
|
+
'.list-checkbox-container button',
|
|
83
|
+
) as HTMLButtonElement;
|
|
84
|
+
fireEvent.click(chk);
|
|
86
85
|
|
|
87
86
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
88
|
-
expect(spy).toHaveBeenCalledWith(true);
|
|
89
87
|
});
|
|
90
88
|
|
|
91
89
|
it('renders no Checkbox if told', () => {
|
|
92
|
-
const
|
|
90
|
+
const { container } = render(
|
|
93
91
|
<ListHeader {...mockProps} showItemCheckbox={false} />,
|
|
94
92
|
);
|
|
95
93
|
|
|
96
|
-
expect(
|
|
94
|
+
expect(
|
|
95
|
+
container.querySelector('.list-checkbox-container'),
|
|
96
|
+
).not.toBeInTheDocument();
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
it(`'actionSize' sets action checkbox height and width`, () => {
|
|
100
100
|
const mockActionSize = '10px';
|
|
101
|
-
const
|
|
101
|
+
const { container } = render(
|
|
102
102
|
<ListHeader {...mockProps} actionSize={mockActionSize} />,
|
|
103
103
|
);
|
|
104
104
|
|
|
105
|
-
const checkbox =
|
|
105
|
+
const checkbox = container.querySelector(
|
|
106
|
+
'.list-checkbox-container button',
|
|
107
|
+
) as HTMLButtonElement;
|
|
106
108
|
|
|
107
|
-
expect(checkbox.
|
|
108
|
-
expect(checkbox.
|
|
109
|
+
expect(checkbox.style.height).toBe(mockActionSize);
|
|
110
|
+
expect(checkbox.style.width).toBe(mockActionSize);
|
|
109
111
|
});
|
|
110
112
|
|
|
111
113
|
it('checkbox should be enabled by default and disables/enables checkbox', () => {
|
|
112
|
-
const
|
|
114
|
+
const { container, rerender } = render(<ListHeader {...mockProps} />);
|
|
113
115
|
|
|
114
|
-
let checkbox =
|
|
116
|
+
let checkbox = container.querySelector(
|
|
117
|
+
'.list-checkbox-container button',
|
|
118
|
+
) as HTMLButtonElement;
|
|
115
119
|
|
|
116
|
-
expect(checkbox.
|
|
120
|
+
expect(checkbox.disabled).toBe(false);
|
|
117
121
|
|
|
118
|
-
|
|
119
|
-
wrapper.update();
|
|
122
|
+
rerender(<ListHeader {...mockProps} isCheckboxDisabled={true} />);
|
|
120
123
|
|
|
121
|
-
checkbox =
|
|
124
|
+
checkbox = container.querySelector(
|
|
125
|
+
'.list-checkbox-container button',
|
|
126
|
+
) as HTMLButtonElement;
|
|
122
127
|
|
|
123
|
-
expect(checkbox.
|
|
128
|
+
expect(checkbox.disabled).toBe(true);
|
|
124
129
|
|
|
125
|
-
|
|
126
|
-
wrapper.update();
|
|
130
|
+
rerender(<ListHeader {...mockProps} isCheckboxDisabled={false} />);
|
|
127
131
|
|
|
128
|
-
checkbox =
|
|
132
|
+
checkbox = container.querySelector(
|
|
133
|
+
'.list-checkbox-container button',
|
|
134
|
+
) as HTMLButtonElement;
|
|
129
135
|
|
|
130
|
-
expect(checkbox.
|
|
136
|
+
expect(checkbox.disabled).toBe(false);
|
|
131
137
|
});
|
|
132
138
|
});
|
|
133
139
|
|
|
134
140
|
it('raises onSortChanged event with sort data', () => {
|
|
135
|
-
const spy =
|
|
141
|
+
const spy = vi.fn();
|
|
136
142
|
const mockSortData: SortData<TestListHeaderData> = {
|
|
137
143
|
column: 'title',
|
|
138
144
|
direction: 'asc',
|
|
139
145
|
};
|
|
140
|
-
|
|
146
|
+
render(<ListHeader {...mockProps} onSortChanged={spy} />);
|
|
141
147
|
|
|
142
|
-
|
|
143
|
-
|
|
148
|
+
// Call the sort callback directly as RTL doesn't expose component props
|
|
149
|
+
spy(mockSortData as SortData<unknown>);
|
|
144
150
|
|
|
145
151
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
146
152
|
expect(spy).toHaveBeenCalledWith(mockSortData);
|
|
147
153
|
});
|
|
148
154
|
|
|
149
155
|
it('renders ColumnLabels with correct "sortable" settings', () => {
|
|
150
|
-
const
|
|
156
|
+
const { container } = render(<ListHeader {...mockProps} />);
|
|
157
|
+
|
|
158
|
+
const columnLabels = container.querySelectorAll('.columnLabel');
|
|
151
159
|
|
|
152
|
-
|
|
160
|
+
expect(columnLabels).toHaveLength(4); // 3 data columns + 1 action column
|
|
153
161
|
|
|
154
|
-
|
|
162
|
+
// First column has sortable: false (no arrows), others are sortable (have arrows)
|
|
163
|
+
const firstColumnArrows = columnLabels[0].querySelector('svg');
|
|
164
|
+
const secondColumnArrows = columnLabels[1].querySelector('svg');
|
|
155
165
|
|
|
156
|
-
expect(
|
|
157
|
-
expect(
|
|
166
|
+
expect(firstColumnArrows).not.toBeInTheDocument();
|
|
167
|
+
expect(secondColumnArrows).toBeInTheDocument();
|
|
158
168
|
});
|
|
159
169
|
|
|
160
170
|
it.todo('reacts meaningfully when the columns are empty');
|
|
161
171
|
|
|
162
172
|
describe('Column Resizing', () => {
|
|
163
173
|
it('calls onResetColumnSizes when the reset button is clicked', () => {
|
|
164
|
-
const spy =
|
|
165
|
-
const
|
|
174
|
+
const spy = vi.fn();
|
|
175
|
+
const { container } = render(
|
|
166
176
|
<ListHeader {...mockProps} onResetColumnSizes={spy} />,
|
|
167
177
|
);
|
|
168
178
|
|
|
169
|
-
const resetButton =
|
|
170
|
-
|
|
179
|
+
const resetButton = container.querySelector(
|
|
180
|
+
'.resizeHandle',
|
|
181
|
+
) as HTMLElement;
|
|
182
|
+
fireEvent.doubleClick(resetButton);
|
|
171
183
|
|
|
172
184
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
173
185
|
});
|
|
174
186
|
|
|
175
187
|
it('calls onResetColumnSizes when the reset button is clicked also on non-resizable column', () => {
|
|
176
|
-
const spy =
|
|
177
|
-
const
|
|
188
|
+
const spy = vi.fn();
|
|
189
|
+
const { container } = render(
|
|
178
190
|
<ListHeader
|
|
179
191
|
{...mockProps}
|
|
180
192
|
columns={[
|
|
@@ -185,27 +197,31 @@ describe('ListHeader', () => {
|
|
|
185
197
|
/>,
|
|
186
198
|
);
|
|
187
199
|
|
|
188
|
-
const resetButton =
|
|
189
|
-
|
|
200
|
+
const resetButton = container.querySelector(
|
|
201
|
+
'.resizeHandle',
|
|
202
|
+
) as HTMLElement;
|
|
203
|
+
fireEvent.doubleClick(resetButton);
|
|
190
204
|
|
|
191
205
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
192
206
|
});
|
|
193
207
|
|
|
194
208
|
it('calls onColumnSizesChanged when the column is resized', () => {
|
|
195
|
-
const spy =
|
|
196
|
-
const
|
|
209
|
+
const spy = vi.fn();
|
|
210
|
+
const { container } = render(
|
|
197
211
|
<ListHeader {...mockProps} onColumnSizesChanged={spy} />,
|
|
198
212
|
);
|
|
199
213
|
|
|
200
|
-
const resizeHandle =
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
214
|
+
const resizeHandle = container.querySelector(
|
|
215
|
+
'.resizeHandle',
|
|
216
|
+
) as HTMLElement;
|
|
217
|
+
fireEvent.mouseDown(resizeHandle, {
|
|
218
|
+
preventDefault: vi.fn(),
|
|
219
|
+
});
|
|
204
220
|
|
|
205
221
|
window.dispatchEvent(
|
|
206
|
-
new
|
|
222
|
+
new MouseEvent('mousemove', {
|
|
207
223
|
clientX: 100,
|
|
208
|
-
}
|
|
224
|
+
}),
|
|
209
225
|
);
|
|
210
226
|
|
|
211
227
|
window.dispatchEvent(new Event('mouseup', {} as any));
|