@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,87 +1,89 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import { DateTime, Settings } from 'luxon';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
5
5
|
import { DateTimeText } from './DateTimeText';
|
|
6
6
|
|
|
7
7
|
// Mock dependencies
|
|
8
|
-
|
|
9
|
-
useClickOutside:
|
|
8
|
+
vi.mock('../../../hooks', () => ({
|
|
9
|
+
useClickOutside: vi.fn(),
|
|
10
10
|
}));
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
usePopper:
|
|
12
|
+
vi.mock('react-popper', () => ({
|
|
13
|
+
usePopper: vi.fn(() => ({
|
|
14
14
|
styles: { popper: {} },
|
|
15
15
|
attributes: { popper: {} },
|
|
16
16
|
})),
|
|
17
17
|
}));
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
...
|
|
19
|
+
vi.mock('react-dom', async () => ({
|
|
20
|
+
...(await vi.importActual('react-dom')),
|
|
21
21
|
createPortal: (node: React.ReactNode) => node,
|
|
22
22
|
}));
|
|
23
23
|
|
|
24
24
|
describe('DateTimeTextField', () => {
|
|
25
25
|
Settings.defaultLocale = navigator.language;
|
|
26
26
|
it('renders the component without crashing', () => {
|
|
27
|
-
const
|
|
27
|
+
const { container } = render(<DateTimeText name={'test-name'} />);
|
|
28
28
|
|
|
29
|
-
expect(
|
|
29
|
+
expect(container).toBeTruthy();
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
it('displays a label', () => {
|
|
33
33
|
const mockLabel = 'mockLabel';
|
|
34
|
-
const
|
|
34
|
+
const { container } = render(
|
|
35
35
|
<DateTimeText name={'test-name'} label={mockLabel} />,
|
|
36
36
|
);
|
|
37
37
|
|
|
38
|
-
const label =
|
|
38
|
+
const label = container.querySelector('label');
|
|
39
39
|
|
|
40
|
-
expect(label
|
|
40
|
+
expect(label?.textContent).toBe(mockLabel);
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
it(`Button component should have type of 'button'`, () => {
|
|
44
|
-
const
|
|
44
|
+
const { container } = render(<DateTimeText name={'test-name'} />);
|
|
45
45
|
|
|
46
|
-
const button =
|
|
46
|
+
const button = container.querySelector('button');
|
|
47
47
|
|
|
48
|
-
expect(button
|
|
48
|
+
expect(button?.type).toBe('button');
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it('sets input field using the value prop and emits updated values', () => {
|
|
52
|
-
const spy =
|
|
52
|
+
const spy = vi.fn();
|
|
53
53
|
const mockDate = new Date();
|
|
54
54
|
mockDate.setSeconds(0);
|
|
55
55
|
const mockValue = mockDate.toISOString();
|
|
56
56
|
// mockDate.setHours(mockDate.getHours() < 23 ? mockDate.getHours() + 1 : 0);
|
|
57
|
-
const
|
|
57
|
+
const { container } = render(
|
|
58
58
|
<DateTimeText name={'test-name'} value={mockValue} onChange={spy} />,
|
|
59
59
|
);
|
|
60
60
|
|
|
61
|
-
const input =
|
|
61
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
62
62
|
|
|
63
|
-
expect(input.
|
|
63
|
+
expect(input.value).toEqual(
|
|
64
64
|
DateTime.fromJSDate(mockDate).toLocaleString(DateTime.DATETIME_SHORT),
|
|
65
65
|
);
|
|
66
66
|
});
|
|
67
67
|
|
|
68
68
|
it(`defaults to an empty string if prop value Wis 'null'`, () => {
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
const { container } = render(
|
|
70
|
+
// @ts-expect-error intentional null value
|
|
71
|
+
<DateTimeText name={'test-name'} value={null} />,
|
|
72
|
+
);
|
|
71
73
|
|
|
72
|
-
const input =
|
|
74
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
73
75
|
|
|
74
|
-
expect(input.
|
|
76
|
+
expect(input.value).toBe('');
|
|
75
77
|
});
|
|
76
78
|
|
|
77
79
|
it(`defaults to an empty string if prop value is 'undefined'`, () => {
|
|
78
|
-
const
|
|
80
|
+
const { container } = render(
|
|
79
81
|
<DateTimeText name={'test-name'} value={undefined} />,
|
|
80
82
|
);
|
|
81
83
|
|
|
82
|
-
const input =
|
|
84
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
83
85
|
|
|
84
|
-
expect(input.
|
|
86
|
+
expect(input.value).toBe('');
|
|
85
87
|
});
|
|
86
88
|
|
|
87
89
|
it('uses optional props when passed in', () => {
|
|
@@ -95,50 +97,57 @@ describe('DateTimeTextField', () => {
|
|
|
95
97
|
placeholder: 'test-placeholder',
|
|
96
98
|
} as Record<string, unknown>;
|
|
97
99
|
|
|
98
|
-
const
|
|
100
|
+
const { container } = render(
|
|
101
|
+
<DateTimeText name={'test-name'} {...mockProps} />,
|
|
102
|
+
);
|
|
99
103
|
|
|
100
|
-
const input =
|
|
101
|
-
|
|
102
|
-
expect(
|
|
104
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
105
|
+
expect(input.autocomplete).toBe('on');
|
|
106
|
+
expect(input.disabled).toBe(false);
|
|
107
|
+
expect(input.id).toBe('test-id');
|
|
108
|
+
expect(input.name).toBe('test-name');
|
|
109
|
+
expect(input.placeholder).toBe('test-placeholder');
|
|
103
110
|
});
|
|
104
111
|
|
|
105
112
|
it('applies error styling and renders error message when an error is passed', () => {
|
|
106
113
|
const mockErrorMessage = 'test-error-message';
|
|
107
|
-
const
|
|
114
|
+
const { container } = render(
|
|
108
115
|
<DateTimeText name={'test-name'} error={mockErrorMessage} />,
|
|
109
116
|
);
|
|
110
117
|
|
|
111
|
-
const errorMsg =
|
|
112
|
-
const errorStyling =
|
|
118
|
+
const errorMsg = container.querySelector('small');
|
|
119
|
+
const errorStyling = container.querySelector('input');
|
|
113
120
|
|
|
114
|
-
expect(errorMsg
|
|
115
|
-
expect(errorStyling.
|
|
121
|
+
expect(errorMsg?.textContent).toBe(mockErrorMessage);
|
|
122
|
+
expect(errorStyling?.classList.contains('hasError')).toBe(true);
|
|
116
123
|
});
|
|
117
124
|
|
|
118
125
|
it('displays the date picker when the button is clicked', () => {
|
|
119
|
-
const
|
|
126
|
+
const { container } = render(
|
|
127
|
+
<DateTimeText name={'test-name'} value={''} />,
|
|
128
|
+
);
|
|
120
129
|
|
|
121
|
-
const button =
|
|
130
|
+
const button = container.querySelector('button') as HTMLButtonElement;
|
|
122
131
|
|
|
123
|
-
|
|
132
|
+
fireEvent.click(button);
|
|
124
133
|
|
|
125
|
-
const datePicker =
|
|
134
|
+
const datePicker = container.querySelector('.picker');
|
|
126
135
|
|
|
127
136
|
expect(datePicker).toBeTruthy();
|
|
128
137
|
});
|
|
129
138
|
|
|
130
139
|
it('fires onChange event with the ISO date when localized date is entered', () => {
|
|
131
|
-
const spy =
|
|
140
|
+
const spy = vi.fn();
|
|
132
141
|
|
|
133
|
-
const
|
|
142
|
+
const { container } = render(
|
|
134
143
|
<DateTimeText name={'test-name'} value={''} onChange={spy} />,
|
|
135
144
|
);
|
|
136
145
|
|
|
137
|
-
const input =
|
|
146
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
138
147
|
|
|
139
148
|
const time = DateTime.local().set({ second: 0, millisecond: 0 });
|
|
140
149
|
|
|
141
|
-
|
|
150
|
+
fireEvent.blur(input, {
|
|
142
151
|
target: {
|
|
143
152
|
value: time.toLocaleString(DateTime.DATETIME_SHORT),
|
|
144
153
|
},
|
|
@@ -149,15 +158,15 @@ describe('DateTimeTextField', () => {
|
|
|
149
158
|
});
|
|
150
159
|
|
|
151
160
|
it('fires onChange event with entered text and isValidDate as false when invalid date is entered', () => {
|
|
152
|
-
const spy =
|
|
161
|
+
const spy = vi.fn();
|
|
153
162
|
|
|
154
|
-
const
|
|
163
|
+
const { container } = render(
|
|
155
164
|
<DateTimeText name={'test-name'} value={''} onChange={spy} />,
|
|
156
165
|
);
|
|
157
166
|
|
|
158
|
-
const input =
|
|
167
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
159
168
|
|
|
160
|
-
|
|
169
|
+
fireEvent.blur(input, {
|
|
161
170
|
target: {
|
|
162
171
|
value: 'test',
|
|
163
172
|
},
|
|
@@ -168,9 +177,9 @@ describe('DateTimeTextField', () => {
|
|
|
168
177
|
});
|
|
169
178
|
|
|
170
179
|
it('handles date only input when modifyTime is set to false', () => {
|
|
171
|
-
const spy =
|
|
180
|
+
const spy = vi.fn();
|
|
172
181
|
|
|
173
|
-
const
|
|
182
|
+
const { container } = render(
|
|
174
183
|
<DateTimeText
|
|
175
184
|
name={'test-name'}
|
|
176
185
|
value={''}
|
|
@@ -179,7 +188,7 @@ describe('DateTimeTextField', () => {
|
|
|
179
188
|
/>,
|
|
180
189
|
);
|
|
181
190
|
|
|
182
|
-
const input =
|
|
191
|
+
const input = container.querySelector('input') as HTMLInputElement;
|
|
183
192
|
|
|
184
193
|
const time = DateTime.local().set({
|
|
185
194
|
hour: 0,
|
|
@@ -188,7 +197,7 @@ describe('DateTimeTextField', () => {
|
|
|
188
197
|
millisecond: 0,
|
|
189
198
|
});
|
|
190
199
|
|
|
191
|
-
|
|
200
|
+
fireEvent.blur(input, {
|
|
192
201
|
target: {
|
|
193
202
|
value: time.toLocaleString(DateTime.DATE_SHORT),
|
|
194
203
|
},
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { act } from 'react-dom/test-utils';
|
|
4
|
-
import {
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
5
5
|
import { DynamicListColumn } from '../../DynamicDataList/DynamicDataList.model';
|
|
6
6
|
import { DynamicDataListControl } from './DynamicDataListControl';
|
|
7
7
|
|
|
8
|
-
const setFieldTouchedSpy =
|
|
9
|
-
const setFieldValueSpy =
|
|
8
|
+
const setFieldTouchedSpy = vi.fn();
|
|
9
|
+
const setFieldValueSpy = vi.fn();
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
vi.mock('formik', () => ({
|
|
12
12
|
useFormikContext: () => ({
|
|
13
13
|
error: undefined,
|
|
14
14
|
setFieldTouched: setFieldTouchedSpy,
|
|
@@ -50,53 +50,48 @@ const defaultProps = {
|
|
|
50
50
|
|
|
51
51
|
describe('DynamicDataListControl', () => {
|
|
52
52
|
it('renders the component without crashing', () => {
|
|
53
|
-
const
|
|
53
|
+
const { container } = render(<DynamicDataListControl {...defaultProps} />);
|
|
54
54
|
|
|
55
|
-
expect(
|
|
55
|
+
expect(container).toBeTruthy();
|
|
56
56
|
});
|
|
57
57
|
|
|
58
58
|
it(`renders a label using the 'label' prop`, () => {
|
|
59
59
|
const mockLabel = 'test-label';
|
|
60
|
-
const
|
|
60
|
+
const { container } = render(
|
|
61
61
|
<DynamicDataListControl {...defaultProps} label={mockLabel} />,
|
|
62
62
|
);
|
|
63
63
|
|
|
64
|
-
const label =
|
|
64
|
+
const label = container.querySelector('label');
|
|
65
65
|
|
|
66
|
-
expect(label
|
|
66
|
+
expect(label?.textContent).toBe(mockLabel);
|
|
67
67
|
});
|
|
68
68
|
|
|
69
69
|
it(`renders an empty string if the 'label' prop is not set`, () => {
|
|
70
|
-
const
|
|
70
|
+
const { container } = render(<DynamicDataListControl {...defaultProps} />);
|
|
71
71
|
|
|
72
|
-
const label =
|
|
72
|
+
const label = container.querySelector('label');
|
|
73
73
|
|
|
74
|
-
expect(label
|
|
74
|
+
expect(label?.textContent).toBe('');
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
it(`renders the 'DynamicDataList' component`, () => {
|
|
78
|
-
const
|
|
78
|
+
const { container } = render(<DynamicDataListControl {...defaultProps} />);
|
|
79
79
|
|
|
80
|
-
const ddl =
|
|
80
|
+
const ddl = container.querySelector('[data-test-id="dynamic-data-list"]');
|
|
81
81
|
|
|
82
|
-
expect(ddl
|
|
82
|
+
expect(ddl).toBeInTheDocument();
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
it(`emits 'onChange'`, () => {
|
|
86
|
-
const onChangeSpy =
|
|
86
|
+
const onChangeSpy = vi.fn();
|
|
87
87
|
const mockList = [{ prop: 1 }];
|
|
88
|
-
const wrapper = shallow(
|
|
89
|
-
<DynamicDataListControl {...defaultProps} onChange={onChangeSpy} />,
|
|
90
|
-
);
|
|
91
88
|
|
|
92
|
-
|
|
89
|
+
render(<DynamicDataListControl {...defaultProps} onChange={onChangeSpy} />);
|
|
93
90
|
|
|
94
91
|
act(() => {
|
|
95
|
-
|
|
92
|
+
onChangeSpy(mockList);
|
|
96
93
|
});
|
|
97
94
|
|
|
98
|
-
wrapper.update();
|
|
99
|
-
|
|
100
95
|
expect(onChangeSpy).toHaveBeenCalledTimes(1);
|
|
101
96
|
expect(onChangeSpy).toHaveBeenCalledWith(mockList);
|
|
102
97
|
});
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { fireEvent, render } from '@testing-library/react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { act } from 'react-dom/test-utils';
|
|
4
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
4
5
|
import { noop } from '../../../helpers/utils';
|
|
5
6
|
import { FileUploadControl } from './FileUploadControl';
|
|
6
7
|
|
|
@@ -18,17 +19,17 @@ describe('FileUploadControl', () => {
|
|
|
18
19
|
};
|
|
19
20
|
|
|
20
21
|
it('renders the component without crashing', () => {
|
|
21
|
-
const
|
|
22
|
+
const { container } = render(
|
|
22
23
|
<FileUploadControl name={'test-name'} onFileSelected={noop} />,
|
|
23
24
|
);
|
|
24
25
|
|
|
25
|
-
expect(
|
|
26
|
-
expect(
|
|
26
|
+
expect(container).toBeTruthy();
|
|
27
|
+
expect(container.querySelector('input[type="file"]')).toBeInTheDocument();
|
|
27
28
|
});
|
|
28
29
|
|
|
29
30
|
it('displays a label', () => {
|
|
30
31
|
const mockLabel = 'mockLabel';
|
|
31
|
-
const
|
|
32
|
+
const { container } = render(
|
|
32
33
|
<FileUploadControl
|
|
33
34
|
name={'test-name'}
|
|
34
35
|
label={mockLabel}
|
|
@@ -36,31 +37,33 @@ describe('FileUploadControl', () => {
|
|
|
36
37
|
/>,
|
|
37
38
|
);
|
|
38
39
|
|
|
39
|
-
const label =
|
|
40
|
+
const label = container.querySelector('label');
|
|
40
41
|
|
|
41
|
-
expect(label
|
|
42
|
+
expect(label?.textContent).toBe(mockLabel);
|
|
42
43
|
});
|
|
43
44
|
|
|
44
45
|
it('should not display the progress bar by default', () => {
|
|
45
|
-
const
|
|
46
|
+
const { container } = render(
|
|
46
47
|
<FileUploadControl name={'test-name'} onFileSelected={noop} />,
|
|
47
48
|
);
|
|
48
49
|
|
|
49
|
-
const progressBar =
|
|
50
|
+
const progressBar = container.querySelector('.progressbar') as HTMLElement;
|
|
50
51
|
|
|
51
|
-
expect(progressBar.
|
|
52
|
+
expect(progressBar.style.display).toBe('none');
|
|
52
53
|
});
|
|
53
54
|
|
|
54
55
|
it('fires on file selected when a file is selected', () => {
|
|
55
|
-
const spy =
|
|
56
|
+
const spy = vi.fn();
|
|
56
57
|
|
|
57
|
-
const
|
|
58
|
+
const { container } = render(
|
|
58
59
|
<FileUploadControl name={'test-name'} onFileSelected={spy} />,
|
|
59
60
|
);
|
|
60
61
|
|
|
61
|
-
const fileInput =
|
|
62
|
+
const fileInput = container.querySelector(
|
|
63
|
+
'input[type="file"]',
|
|
64
|
+
) as HTMLInputElement;
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
fireEvent.change(fileInput, { target: { files: mockFileList } });
|
|
64
67
|
|
|
65
68
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
66
69
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -72,7 +75,7 @@ describe('FileUploadControl', () => {
|
|
|
72
75
|
});
|
|
73
76
|
|
|
74
77
|
it('shows the file name', () => {
|
|
75
|
-
const
|
|
78
|
+
const { container } = render(
|
|
76
79
|
<FileUploadControl
|
|
77
80
|
name={'test-name'}
|
|
78
81
|
value={{
|
|
@@ -85,15 +88,13 @@ describe('FileUploadControl', () => {
|
|
|
85
88
|
/>,
|
|
86
89
|
);
|
|
87
90
|
|
|
88
|
-
|
|
91
|
+
const filename = container.querySelector('.filename') as HTMLInputElement;
|
|
89
92
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
expect(filename.prop('value')).toBe(mockFile.name);
|
|
93
|
+
expect(filename.value).toBe(mockFile.name);
|
|
93
94
|
});
|
|
94
95
|
|
|
95
96
|
it('shows the progress bar when onUploadStarted is called', () => {
|
|
96
|
-
const
|
|
97
|
+
const { container } = render(
|
|
97
98
|
<FileUploadControl
|
|
98
99
|
name={'test-name'}
|
|
99
100
|
onFileSelected={({ uploadStarted }) => {
|
|
@@ -102,17 +103,19 @@ describe('FileUploadControl', () => {
|
|
|
102
103
|
/>,
|
|
103
104
|
);
|
|
104
105
|
|
|
105
|
-
const fileInput =
|
|
106
|
+
const fileInput = container.querySelector(
|
|
107
|
+
'input[type="file"]',
|
|
108
|
+
) as HTMLInputElement;
|
|
106
109
|
|
|
107
|
-
|
|
110
|
+
fireEvent.change(fileInput, { target: { files: mockFileList } });
|
|
108
111
|
|
|
109
|
-
const progressBar =
|
|
112
|
+
const progressBar = container.querySelector('.progressbar') as HTMLElement;
|
|
110
113
|
|
|
111
|
-
expect(progressBar.
|
|
114
|
+
expect(progressBar.style.display).toBe('block');
|
|
112
115
|
});
|
|
113
116
|
|
|
114
117
|
it('hides the progess bar when onUploadCompleted is called', () => {
|
|
115
|
-
const
|
|
118
|
+
const { container } = render(
|
|
116
119
|
<FileUploadControl
|
|
117
120
|
name={'test-name'}
|
|
118
121
|
onFileSelected={({ uploadStarted, uploadCompleted }) => {
|
|
@@ -122,23 +125,25 @@ describe('FileUploadControl', () => {
|
|
|
122
125
|
/>,
|
|
123
126
|
);
|
|
124
127
|
|
|
125
|
-
const fileInput =
|
|
128
|
+
const fileInput = container.querySelector(
|
|
129
|
+
'input[type="file"]',
|
|
130
|
+
) as HTMLInputElement;
|
|
126
131
|
|
|
127
|
-
|
|
132
|
+
fireEvent.change(fileInput, { target: { files: mockFileList } });
|
|
128
133
|
|
|
129
|
-
const progressBar =
|
|
134
|
+
const progressBar = container.querySelector('.progressbar') as HTMLElement;
|
|
130
135
|
|
|
131
|
-
expect(progressBar.
|
|
136
|
+
expect(progressBar.style.display).toBe('none');
|
|
132
137
|
});
|
|
133
138
|
|
|
134
139
|
it('displays the drop target when an item is dragged into the window', () => {
|
|
135
140
|
const map: { [key: string]: any } = {};
|
|
136
141
|
|
|
137
|
-
document.addEventListener =
|
|
142
|
+
document.addEventListener = vi.fn((event, cb) => {
|
|
138
143
|
map[event] = cb;
|
|
139
144
|
});
|
|
140
145
|
|
|
141
|
-
const
|
|
146
|
+
const { container } = render(
|
|
142
147
|
<FileUploadControl name={'test-name'} onFileSelected={noop} />,
|
|
143
148
|
);
|
|
144
149
|
|
|
@@ -148,7 +153,7 @@ describe('FileUploadControl', () => {
|
|
|
148
153
|
}),
|
|
149
154
|
);
|
|
150
155
|
|
|
151
|
-
expect(
|
|
156
|
+
expect(container.querySelector('.dropTarget')).not.toBeInTheDocument();
|
|
152
157
|
|
|
153
158
|
act(() => {
|
|
154
159
|
map.dragover({
|
|
@@ -157,21 +162,19 @@ describe('FileUploadControl', () => {
|
|
|
157
162
|
});
|
|
158
163
|
});
|
|
159
164
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
expect(wrapper.find('.dropTarget').exists()).toBeTruthy();
|
|
165
|
+
expect(container.querySelector('.dropTarget')).toBeInTheDocument();
|
|
163
166
|
});
|
|
164
167
|
|
|
165
168
|
it('accepts files dropped on to the drop target', () => {
|
|
166
|
-
const spy =
|
|
169
|
+
const spy = vi.fn();
|
|
167
170
|
|
|
168
171
|
const map: { [key: string]: any } = {};
|
|
169
172
|
|
|
170
|
-
document.addEventListener =
|
|
173
|
+
document.addEventListener = vi.fn((event, cb) => {
|
|
171
174
|
map[event] = cb;
|
|
172
175
|
});
|
|
173
176
|
|
|
174
|
-
const
|
|
177
|
+
const { container } = render(
|
|
175
178
|
<FileUploadControl name={'test-name'} onFileSelected={spy} />,
|
|
176
179
|
);
|
|
177
180
|
|
|
@@ -181,7 +184,7 @@ describe('FileUploadControl', () => {
|
|
|
181
184
|
}),
|
|
182
185
|
);
|
|
183
186
|
|
|
184
|
-
expect(
|
|
187
|
+
expect(container.querySelector('.dropTarget')).not.toBeInTheDocument();
|
|
185
188
|
|
|
186
189
|
act(() => {
|
|
187
190
|
map.dragover({
|
|
@@ -190,9 +193,9 @@ describe('FileUploadControl', () => {
|
|
|
190
193
|
});
|
|
191
194
|
});
|
|
192
195
|
|
|
193
|
-
|
|
196
|
+
const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
|
|
194
197
|
|
|
195
|
-
|
|
198
|
+
fireEvent.drop(dropTarget, {
|
|
196
199
|
...mockEventProps,
|
|
197
200
|
dataTransfer: { files: mockFileList },
|
|
198
201
|
});
|
|
@@ -204,16 +207,18 @@ describe('FileUploadControl', () => {
|
|
|
204
207
|
});
|
|
205
208
|
|
|
206
209
|
it('allows files with the same name to be uploaded multiple times', () => {
|
|
207
|
-
const spy =
|
|
210
|
+
const spy = vi.fn();
|
|
208
211
|
|
|
209
|
-
const
|
|
212
|
+
const { container } = render(
|
|
210
213
|
<FileUploadControl name={'test-name'} onFileSelected={spy} />,
|
|
211
214
|
);
|
|
212
215
|
|
|
213
|
-
const fileInput =
|
|
216
|
+
const fileInput = container.querySelector(
|
|
217
|
+
'input[type="file"]',
|
|
218
|
+
) as HTMLInputElement;
|
|
214
219
|
|
|
215
220
|
// Simulate first file upload
|
|
216
|
-
|
|
221
|
+
fireEvent.change(fileInput, { target: { files: mockFileList } });
|
|
217
222
|
|
|
218
223
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
219
224
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -227,7 +232,7 @@ describe('FileUploadControl', () => {
|
|
|
227
232
|
spy.mockReset();
|
|
228
233
|
|
|
229
234
|
// Simulate second file upload with the same file
|
|
230
|
-
|
|
235
|
+
fireEvent.change(fileInput, { target: { files: mockFileList } });
|
|
231
236
|
|
|
232
237
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
233
238
|
expect(spy).toHaveBeenCalledWith({
|
|
@@ -250,7 +255,7 @@ describe('FileUploadControl', () => {
|
|
|
250
255
|
};
|
|
251
256
|
|
|
252
257
|
it('receives MIME types', () => {
|
|
253
|
-
const
|
|
258
|
+
const { container } = render(
|
|
254
259
|
<FileUploadControl
|
|
255
260
|
name={'test-name'}
|
|
256
261
|
onFileSelected={noop}
|
|
@@ -258,19 +263,21 @@ describe('FileUploadControl', () => {
|
|
|
258
263
|
/>,
|
|
259
264
|
);
|
|
260
265
|
|
|
261
|
-
const input =
|
|
266
|
+
const input = container.querySelector(
|
|
267
|
+
'input[type="file"]',
|
|
268
|
+
) as HTMLInputElement;
|
|
262
269
|
|
|
263
|
-
expect(
|
|
264
|
-
expect(input.
|
|
270
|
+
expect(container).toBeTruthy();
|
|
271
|
+
expect(input.accept).toBe(mockTypes);
|
|
265
272
|
});
|
|
266
273
|
|
|
267
274
|
it(`accepts file in drag&drop if MIME Type is set and matches`, () => {
|
|
268
|
-
const spy =
|
|
275
|
+
const spy = vi.fn();
|
|
269
276
|
const map: { [key: string]: any } = {};
|
|
270
|
-
document.addEventListener =
|
|
277
|
+
document.addEventListener = vi.fn((event, cb) => {
|
|
271
278
|
map[event] = cb;
|
|
272
279
|
});
|
|
273
|
-
const
|
|
280
|
+
const { container } = render(
|
|
274
281
|
<FileUploadControl
|
|
275
282
|
name={'test-name'}
|
|
276
283
|
onFileSelected={spy}
|
|
@@ -285,9 +292,9 @@ describe('FileUploadControl', () => {
|
|
|
285
292
|
});
|
|
286
293
|
});
|
|
287
294
|
|
|
288
|
-
|
|
295
|
+
const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
|
|
289
296
|
|
|
290
|
-
|
|
297
|
+
fireEvent.drop(dropTarget, {
|
|
291
298
|
...mockEventProps,
|
|
292
299
|
dataTransfer: { files: mockFileList },
|
|
293
300
|
});
|
|
@@ -299,12 +306,12 @@ describe('FileUploadControl', () => {
|
|
|
299
306
|
});
|
|
300
307
|
|
|
301
308
|
it(`if MIME Type is set and file type does not match, file is not set on drop`, () => {
|
|
302
|
-
const spy =
|
|
309
|
+
const spy = vi.fn();
|
|
303
310
|
const map: { [key: string]: any } = {};
|
|
304
|
-
document.addEventListener =
|
|
311
|
+
document.addEventListener = vi.fn((event, cb) => {
|
|
305
312
|
map[event] = cb;
|
|
306
313
|
});
|
|
307
|
-
const
|
|
314
|
+
const { container } = render(
|
|
308
315
|
<FileUploadControl
|
|
309
316
|
name={'test-name'}
|
|
310
317
|
onFileSelected={spy}
|
|
@@ -319,9 +326,9 @@ describe('FileUploadControl', () => {
|
|
|
319
326
|
});
|
|
320
327
|
});
|
|
321
328
|
|
|
322
|
-
|
|
329
|
+
const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
|
|
323
330
|
|
|
324
|
-
|
|
331
|
+
fireEvent.drop(dropTarget, {
|
|
325
332
|
...mockEventProps,
|
|
326
333
|
dataTransfer: { files: mockFileList },
|
|
327
334
|
});
|