@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
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
import {
|
|
16
16
|
CustomTagsField,
|
|
17
17
|
DateTimeTextField,
|
|
18
|
+
FormGroup,
|
|
18
19
|
ReadOnlyField,
|
|
19
20
|
SelectField,
|
|
20
21
|
SingleLineTextField,
|
|
@@ -209,19 +210,20 @@ export const Extended: StoryObj<typeof Details> = (() => {
|
|
|
209
210
|
]}
|
|
210
211
|
as={SelectField}
|
|
211
212
|
/>
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
213
|
+
<FormGroup title="Collapsible Group" isCollapsible={true}>
|
|
214
|
+
<Field
|
|
215
|
+
name="shortDescription"
|
|
216
|
+
label="Short Description"
|
|
217
|
+
placeholder="Enter a short description..."
|
|
218
|
+
as={SingleLineTextField}
|
|
219
|
+
/>
|
|
220
|
+
<Field
|
|
221
|
+
name="longDescription"
|
|
222
|
+
label="Long Description"
|
|
223
|
+
placeholder="Enter a description..."
|
|
224
|
+
as={SingleLineTextField}
|
|
225
|
+
/>
|
|
226
|
+
</FormGroup>
|
|
225
227
|
<Field name="cast" label="Cast" as={CustomTagsField} />
|
|
226
228
|
<Field
|
|
227
229
|
name="released"
|
|
@@ -40,7 +40,7 @@ export const FormStationHeader: React.FC<
|
|
|
40
40
|
},
|
|
41
41
|
setValidationError,
|
|
42
42
|
}) => {
|
|
43
|
-
const { dirty, submitForm, resetForm,
|
|
43
|
+
const { dirty, submitForm, resetForm, validateForm } =
|
|
44
44
|
useFormikContext<FormikValues>();
|
|
45
45
|
const quickEditContext = useContext(QuickEditContext);
|
|
46
46
|
const bulkEditContext = useContext(BulkEditContext);
|
|
@@ -74,10 +74,12 @@ export const FormStationHeader: React.FC<
|
|
|
74
74
|
if (quickEditContext?.isQuickEditMode) {
|
|
75
75
|
quickEditContext.refresh();
|
|
76
76
|
} else if (bulkEditContext?.isBulkEditMode) {
|
|
77
|
-
|
|
77
|
+
const errors = await validateForm();
|
|
78
|
+
if (Object.keys(errors).length > 0) {
|
|
78
79
|
setValidationError();
|
|
79
80
|
return;
|
|
80
81
|
}
|
|
82
|
+
|
|
81
83
|
await submitForm();
|
|
82
84
|
history.replace(history.location.pathname);
|
|
83
85
|
} else {
|
|
@@ -128,7 +130,6 @@ export const FormStationHeader: React.FC<
|
|
|
128
130
|
cancelNavigationUrl,
|
|
129
131
|
dirty,
|
|
130
132
|
history,
|
|
131
|
-
isValid,
|
|
132
133
|
quickEditContext,
|
|
133
134
|
resetForm,
|
|
134
135
|
saveHeaderActionConfig.icon,
|
|
@@ -136,6 +137,7 @@ export const FormStationHeader: React.FC<
|
|
|
136
137
|
setValidationError,
|
|
137
138
|
showSaveHeaderAction,
|
|
138
139
|
submitForm,
|
|
140
|
+
validateForm,
|
|
139
141
|
]);
|
|
140
142
|
|
|
141
143
|
return (
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import * as Formik from 'formik';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { act } from 'react-dom/test-utils';
|
|
5
5
|
import { Link, MemoryRouter } from 'react-router-dom';
|
|
6
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
6
7
|
import { SaveOnNavigate } from './SaveOnNavigate';
|
|
7
8
|
|
|
8
|
-
const submitFormSpy =
|
|
9
|
+
const submitFormSpy = vi.fn(() => Promise.resolve());
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
useFormikContext:
|
|
11
|
+
vi.mock('formik', () => ({
|
|
12
|
+
useFormikContext: vi.fn(),
|
|
12
13
|
}));
|
|
13
14
|
|
|
14
15
|
const defaultFormikProps = {
|
|
@@ -21,33 +22,33 @@ const defaultFormikProps = {
|
|
|
21
22
|
|
|
22
23
|
describe('SaveOnNavigate', () => {
|
|
23
24
|
afterEach(() => {
|
|
24
|
-
|
|
25
|
+
vi.clearAllMocks();
|
|
25
26
|
});
|
|
26
27
|
|
|
27
28
|
it('renders the component without crashing', async () => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
vi.spyOn(Formik, 'useFormikContext').mockImplementation(
|
|
30
|
+
() => defaultFormikProps,
|
|
31
|
+
);
|
|
31
32
|
|
|
32
|
-
const
|
|
33
|
+
const { container } = render(
|
|
33
34
|
<MemoryRouter>
|
|
34
35
|
<SaveOnNavigate isSubmitting={false} />
|
|
35
36
|
</MemoryRouter>,
|
|
36
37
|
);
|
|
37
38
|
|
|
38
|
-
expect(
|
|
39
|
+
expect(container).toBeTruthy();
|
|
39
40
|
});
|
|
40
41
|
|
|
41
42
|
it(`form submission should be allowed if 'isSubmitting' is false`, async () => {
|
|
42
|
-
const submitSpy =
|
|
43
|
-
|
|
43
|
+
const submitSpy = vi.fn(() => Promise.resolve());
|
|
44
|
+
vi.spyOn(Formik, 'useFormikContext').mockImplementation(() => ({
|
|
44
45
|
...defaultFormikProps,
|
|
45
46
|
submitForm: submitSpy,
|
|
46
47
|
dirty: true,
|
|
47
48
|
isSubmitting: false,
|
|
48
49
|
}));
|
|
49
50
|
|
|
50
|
-
const
|
|
51
|
+
const { container } = render(
|
|
51
52
|
<MemoryRouter>
|
|
52
53
|
<Link id="link" to="/test">
|
|
53
54
|
link
|
|
@@ -56,10 +57,11 @@ describe('SaveOnNavigate', () => {
|
|
|
56
57
|
</MemoryRouter>,
|
|
57
58
|
);
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
const link = container.querySelector('a') as HTMLAnchorElement;
|
|
61
|
+
fireEvent.click(link, { button: 0 });
|
|
60
62
|
|
|
61
63
|
await act(async () => {
|
|
62
|
-
|
|
64
|
+
// Wait for async operations
|
|
63
65
|
});
|
|
64
66
|
|
|
65
67
|
// assert submit was attempted
|
|
@@ -67,15 +69,15 @@ describe('SaveOnNavigate', () => {
|
|
|
67
69
|
});
|
|
68
70
|
|
|
69
71
|
it(`form submission should not be allowed if 'isSubmitting' is true`, async () => {
|
|
70
|
-
const submitSpy =
|
|
71
|
-
|
|
72
|
+
const submitSpy = vi.fn(() => Promise.resolve());
|
|
73
|
+
vi.spyOn(Formik, 'useFormikContext').mockImplementation(() => ({
|
|
72
74
|
...defaultFormikProps,
|
|
73
75
|
submitForm: submitSpy,
|
|
74
76
|
dirty: true,
|
|
75
77
|
isSubmitting: false,
|
|
76
78
|
}));
|
|
77
79
|
|
|
78
|
-
const
|
|
80
|
+
const { container } = render(
|
|
79
81
|
<MemoryRouter>
|
|
80
82
|
<Link id="link" to="/test">
|
|
81
83
|
link
|
|
@@ -84,10 +86,11 @@ describe('SaveOnNavigate', () => {
|
|
|
84
86
|
</MemoryRouter>,
|
|
85
87
|
);
|
|
86
88
|
|
|
87
|
-
|
|
89
|
+
const link = container.querySelector('a') as HTMLAnchorElement;
|
|
90
|
+
fireEvent.click(link, { button: 0 });
|
|
88
91
|
|
|
89
92
|
await act(async () => {
|
|
90
|
-
|
|
93
|
+
// Wait for async operations
|
|
91
94
|
});
|
|
92
95
|
|
|
93
96
|
// assert another submit was not attempted
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
1
2
|
import { NavigationAPI } from '../../../hooks';
|
|
2
3
|
import { handleNavigationAttempt } from './handleNavigationAttempt';
|
|
3
4
|
|
|
@@ -6,9 +7,9 @@ describe('handleNavigationAttempt', () => {
|
|
|
6
7
|
|
|
7
8
|
beforeEach(() => {
|
|
8
9
|
navigation = {
|
|
9
|
-
pause:
|
|
10
|
-
resume:
|
|
11
|
-
cancel:
|
|
10
|
+
pause: vi.fn(),
|
|
11
|
+
resume: vi.fn(),
|
|
12
|
+
cancel: vi.fn(),
|
|
12
13
|
} as unknown as NavigationAPI;
|
|
13
14
|
});
|
|
14
15
|
|
|
@@ -16,11 +17,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
16
17
|
// Arrange
|
|
17
18
|
const dirty = false;
|
|
18
19
|
const isValid = true;
|
|
19
|
-
const submitForm =
|
|
20
|
+
const submitForm = vi.fn();
|
|
20
21
|
const isSubmitting = false;
|
|
21
22
|
const canSubmit = true;
|
|
22
|
-
const setCanSubmit =
|
|
23
|
-
const onNavigationCancelled =
|
|
23
|
+
const setCanSubmit = vi.fn();
|
|
24
|
+
const onNavigationCancelled = vi.fn();
|
|
24
25
|
|
|
25
26
|
// Act
|
|
26
27
|
await handleNavigationAttempt(
|
|
@@ -47,11 +48,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
47
48
|
// Arrange
|
|
48
49
|
const dirty = true;
|
|
49
50
|
const isValid = false;
|
|
50
|
-
const submitForm =
|
|
51
|
+
const submitForm = vi.fn();
|
|
51
52
|
const isSubmitting = false;
|
|
52
53
|
const canSubmit = true;
|
|
53
|
-
const setCanSubmit =
|
|
54
|
-
const onNavigationCancelled =
|
|
54
|
+
const setCanSubmit = vi.fn();
|
|
55
|
+
const onNavigationCancelled = vi.fn();
|
|
55
56
|
|
|
56
57
|
// Act
|
|
57
58
|
await handleNavigationAttempt(
|
|
@@ -78,11 +79,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
78
79
|
// Arrange
|
|
79
80
|
const dirty = true;
|
|
80
81
|
const isValid = true;
|
|
81
|
-
const submitForm =
|
|
82
|
+
const submitForm = vi.fn();
|
|
82
83
|
const isSubmitting = true;
|
|
83
84
|
const canSubmit = true;
|
|
84
|
-
const setCanSubmit =
|
|
85
|
-
const onNavigationCancelled =
|
|
85
|
+
const setCanSubmit = vi.fn();
|
|
86
|
+
const onNavigationCancelled = vi.fn();
|
|
86
87
|
|
|
87
88
|
// Act
|
|
88
89
|
await handleNavigationAttempt(
|
|
@@ -109,11 +110,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
109
110
|
// Arrange
|
|
110
111
|
const dirty = true;
|
|
111
112
|
const isValid = true;
|
|
112
|
-
const submitForm =
|
|
113
|
+
const submitForm = vi.fn();
|
|
113
114
|
const isSubmitting = true;
|
|
114
115
|
const canSubmit = true;
|
|
115
|
-
const setCanSubmit =
|
|
116
|
-
const onNavigationCancelled =
|
|
116
|
+
const setCanSubmit = vi.fn();
|
|
117
|
+
const onNavigationCancelled = vi.fn();
|
|
117
118
|
|
|
118
119
|
// Act
|
|
119
120
|
await handleNavigationAttempt(
|
|
@@ -140,11 +141,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
140
141
|
// Arrange
|
|
141
142
|
const dirty = true;
|
|
142
143
|
const isValid = true;
|
|
143
|
-
const submitForm =
|
|
144
|
+
const submitForm = vi.fn();
|
|
144
145
|
const isSubmitting = false;
|
|
145
146
|
const canSubmit = false;
|
|
146
|
-
const setCanSubmit =
|
|
147
|
-
const onNavigationCancelled =
|
|
147
|
+
const setCanSubmit = vi.fn();
|
|
148
|
+
const onNavigationCancelled = vi.fn();
|
|
148
149
|
|
|
149
150
|
// Act
|
|
150
151
|
await handleNavigationAttempt(
|
|
@@ -171,11 +172,11 @@ describe('handleNavigationAttempt', () => {
|
|
|
171
172
|
// Arrange
|
|
172
173
|
const dirty = true;
|
|
173
174
|
const isValid = true;
|
|
174
|
-
const submitForm =
|
|
175
|
+
const submitForm = vi.fn().mockResolvedValueOnce(undefined);
|
|
175
176
|
const isSubmitting = false;
|
|
176
177
|
const canSubmit = true;
|
|
177
|
-
const setCanSubmit =
|
|
178
|
-
const onNavigationCancelled =
|
|
178
|
+
const setCanSubmit = vi.fn();
|
|
179
|
+
const onNavigationCancelled = vi.fn();
|
|
179
180
|
|
|
180
181
|
// Act
|
|
181
182
|
await handleNavigationAttempt(
|
|
@@ -203,13 +204,13 @@ describe('handleNavigationAttempt', () => {
|
|
|
203
204
|
// Arrange
|
|
204
205
|
const dirty = true;
|
|
205
206
|
const isValid = true;
|
|
206
|
-
const submitForm =
|
|
207
|
+
const submitForm = vi
|
|
207
208
|
.fn()
|
|
208
209
|
.mockRejectedValueOnce(new Error('Failed to submit form'));
|
|
209
210
|
const isSubmitting = false;
|
|
210
211
|
const canSubmit = true;
|
|
211
|
-
const setCanSubmit =
|
|
212
|
-
const onNavigationCancelled =
|
|
212
|
+
const setCanSubmit = vi.fn();
|
|
213
|
+
const onNavigationCancelled = vi.fn();
|
|
213
214
|
|
|
214
215
|
// Act
|
|
215
216
|
await handleNavigationAttempt(
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { useFormikContext } from 'formik';
|
|
2
|
+
import type { Mock } from 'vitest';
|
|
3
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
2
4
|
import { useTitle } from './useTitle';
|
|
3
5
|
|
|
4
|
-
|
|
5
|
-
useFormikContext:
|
|
6
|
+
vi.mock('formik', () => ({
|
|
7
|
+
useFormikContext: vi.fn(),
|
|
6
8
|
}));
|
|
7
9
|
|
|
8
10
|
describe('useTitle', () => {
|
|
9
11
|
afterEach(() => {
|
|
10
|
-
|
|
12
|
+
vi.clearAllMocks();
|
|
11
13
|
});
|
|
12
14
|
|
|
13
15
|
it('should return default title when titleProperty is not provided', () => {
|
|
14
16
|
const defaultTitle = 'Default Title';
|
|
15
|
-
(useFormikContext as
|
|
17
|
+
(useFormikContext as Mock).mockReturnValueOnce({});
|
|
16
18
|
|
|
17
19
|
const result = useTitle(undefined, defaultTitle);
|
|
18
20
|
|
|
@@ -22,7 +24,7 @@ describe('useTitle', () => {
|
|
|
22
24
|
it('should return title from formik context when titleProperty is provided', () => {
|
|
23
25
|
const titleProperty = 'title';
|
|
24
26
|
const titleValue = 'Form Title';
|
|
25
|
-
(useFormikContext as
|
|
27
|
+
(useFormikContext as Mock).mockReturnValueOnce({
|
|
26
28
|
values: { [titleProperty]: titleValue },
|
|
27
29
|
});
|
|
28
30
|
|
|
@@ -34,7 +36,7 @@ describe('useTitle', () => {
|
|
|
34
36
|
it('should return default title when titleProperty is provided but not found in formik context', () => {
|
|
35
37
|
const titleProperty = 'title';
|
|
36
38
|
const defaultTitle = 'Default Title';
|
|
37
|
-
(useFormikContext as
|
|
39
|
+
(useFormikContext as Mock).mockReturnValueOnce({ values: {} });
|
|
38
40
|
|
|
39
41
|
const result = useTitle(titleProperty, defaultTitle);
|
|
40
42
|
|
|
@@ -43,7 +45,7 @@ describe('useTitle', () => {
|
|
|
43
45
|
|
|
44
46
|
it('should prepend an * when dirty is true', () => {
|
|
45
47
|
const defaultTitle = 'Default Title';
|
|
46
|
-
(useFormikContext as
|
|
48
|
+
(useFormikContext as Mock).mockReturnValueOnce({ dirty: true });
|
|
47
49
|
|
|
48
50
|
const result = useTitle(undefined, defaultTitle);
|
|
49
51
|
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { BrowserRouter as Router } from 'react-router-dom';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
4
5
|
import { Hub } from './Hub';
|
|
5
6
|
import { HubItem } from './Hub.model';
|
|
6
7
|
|
|
8
|
+
const renderWithRouter = (component: React.ReactElement) => {
|
|
9
|
+
return render(<Router>{component}</Router>);
|
|
10
|
+
};
|
|
11
|
+
|
|
7
12
|
const mockItems: HubItem[] = [
|
|
8
13
|
{
|
|
9
14
|
groupName: 'Video Service',
|
|
@@ -65,22 +70,20 @@ const groupNames = [...new Set(mockItems.map((item) => item.groupName))];
|
|
|
65
70
|
|
|
66
71
|
describe('Hub Tests', () => {
|
|
67
72
|
it('renders the component without crashing', () => {
|
|
68
|
-
const
|
|
73
|
+
const { container } = renderWithRouter(<Hub items={mockItems} />);
|
|
69
74
|
|
|
70
|
-
expect(
|
|
75
|
+
expect(container).toBeTruthy();
|
|
71
76
|
});
|
|
72
77
|
|
|
73
78
|
it('renders a group and tiles for each item in the data array', () => {
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
79
|
+
const { container } = renderWithRouter(<Hub items={mockItems} />);
|
|
80
|
+
const tiles = container.querySelectorAll('[data-test-id="tile-label"]');
|
|
81
|
+
const groups = container.querySelectorAll(
|
|
82
|
+
'[data-test-id="hub-group-label"]',
|
|
78
83
|
);
|
|
79
|
-
const tiles = wrapper.find('.container');
|
|
80
|
-
const groups = wrapper.find('.title');
|
|
81
84
|
|
|
82
85
|
expect(groups).toHaveLength(groupNames.length);
|
|
83
86
|
|
|
84
|
-
expect(tiles
|
|
87
|
+
expect(tiles).toHaveLength(mockItems.length);
|
|
85
88
|
});
|
|
86
89
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
4
|
+
import { describe, expect, it } from 'vitest';
|
|
4
5
|
import { Tile } from './Tile';
|
|
5
6
|
import { TileProps } from './Tile.model';
|
|
6
7
|
|
|
@@ -16,52 +17,55 @@ const MockIcon: React.FC = () => (
|
|
|
16
17
|
</svg>
|
|
17
18
|
);
|
|
18
19
|
|
|
20
|
+
const renderWithRouter = (component: React.ReactElement) => {
|
|
21
|
+
return render(<BrowserRouter>{component}</BrowserRouter>);
|
|
22
|
+
};
|
|
23
|
+
|
|
19
24
|
describe('Tile', () => {
|
|
20
25
|
it('renders the component without crashing', () => {
|
|
21
|
-
const
|
|
26
|
+
const { container } = renderWithRouter(<Tile {...mockProps} />);
|
|
22
27
|
|
|
23
|
-
expect(
|
|
28
|
+
expect(container).toBeTruthy();
|
|
24
29
|
});
|
|
25
30
|
|
|
26
31
|
it('renders the tile label', () => {
|
|
27
|
-
const
|
|
32
|
+
const { container } = renderWithRouter(<Tile {...mockProps} />);
|
|
28
33
|
|
|
29
|
-
const label =
|
|
34
|
+
const label = container.querySelector('.label');
|
|
30
35
|
|
|
31
|
-
expect(label
|
|
36
|
+
expect(label?.textContent).toBe(mockProps.label);
|
|
32
37
|
});
|
|
33
38
|
|
|
34
39
|
it('renders an icon when passed as a string URL', () => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
<Tile {...mockProps} />
|
|
38
|
-
</MemoryRouter>,
|
|
39
|
-
);
|
|
40
|
-
const iconUrl = wrapper.find('img').prop('src');
|
|
40
|
+
const { container } = renderWithRouter(<Tile {...mockProps} />);
|
|
41
|
+
const iconImg = container.querySelector('img') as HTMLImageElement;
|
|
41
42
|
|
|
42
|
-
expect(
|
|
43
|
+
expect(iconImg.src).toContain(mockProps.icon);
|
|
43
44
|
});
|
|
44
45
|
|
|
45
46
|
it('renders an icon when passed as a react component', () => {
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
const { container } = renderWithRouter(
|
|
48
|
+
<Tile {...mockProps} icon={<MockIcon />} />,
|
|
49
|
+
);
|
|
50
|
+
const iconWrapper = container.querySelector('.icon');
|
|
51
|
+
const svg = iconWrapper?.querySelector('svg');
|
|
52
|
+
expect(svg).toBeInTheDocument();
|
|
49
53
|
});
|
|
50
54
|
|
|
51
55
|
it('to attrubute is not exists disabled class should be applied when disabled', () => {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
const { container } = renderWithRouter(
|
|
57
|
+
<Tile {...{ ...mockProps, disabled: true }} />,
|
|
58
|
+
);
|
|
59
|
+
const tile = container.querySelector('.tile');
|
|
55
60
|
|
|
56
|
-
expect(tile.
|
|
57
|
-
expect(toAttr).toStrictEqual({ pathname: undefined });
|
|
61
|
+
expect(tile?.classList.contains('disabled')).toBe(true);
|
|
58
62
|
});
|
|
59
63
|
|
|
60
64
|
it('creates a hyperlink using the path prop', () => {
|
|
61
|
-
const
|
|
65
|
+
const { container } = renderWithRouter(<Tile {...mockProps} />);
|
|
62
66
|
|
|
63
|
-
const
|
|
67
|
+
const tile = container.querySelector('.tile');
|
|
64
68
|
|
|
65
|
-
expect(
|
|
69
|
+
expect(tile).toBeInTheDocument();
|
|
66
70
|
});
|
|
67
71
|
});
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
3
4
|
import { Icons } from './Icons';
|
|
4
5
|
import { IconName } from './Icons.models';
|
|
5
6
|
|
|
6
7
|
describe('Icons', () => {
|
|
7
8
|
it('renders the component without crashing', () => {
|
|
8
|
-
const
|
|
9
|
+
const { container } = render(<Icons />);
|
|
9
10
|
|
|
10
|
-
expect(
|
|
11
|
+
expect(container).toBeTruthy();
|
|
11
12
|
});
|
|
12
13
|
|
|
13
14
|
it.each`
|
|
@@ -68,39 +69,34 @@ describe('Icons', () => {
|
|
|
68
69
|
${IconName.Warning} | ${1}
|
|
69
70
|
${IconName.X} | ${1}
|
|
70
71
|
`('renders $key icon with $result children', ({ key, result }) => {
|
|
71
|
-
const
|
|
72
|
+
const { container } = render(<Icons icon={key} />);
|
|
72
73
|
|
|
73
|
-
const
|
|
74
|
-
expect(svgElement).toHaveLength(1);
|
|
74
|
+
const icon = container.querySelector('svg');
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
const domNode = svgElement.getDOMNode() as SVGElement;
|
|
78
|
-
const childrenCount = domNode.children.length;
|
|
79
|
-
|
|
80
|
-
expect(childrenCount).toBe(result);
|
|
76
|
+
expect(icon?.children.length).toBe(result);
|
|
81
77
|
});
|
|
82
78
|
|
|
83
79
|
it('passes down optional className to icon', () => {
|
|
84
80
|
const mockClass = 'test-class';
|
|
85
|
-
const
|
|
81
|
+
const { container } = render(
|
|
86
82
|
<Icons icon={IconName.Archive} className={mockClass} />,
|
|
87
83
|
);
|
|
88
84
|
|
|
89
|
-
const icon =
|
|
85
|
+
const icon = container.querySelector('svg');
|
|
90
86
|
|
|
91
|
-
expect(icon.
|
|
87
|
+
expect(icon?.classList.contains(mockClass)).toBe(true);
|
|
92
88
|
});
|
|
93
89
|
|
|
94
90
|
it('renders an empty placeholder is used if no icon is set', () => {
|
|
95
|
-
const
|
|
91
|
+
const { container } = render(<Icons />);
|
|
96
92
|
|
|
97
|
-
const icon =
|
|
93
|
+
const icon = container.querySelector('svg');
|
|
98
94
|
|
|
99
|
-
expect(icon.
|
|
95
|
+
expect(icon?.children.length).toBe(0);
|
|
100
96
|
});
|
|
101
97
|
|
|
102
98
|
it('applies accessibility attributes correctly', () => {
|
|
103
|
-
const
|
|
99
|
+
const { container } = render(
|
|
104
100
|
<Icons
|
|
105
101
|
icon={IconName.Play}
|
|
106
102
|
aria-label="Play video"
|
|
@@ -108,20 +104,22 @@ describe('Icons', () => {
|
|
|
108
104
|
/>,
|
|
109
105
|
);
|
|
110
106
|
|
|
111
|
-
const svg =
|
|
107
|
+
const svg = container.querySelector('svg');
|
|
112
108
|
|
|
113
|
-
expect(svg
|
|
114
|
-
expect(svg
|
|
115
|
-
expect(svg
|
|
116
|
-
expect(
|
|
109
|
+
expect(svg?.getAttribute('aria-label')).toBe('Play video');
|
|
110
|
+
expect(svg?.getAttribute('role')).toBe('img');
|
|
111
|
+
expect(svg?.getAttribute('aria-hidden')).toBeNull();
|
|
112
|
+
expect(container.querySelector('title')?.textContent).toBe(
|
|
113
|
+
'Start playback',
|
|
114
|
+
);
|
|
117
115
|
});
|
|
118
116
|
|
|
119
117
|
it('marks decorative icons as presentation', () => {
|
|
120
|
-
const
|
|
118
|
+
const { container } = render(<Icons icon={IconName.Play} />);
|
|
121
119
|
|
|
122
|
-
const svg =
|
|
120
|
+
const svg = container.querySelector('svg');
|
|
123
121
|
|
|
124
|
-
expect(svg
|
|
125
|
-
expect(svg
|
|
122
|
+
expect(svg?.getAttribute('role')).toBe('presentation');
|
|
123
|
+
expect(svg?.getAttribute('aria-hidden')).toBe('true');
|
|
126
124
|
});
|
|
127
125
|
});
|
|
@@ -175,7 +175,7 @@ const ClearAllIcon: React.FC<SvgElementProps> = (props) => (
|
|
|
175
175
|
<SvgElement {...props}>
|
|
176
176
|
<path
|
|
177
177
|
{...DEFAULT_PATH_PROPS}
|
|
178
|
-
d="
|
|
178
|
+
d="M28.6,33.7H11.2l-7.2-7.2L24.2,6.3l11.8,11.8-15.6,15.6M18.6,11.9l11.8,11.8M31.9,33.7h3.7"
|
|
179
179
|
/>
|
|
180
180
|
</SvgElement>
|
|
181
181
|
);
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
3
4
|
import { InfoImage } from './InfoImage';
|
|
4
5
|
|
|
5
6
|
describe('InfoImage Tests', () => {
|
|
6
7
|
it('renders the component without crashing', () => {
|
|
7
|
-
const
|
|
8
|
+
const { container } = render(<InfoImage imgSrc="" />);
|
|
8
9
|
|
|
9
|
-
expect(
|
|
10
|
+
expect(container).toBeTruthy();
|
|
10
11
|
});
|
|
11
12
|
});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
3
4
|
import { InfoPanel } from './InfoPanel';
|
|
4
5
|
|
|
5
6
|
describe('InfoPanel Tests', () => {
|
|
6
7
|
it('renders the component without crashing', () => {
|
|
7
|
-
const
|
|
8
|
+
const { container } = render(<InfoPanel />);
|
|
8
9
|
|
|
9
|
-
expect(
|
|
10
|
+
expect(container).toBeTruthy();
|
|
10
11
|
});
|
|
11
12
|
});
|