@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,15 +1,14 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import {
|
|
3
|
-
import React, { ReactNode
|
|
4
|
-
import
|
|
5
|
-
import { act } from 'react-dom/test-utils';
|
|
2
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
3
|
+
import React, { ReactNode } from 'react';
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
6
5
|
import { ImageLoader } from './ImageLoader';
|
|
7
6
|
|
|
8
7
|
describe('ImageLoader', () => {
|
|
9
8
|
it('renders the component without crashing', () => {
|
|
10
|
-
const
|
|
9
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
11
10
|
|
|
12
|
-
expect(
|
|
11
|
+
expect(container).toBeTruthy();
|
|
13
12
|
});
|
|
14
13
|
|
|
15
14
|
it(`gives the image element it's src, height, width, and alt attributes`, () => {
|
|
@@ -18,7 +17,7 @@ describe('ImageLoader', () => {
|
|
|
18
17
|
const mockWidth = 'test-width';
|
|
19
18
|
const mockAlt = 'test-alt';
|
|
20
19
|
|
|
21
|
-
const
|
|
20
|
+
const { container } = render(
|
|
22
21
|
<ImageLoader
|
|
23
22
|
imgSrc={mockSrc}
|
|
24
23
|
alt={mockAlt}
|
|
@@ -27,110 +26,104 @@ describe('ImageLoader', () => {
|
|
|
27
26
|
/>,
|
|
28
27
|
);
|
|
29
28
|
|
|
30
|
-
const
|
|
31
|
-
const height = wrapper.find('img').prop('height');
|
|
32
|
-
const width = wrapper.find('img').prop('width');
|
|
33
|
-
const alt = wrapper.find('img').prop('alt');
|
|
29
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
34
30
|
|
|
35
|
-
expect(src).
|
|
36
|
-
expect(height).toBe(mockHeight);
|
|
37
|
-
expect(width).toBe(mockWidth);
|
|
38
|
-
expect(alt).toBe(mockAlt);
|
|
31
|
+
expect(img.src).toContain(mockSrc);
|
|
32
|
+
expect(img.getAttribute('height')).toBe(mockHeight);
|
|
33
|
+
expect(img.getAttribute('width')).toBe(mockWidth);
|
|
34
|
+
expect(img.alt).toBe(mockAlt);
|
|
39
35
|
});
|
|
40
36
|
|
|
41
37
|
it('renders the loading animation while an image is loading', () => {
|
|
42
|
-
const
|
|
38
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
43
39
|
|
|
44
|
-
const loader =
|
|
45
|
-
const
|
|
40
|
+
const loader = container.querySelector('svg');
|
|
41
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
46
42
|
|
|
47
|
-
expect(loader
|
|
48
|
-
expect(
|
|
43
|
+
expect(loader).toBeInTheDocument();
|
|
44
|
+
expect(img.style.display).toBe('none');
|
|
49
45
|
});
|
|
50
46
|
|
|
51
47
|
it('renders the image after loading has completed', () => {
|
|
52
|
-
const
|
|
48
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
49
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
53
50
|
|
|
54
|
-
|
|
55
|
-
wrapper.update();
|
|
51
|
+
fireEvent.load(img);
|
|
56
52
|
|
|
57
|
-
const loader =
|
|
58
|
-
const imgDisplay = wrapper.find('img').prop('style')?.display;
|
|
53
|
+
const loader = container.querySelector('svg');
|
|
59
54
|
|
|
60
|
-
expect(loader
|
|
61
|
-
expect(
|
|
55
|
+
expect(loader).not.toBeInTheDocument();
|
|
56
|
+
expect(img.style.display).toBe('unset');
|
|
62
57
|
});
|
|
63
58
|
|
|
64
59
|
it('emits onLoad callback with img src after successful load', () => {
|
|
65
|
-
const spy =
|
|
60
|
+
const spy = vi.fn();
|
|
66
61
|
const mockUrl = 'mock-url';
|
|
67
|
-
const
|
|
62
|
+
const { container } = render(<ImageLoader imgSrc={mockUrl} onLoad={spy} />);
|
|
63
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
68
64
|
|
|
69
|
-
|
|
65
|
+
fireEvent.load(img);
|
|
70
66
|
|
|
71
67
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
72
68
|
expect(spy).toHaveBeenCalledWith(mockUrl);
|
|
73
69
|
});
|
|
74
70
|
|
|
75
71
|
it('emits onImageClicked when the image is clicked with the event', () => {
|
|
76
|
-
const
|
|
77
|
-
e: 'event',
|
|
78
|
-
};
|
|
79
|
-
const spy = jest.fn();
|
|
72
|
+
const spy = vi.fn();
|
|
80
73
|
const mockUrl = 'mock-url';
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
74
|
+
const { container } = render(
|
|
75
|
+
<ImageLoader imgSrc={mockUrl} onImageClick={spy} />,
|
|
76
|
+
);
|
|
84
77
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
image.prop('onClick')?.(mockEvent);
|
|
88
|
-
});
|
|
78
|
+
const image = container.querySelector('img') as HTMLImageElement;
|
|
79
|
+
fireEvent.click(image);
|
|
89
80
|
|
|
90
81
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
91
|
-
expect(spy).toHaveBeenCalledWith(mockEvent);
|
|
92
82
|
});
|
|
93
83
|
|
|
94
84
|
it('renders the fallback background color when loading has failed', () => {
|
|
95
|
-
const
|
|
85
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
86
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
96
87
|
|
|
97
|
-
|
|
98
|
-
wrapper.update();
|
|
88
|
+
fireEvent.error(img);
|
|
99
89
|
|
|
100
|
-
const loader =
|
|
101
|
-
const fallbackContainer =
|
|
90
|
+
const loader = container.querySelector('svg');
|
|
91
|
+
const fallbackContainer = container.querySelectorAll('.container')[1];
|
|
102
92
|
|
|
103
|
-
expect(
|
|
104
|
-
expect(loader
|
|
105
|
-
expect(fallbackContainer.
|
|
93
|
+
expect(container.querySelector('img')).not.toBeInTheDocument();
|
|
94
|
+
expect(loader).not.toBeInTheDocument();
|
|
95
|
+
expect(fallbackContainer?.classList.contains('fallback')).toBe(true);
|
|
106
96
|
});
|
|
107
97
|
|
|
108
98
|
it('renders a fallback image when loading has failed', () => {
|
|
109
99
|
const mockFallbackUrl = 'mock-url';
|
|
110
|
-
const
|
|
100
|
+
const { container } = render(
|
|
111
101
|
<ImageLoader imgSrc="" fallbackSrc={mockFallbackUrl} />,
|
|
112
102
|
);
|
|
103
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
113
104
|
|
|
114
|
-
|
|
115
|
-
wrapper.update();
|
|
105
|
+
fireEvent.error(img);
|
|
116
106
|
|
|
117
|
-
const loader =
|
|
118
|
-
const images =
|
|
119
|
-
const
|
|
107
|
+
const loader = container.querySelector('svg');
|
|
108
|
+
const images = container.querySelectorAll('img');
|
|
109
|
+
const fallbackContainers = container.querySelectorAll('.container');
|
|
120
110
|
|
|
121
|
-
expect(loader
|
|
122
|
-
expect(
|
|
123
|
-
expect(images
|
|
124
|
-
expect(images
|
|
125
|
-
expect(images
|
|
111
|
+
expect(loader).not.toBeInTheDocument();
|
|
112
|
+
expect(fallbackContainers).toHaveLength(1); // no background color fallback, just one container
|
|
113
|
+
expect(images[0]).toBeInTheDocument(); // fallback image
|
|
114
|
+
expect(images[0].src).toContain(mockFallbackUrl);
|
|
115
|
+
expect(images[0].classList.contains('fallBackImage')).toBe(true);
|
|
126
116
|
});
|
|
127
117
|
|
|
128
118
|
it('emits onError callback with img src after load failure', () => {
|
|
129
|
-
const spy =
|
|
119
|
+
const spy = vi.fn();
|
|
130
120
|
const mockUrl = 'mock-url';
|
|
131
|
-
const
|
|
121
|
+
const { container } = render(
|
|
122
|
+
<ImageLoader imgSrc={mockUrl} onError={spy} />,
|
|
123
|
+
);
|
|
124
|
+
const img = container.querySelector('img') as HTMLImageElement;
|
|
132
125
|
|
|
133
|
-
|
|
126
|
+
fireEvent.error(img);
|
|
134
127
|
|
|
135
128
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
136
129
|
expect(spy).toHaveBeenCalledWith(mockUrl);
|
|
@@ -143,74 +136,73 @@ describe('ImageLoader', () => {
|
|
|
143
136
|
<circle r="50" />
|
|
144
137
|
</svg>
|
|
145
138
|
);
|
|
146
|
-
const
|
|
139
|
+
const { container } = render(
|
|
140
|
+
<ImageLoader imgSrc="" loadingSkeleton={mockSVG} />,
|
|
141
|
+
);
|
|
147
142
|
|
|
148
|
-
const svg =
|
|
143
|
+
const svg = container.querySelector(`#${mockId}`);
|
|
149
144
|
|
|
150
|
-
expect(svg
|
|
145
|
+
expect(svg).toBeInTheDocument();
|
|
151
146
|
});
|
|
152
147
|
|
|
153
148
|
it('default square skeleton should take up the full space of the loader by default', () => {
|
|
154
|
-
const
|
|
149
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
155
150
|
|
|
156
|
-
const
|
|
157
|
-
const skeleton =
|
|
151
|
+
const svg = container.querySelector('svg');
|
|
152
|
+
const skeleton = container.querySelector('rect');
|
|
158
153
|
|
|
159
|
-
expect(skeleton
|
|
160
|
-
expect(skeleton
|
|
161
|
-
expect(
|
|
154
|
+
expect(skeleton?.getAttribute('width')).toBe('100%');
|
|
155
|
+
expect(skeleton?.getAttribute('height')).toBe('100%');
|
|
156
|
+
expect(svg?.getAttribute('viewBox')).toBe('0 0 50 50');
|
|
162
157
|
});
|
|
163
158
|
|
|
164
159
|
it('uses width and height for the squarebox', () => {
|
|
165
|
-
const
|
|
160
|
+
const { container } = render(
|
|
161
|
+
<ImageLoader imgSrc="" width={123} height={456} />,
|
|
162
|
+
);
|
|
166
163
|
|
|
167
|
-
const
|
|
164
|
+
const svg = container.querySelector('svg');
|
|
168
165
|
|
|
169
|
-
expect(
|
|
166
|
+
expect(svg?.getAttribute('viewBox')).toBe('0 0 123 456');
|
|
170
167
|
});
|
|
171
168
|
|
|
172
169
|
it('passes svg viewbox, animation speed, color props to ContentLoader', () => {
|
|
173
|
-
const mockSpeed = 1;
|
|
174
|
-
const mockBackgroundColor = '#CCC';
|
|
175
|
-
const mockForegroundColor = '#FFF';
|
|
176
170
|
const mockViewbox = '75 75 75 75';
|
|
177
|
-
const
|
|
171
|
+
const { container } = render(
|
|
178
172
|
<ImageLoader
|
|
179
173
|
imgSrc=""
|
|
180
|
-
speed={
|
|
181
|
-
backgroundColor=
|
|
182
|
-
foregroundColor=
|
|
174
|
+
speed={1}
|
|
175
|
+
backgroundColor="#CCC"
|
|
176
|
+
foregroundColor="#FFF"
|
|
183
177
|
viewBox={mockViewbox}
|
|
184
178
|
/>,
|
|
185
179
|
);
|
|
186
180
|
|
|
187
|
-
const
|
|
181
|
+
const svg = container.querySelector('svg');
|
|
188
182
|
|
|
189
|
-
expect(
|
|
190
|
-
|
|
191
|
-
expect(loader.prop('foregroundColor')).toBe(mockForegroundColor);
|
|
192
|
-
expect(loader.prop('viewBox')).toBe(mockViewbox);
|
|
183
|
+
expect(svg?.getAttribute('viewBox')).toBe(mockViewbox);
|
|
184
|
+
// Note: speed and color props are internal to ContentLoader
|
|
193
185
|
});
|
|
194
186
|
|
|
195
187
|
it(`loader dimensions defaults to '50px' by '50px'`, () => {
|
|
196
|
-
const
|
|
188
|
+
const { container } = render(<ImageLoader imgSrc="" />);
|
|
197
189
|
|
|
198
|
-
const loader =
|
|
190
|
+
const loader = container.querySelector('.loader') as HTMLDivElement;
|
|
199
191
|
|
|
200
|
-
expect(loader.height).toBe('50px');
|
|
201
|
-
expect(loader.width).toBe('50px');
|
|
192
|
+
expect(loader.style.height).toBe('50px');
|
|
193
|
+
expect(loader.style.width).toBe('50px');
|
|
202
194
|
});
|
|
203
195
|
|
|
204
196
|
it('sets the height and width of the loader', () => {
|
|
205
197
|
const mockHeight = 15;
|
|
206
198
|
const mockWidth = 75;
|
|
207
|
-
const
|
|
199
|
+
const { container } = render(
|
|
208
200
|
<ImageLoader imgSrc="" height={mockHeight} width={mockWidth} />,
|
|
209
201
|
);
|
|
210
202
|
|
|
211
|
-
const loader =
|
|
203
|
+
const loader = container.querySelector('.loader') as HTMLDivElement;
|
|
212
204
|
|
|
213
|
-
expect(loader.height).toBe(`${mockHeight}px`);
|
|
214
|
-
expect(loader.width).toBe(`${mockWidth}px`);
|
|
205
|
+
expect(loader.style.height).toBe(`${mockHeight}px`);
|
|
206
|
+
expect(loader.style.width).toBe(`${mockWidth}px`);
|
|
215
207
|
});
|
|
216
208
|
});
|
|
@@ -1,34 +1,58 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React, { ReactNode } from 'react';
|
|
3
3
|
import ContentLoader from 'react-content-loader';
|
|
4
|
+
import type { Mock } from 'vitest';
|
|
5
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
6
|
import { Loader } from './Loader';
|
|
5
7
|
|
|
8
|
+
vi.mock('react-content-loader', async () => {
|
|
9
|
+
const ActualReact = await vi.importActual<typeof import('react')>('react');
|
|
10
|
+
return {
|
|
11
|
+
__esModule: true,
|
|
12
|
+
default: vi.fn(
|
|
13
|
+
({
|
|
14
|
+
speed: _speed,
|
|
15
|
+
backgroundColor: _bg,
|
|
16
|
+
foregroundColor: _fg,
|
|
17
|
+
children,
|
|
18
|
+
...svgProps
|
|
19
|
+
}) => ActualReact.createElement('svg', svgProps, children),
|
|
20
|
+
),
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const mockedContentLoader = ContentLoader as Mock;
|
|
25
|
+
|
|
6
26
|
describe('Loader component', () => {
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
mockedContentLoader.mockClear();
|
|
29
|
+
});
|
|
30
|
+
|
|
7
31
|
it('renders the container div if showLoader is set to true', () => {
|
|
8
|
-
const
|
|
9
|
-
expect(
|
|
32
|
+
const { container } = render(<Loader showLoader={true} />);
|
|
33
|
+
expect(container.querySelector('.container')).toBeInTheDocument();
|
|
10
34
|
});
|
|
11
35
|
|
|
12
36
|
it('container div should not be rendered if showLoader is set to false', () => {
|
|
13
|
-
const
|
|
14
|
-
expect(
|
|
37
|
+
const { container } = render(<Loader showLoader={false} />);
|
|
38
|
+
expect(container.querySelector('.container')).not.toBeInTheDocument();
|
|
15
39
|
});
|
|
16
40
|
|
|
17
41
|
it('container is styled with default styles if no optional styles are provided', () => {
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
expect(
|
|
42
|
+
const { container } = render(<Loader showLoader={true} />);
|
|
43
|
+
const loaderContainer = container.querySelector(
|
|
44
|
+
'.container',
|
|
45
|
+
) as HTMLDivElement;
|
|
46
|
+
expect(loaderContainer.style.width).toBe('100px');
|
|
23
47
|
});
|
|
24
48
|
|
|
25
49
|
it('container is styled with the custom width if width is provided with props', () => {
|
|
26
50
|
const width = 120;
|
|
27
|
-
const
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
expect(
|
|
51
|
+
const { container } = render(<Loader showLoader={true} width={width} />);
|
|
52
|
+
const loaderContainer = container.querySelector(
|
|
53
|
+
'.container',
|
|
54
|
+
) as HTMLDivElement;
|
|
55
|
+
expect(loaderContainer.style.width).toBe(`${width}px`);
|
|
32
56
|
});
|
|
33
57
|
|
|
34
58
|
it('replaces default loading SVG with a custom SVG', () => {
|
|
@@ -39,13 +63,13 @@ describe('Loader component', () => {
|
|
|
39
63
|
</svg>
|
|
40
64
|
);
|
|
41
65
|
|
|
42
|
-
const
|
|
66
|
+
const { container } = render(
|
|
43
67
|
<Loader showLoader={true} loadingSkeleton={mockSVG} />,
|
|
44
68
|
);
|
|
45
69
|
|
|
46
|
-
const svg =
|
|
70
|
+
const svg = container.querySelector(`#${mockId}`);
|
|
47
71
|
|
|
48
|
-
expect(svg
|
|
72
|
+
expect(svg).toBeInTheDocument();
|
|
49
73
|
});
|
|
50
74
|
|
|
51
75
|
it('passes svg viewbox, animation speed, color props to ContentLoader', () => {
|
|
@@ -53,7 +77,7 @@ describe('Loader component', () => {
|
|
|
53
77
|
const mockBackgroundColor = '#CCC';
|
|
54
78
|
const mockForegroundColor = '#FFF';
|
|
55
79
|
const mockViewbox = '75 75 75 75';
|
|
56
|
-
|
|
80
|
+
render(
|
|
57
81
|
<Loader
|
|
58
82
|
showLoader={true}
|
|
59
83
|
speed={mockSpeed}
|
|
@@ -63,12 +87,15 @@ describe('Loader component', () => {
|
|
|
63
87
|
/>,
|
|
64
88
|
);
|
|
65
89
|
|
|
66
|
-
const
|
|
90
|
+
const lastCallProps =
|
|
91
|
+
mockedContentLoader.mock.calls[
|
|
92
|
+
mockedContentLoader.mock.calls.length - 1
|
|
93
|
+
][0];
|
|
67
94
|
|
|
68
|
-
expect(
|
|
69
|
-
expect(
|
|
70
|
-
expect(
|
|
71
|
-
expect(
|
|
95
|
+
expect(lastCallProps.speed).toBe(mockSpeed);
|
|
96
|
+
expect(lastCallProps.backgroundColor).toBe(mockBackgroundColor);
|
|
97
|
+
expect(lastCallProps.foregroundColor).toBe(mockForegroundColor);
|
|
98
|
+
expect(lastCallProps.viewBox).toBe(mockViewbox);
|
|
72
99
|
});
|
|
73
100
|
|
|
74
101
|
// Height attr is not tested here since its set inside the SVG image
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render, screen } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
4
|
+
import { IconName } from '../Icons';
|
|
4
5
|
import { Message, MessageProps } from './Message';
|
|
5
6
|
|
|
6
7
|
const defaultProps: MessageProps = {
|
|
@@ -9,28 +10,28 @@ const defaultProps: MessageProps = {
|
|
|
9
10
|
|
|
10
11
|
describe('Message', () => {
|
|
11
12
|
it('renders the component without crashing', () => {
|
|
12
|
-
const
|
|
13
|
+
const { container } = render(<Message {...defaultProps} />);
|
|
13
14
|
|
|
14
|
-
expect(
|
|
15
|
+
expect(container).toBeTruthy();
|
|
15
16
|
});
|
|
16
17
|
|
|
17
18
|
it(`renders a message`, () => {
|
|
18
|
-
|
|
19
|
+
render(<Message {...defaultProps} />);
|
|
19
20
|
|
|
20
|
-
const message =
|
|
21
|
+
const message = screen.getByTestId('message-title');
|
|
21
22
|
|
|
22
|
-
expect(message.
|
|
23
|
+
expect(message.textContent).toBe(defaultProps.title);
|
|
23
24
|
});
|
|
24
25
|
|
|
25
26
|
it('allows an optional class to be passed in', () => {
|
|
26
27
|
const mockClass = 'test-class';
|
|
27
|
-
const
|
|
28
|
+
const { container } = render(
|
|
28
29
|
<Message {...defaultProps} className={mockClass} />,
|
|
29
30
|
);
|
|
30
31
|
|
|
31
|
-
const
|
|
32
|
+
const messageContainer = container.querySelector('.message-container');
|
|
32
33
|
|
|
33
|
-
expect(
|
|
34
|
+
expect(messageContainer?.classList.contains(mockClass)).toBe(true);
|
|
34
35
|
});
|
|
35
36
|
|
|
36
37
|
describe('message types', () => {
|
|
@@ -41,17 +42,17 @@ describe('Message', () => {
|
|
|
41
42
|
['success', IconName.Success, 'hasSuccess'],
|
|
42
43
|
['warning', IconName.Warning, 'hasWarning'],
|
|
43
44
|
])('message type styling', (type, icon, className) => {
|
|
44
|
-
const
|
|
45
|
+
const { container } = render(
|
|
45
46
|
<Message {...defaultProps} type={type as MessageProps['type']} />,
|
|
46
47
|
);
|
|
47
48
|
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const container = wrapper.find('.container');
|
|
49
|
+
const messageElement = screen.getByTestId('message');
|
|
50
|
+
const messageContainer = container.querySelector('.message-container');
|
|
51
51
|
|
|
52
|
-
expect(
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
expect(messageElement.getAttribute('data-test-type')).toBe(
|
|
53
|
+
type || 'error',
|
|
54
|
+
);
|
|
55
|
+
expect(messageContainer?.classList.contains(className)).toBe(true);
|
|
55
56
|
});
|
|
56
57
|
});
|
|
57
58
|
|
|
@@ -59,70 +60,81 @@ describe('Message', () => {
|
|
|
59
60
|
it(`renders a header component if set`, () => {
|
|
60
61
|
const mockHeader: JSX.Element = <div>test</div>;
|
|
61
62
|
|
|
62
|
-
const
|
|
63
|
+
const { container, rerender } = render(<Message {...defaultProps} />);
|
|
63
64
|
|
|
64
|
-
let header =
|
|
65
|
+
let header = container.querySelector('.header');
|
|
65
66
|
|
|
66
|
-
expect(header
|
|
67
|
+
expect(header).toBeNull();
|
|
67
68
|
|
|
68
|
-
|
|
69
|
-
wrapper.update();
|
|
69
|
+
rerender(<Message {...defaultProps} header={mockHeader} />);
|
|
70
70
|
|
|
71
|
-
header =
|
|
71
|
+
header = container.querySelector('.header');
|
|
72
72
|
|
|
73
|
-
expect(header
|
|
73
|
+
expect(header).toBeTruthy();
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
describe('message body', () => {
|
|
78
78
|
it(`does not render a body if component has no children`, () => {
|
|
79
|
-
const
|
|
79
|
+
const { container } = render(<Message {...defaultProps} />);
|
|
80
80
|
|
|
81
|
-
const body =
|
|
81
|
+
const body = container.querySelector('.body');
|
|
82
82
|
|
|
83
|
-
expect(body
|
|
83
|
+
expect(body).toBeNull();
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
it(`does not render a body if component has children but 'isBodyOpen' is not true`, () => {
|
|
87
|
-
const
|
|
87
|
+
const { container } = render(<Message {...defaultProps}>Test</Message>);
|
|
88
88
|
|
|
89
|
-
const body =
|
|
89
|
+
const body = container.querySelector('.body');
|
|
90
90
|
|
|
91
|
-
expect(body
|
|
91
|
+
expect(body).toBeNull();
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
it(`renders a body if component has children and 'isBodyOpen' is true`, () => {
|
|
95
|
-
const
|
|
95
|
+
const { container, rerender } = render(
|
|
96
|
+
<Message {...defaultProps}>Test</Message>,
|
|
97
|
+
);
|
|
96
98
|
|
|
97
|
-
let body =
|
|
99
|
+
let body = container.querySelector('.body');
|
|
98
100
|
|
|
99
|
-
expect(body
|
|
101
|
+
expect(body).toBeNull();
|
|
100
102
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
rerender(
|
|
104
|
+
<Message {...defaultProps} isBodyOpen={true}>
|
|
105
|
+
Test
|
|
106
|
+
</Message>,
|
|
107
|
+
);
|
|
103
108
|
|
|
104
|
-
body =
|
|
109
|
+
body = container.querySelector('.body');
|
|
105
110
|
|
|
106
|
-
expect(body
|
|
111
|
+
expect(body).toBeTruthy();
|
|
107
112
|
});
|
|
108
113
|
|
|
109
114
|
it(`sets body position to 'absolute' by default and allows it to be removed`, () => {
|
|
110
|
-
const
|
|
115
|
+
const { container, rerender } = render(
|
|
111
116
|
<Message {...defaultProps} isBodyOpen={true}>
|
|
112
117
|
Test
|
|
113
118
|
</Message>,
|
|
114
119
|
);
|
|
115
120
|
|
|
116
|
-
let body =
|
|
121
|
+
let body = container.querySelector('.body');
|
|
117
122
|
|
|
118
|
-
expect(body.
|
|
123
|
+
expect(body?.classList.contains('absolute')).toBe(true);
|
|
119
124
|
|
|
120
|
-
|
|
121
|
-
|
|
125
|
+
rerender(
|
|
126
|
+
<Message
|
|
127
|
+
{...defaultProps}
|
|
128
|
+
isBodyOpen={true}
|
|
129
|
+
isBodyPositionAbsolute={false}
|
|
130
|
+
>
|
|
131
|
+
Test
|
|
132
|
+
</Message>,
|
|
133
|
+
);
|
|
122
134
|
|
|
123
|
-
body =
|
|
135
|
+
body = container.querySelector('.body');
|
|
124
136
|
|
|
125
|
-
expect(body.
|
|
137
|
+
expect(body?.classList.contains('absolute')).toBe(false);
|
|
126
138
|
});
|
|
127
139
|
});
|
|
128
140
|
});
|