@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.
Files changed (326) hide show
  1. package/dist/components/Buttons/Button/Button.d.ts +3 -3
  2. package/dist/components/Buttons/Button/Button.d.ts.map +1 -1
  3. package/dist/components/Buttons/Button.model.d.ts +2 -1
  4. package/dist/components/Buttons/Button.model.d.ts.map +1 -1
  5. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -1
  6. package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts +0 -1
  7. package/dist/components/ConfirmDialog/ConfirmDialog.models.d.ts.map +1 -1
  8. package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts +2 -2
  9. package/dist/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.d.ts.map +1 -1
  10. package/dist/components/DynamicDataList/DynamicDataList.d.ts +1 -1
  11. package/dist/components/DynamicDataList/DynamicDataList.d.ts.map +1 -1
  12. package/dist/components/DynamicDataList/DynamicDataList.model.d.ts +0 -1
  13. package/dist/components/DynamicDataList/DynamicDataList.model.d.ts.map +1 -1
  14. package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts +2 -2
  15. package/dist/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.d.ts.map +1 -1
  16. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts +1 -1
  17. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.d.ts.map +1 -1
  18. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts +1 -1
  19. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.d.ts.map +1 -1
  20. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts +2 -0
  21. package/dist/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.d.ts.map +1 -1
  22. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts +2 -2
  23. package/dist/components/DynamicDataList/DynamicListHeader/DynamicListHeader.d.ts.map +1 -1
  24. package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts +2 -2
  25. package/dist/components/DynamicDataList/DynamicListRow/DynamicListRow.d.ts.map +1 -1
  26. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts +2 -2
  27. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.d.ts.map +1 -1
  28. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.d.ts.map +1 -1
  29. package/dist/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.d.ts.map +1 -1
  30. package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts +1 -1
  31. package/dist/components/DynamicDataList/helpers/useColumnDefs.d.ts.map +1 -1
  32. package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts +1 -1
  33. package/dist/components/DynamicDataList/helpers/useDataHandler.d.ts.map +1 -1
  34. package/dist/components/DynamicDataList/helpers/useRowAnimation.d.ts.map +1 -1
  35. package/dist/components/DynamicDataList/helpers/useRowEditing.d.ts.map +1 -1
  36. package/dist/components/EmptyStation/EmptyStation.d.ts.map +1 -1
  37. package/dist/components/Explorer/BulkEdit/FormFieldsConfigConverter.d.ts.map +1 -1
  38. package/dist/components/Explorer/BulkEdit/GenerateMutation.d.ts.map +1 -1
  39. package/dist/components/Explorer/BulkEdit/helpers/FieldWrapper.d.ts.map +1 -1
  40. package/dist/components/Explorer/BulkEdit/useBulkEdit.d.ts.map +1 -1
  41. package/dist/components/Explorer/Explorer.d.ts +1 -1
  42. package/dist/components/Explorer/Explorer.d.ts.map +1 -1
  43. package/dist/components/Explorer/Explorer.model.d.ts +0 -1
  44. package/dist/components/Explorer/Explorer.model.d.ts.map +1 -1
  45. package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts +1 -1
  46. package/dist/components/Explorer/NavigationExplorer/NavigationExplorer.d.ts.map +1 -1
  47. package/dist/components/Explorer/QuickEdit/useQuickEdit.d.ts.map +1 -1
  48. package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts +1 -1
  49. package/dist/components/Explorer/SelectionExplorer/SelectionExplorer.d.ts.map +1 -1
  50. package/dist/components/Explorer/helpers/useActions.d.ts +0 -1
  51. package/dist/components/Explorer/helpers/useActions.d.ts.map +1 -1
  52. package/dist/components/Explorer/helpers/useDataProvider.d.ts +0 -1
  53. package/dist/components/Explorer/helpers/useDataProvider.d.ts.map +1 -1
  54. package/dist/components/Explorer/helpers/useFilters.d.ts +0 -1
  55. package/dist/components/Explorer/helpers/useFilters.d.ts.map +1 -1
  56. package/dist/components/FieldSelection/FieldSelection.d.ts +1 -0
  57. package/dist/components/FieldSelection/FieldSelection.d.ts.map +1 -1
  58. package/dist/components/Filters/Filter/Filter.d.ts +2 -2
  59. package/dist/components/Filters/Filter/Filter.d.ts.map +1 -1
  60. package/dist/components/Filters/Filters.d.ts +2 -2
  61. package/dist/components/Filters/Filters.d.ts.map +1 -1
  62. package/dist/components/Filters/Filters.model.d.ts +0 -1
  63. package/dist/components/Filters/Filters.model.d.ts.map +1 -1
  64. package/dist/components/Filters/Validators/DateRangeFilterValidator.d.ts.map +1 -1
  65. package/dist/components/Filters/Validators/NumberRangeFilterValidator.d.ts.map +1 -1
  66. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts +0 -1
  67. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListControl.d.ts.map +1 -1
  68. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts +2 -2
  69. package/dist/components/FormElements/DynamicDataListControl/DynamicDataListField.d.ts.map +1 -1
  70. package/dist/components/FormElements/FormGroup/FormGroup.d.ts +12 -0
  71. package/dist/components/FormElements/FormGroup/FormGroup.d.ts.map +1 -0
  72. package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts +5 -0
  73. package/dist/components/FormElements/FormGroupTitle/FormGroupTitle.d.ts.map +1 -1
  74. package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts +0 -1
  75. package/dist/components/FormElements/FormikDebug/FormikDebug.d.ts.map +1 -1
  76. package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts +2 -2
  77. package/dist/components/FormElements/ReadOnly/ReadOnlyField.d.ts.map +1 -1
  78. package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts +2 -2
  79. package/dist/components/FormElements/ReadOnlyText/ReadOnlyTextField.d.ts.map +1 -1
  80. package/dist/components/FormElements/Tags/Tags.d.ts +2 -2
  81. package/dist/components/FormElements/Tags/Tags.d.ts.map +1 -1
  82. package/dist/components/FormElements/Tags/TagsField.d.ts +2 -2
  83. package/dist/components/FormElements/Tags/TagsField.d.ts.map +1 -1
  84. package/dist/components/FormElements/formStoryHelper.d.ts.map +1 -1
  85. package/dist/components/FormElements/index.d.ts +1 -0
  86. package/dist/components/FormElements/index.d.ts.map +1 -1
  87. package/dist/components/FormElements/useFormikError.d.ts.map +1 -1
  88. package/dist/components/FormStation/Create/Create.d.ts +2 -2
  89. package/dist/components/FormStation/Create/Create.d.ts.map +1 -1
  90. package/dist/components/FormStation/Details/Details.d.ts +2 -2
  91. package/dist/components/FormStation/Details/Details.d.ts.map +1 -1
  92. package/dist/components/FormStation/FormStation.d.ts +2 -2
  93. package/dist/components/FormStation/FormStation.d.ts.map +1 -1
  94. package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts +1 -1
  95. package/dist/components/FormStation/FormStationActions/FormStationActions.d.ts.map +1 -1
  96. package/dist/components/FormStation/FormStationHeader/FormStationHeader.d.ts.map +1 -1
  97. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts +0 -1
  98. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts.map +1 -1
  99. package/dist/components/FormStation/SaveOnNavigate/handleNavigationAttempt.d.ts.map +1 -1
  100. package/dist/components/FormStation/helpers/useTitle.d.ts.map +1 -1
  101. package/dist/components/InfoPanel/hooks/useCollapse.d.ts +0 -1
  102. package/dist/components/InfoPanel/hooks/useCollapse.d.ts.map +1 -1
  103. package/dist/components/InlineMenu/InlineMenu.d.ts.map +1 -1
  104. package/dist/components/List/List.d.ts +2 -2
  105. package/dist/components/List/List.d.ts.map +1 -1
  106. package/dist/components/List/List.model.d.ts +0 -1
  107. package/dist/components/List/List.model.d.ts.map +1 -1
  108. package/dist/components/List/List.stories.helper.d.ts.map +1 -1
  109. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts +2 -2
  110. package/dist/components/List/ListHeader/ColumnLabel/ColumnLabel.d.ts.map +1 -1
  111. package/dist/components/List/ListHeader/ListHeader.d.ts +2 -2
  112. package/dist/components/List/ListHeader/ListHeader.d.ts.map +1 -1
  113. package/dist/components/List/ListRow/ListRow.d.ts +2 -4
  114. package/dist/components/List/ListRow/ListRow.d.ts.map +1 -1
  115. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts +0 -1
  116. package/dist/components/List/ListRow/ListRowCell/ListRowCell.d.ts.map +1 -1
  117. package/dist/components/List/ListRow/ListRowCell/renderData.d.ts.map +1 -1
  118. package/dist/components/List/ListRow/ListRowLoader.d.ts +2 -2
  119. package/dist/components/List/ListRow/ListRowLoader.d.ts.map +1 -1
  120. package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts +0 -1
  121. package/dist/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.d.ts.map +1 -1
  122. package/dist/components/List/ListRow/Renderers/DateRenderer/DateRenderer.d.ts.map +1 -1
  123. package/dist/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.d.ts.map +1 -1
  124. package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts +1 -1
  125. package/dist/components/List/ListRow/Renderers/StateRenderer/StateRenderer.d.ts.map +1 -1
  126. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts +0 -1
  127. package/dist/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.d.ts.map +1 -1
  128. package/dist/components/List/ListRow/Renderers/TimestampRenderer/TimestampRenderer.d.ts.map +1 -1
  129. package/dist/components/List/ListRowRenderer/ListRowRenderer.d.ts.map +1 -1
  130. package/dist/components/List/helpers.d.ts.map +1 -1
  131. package/dist/components/List/useColumnsSize.d.ts +0 -2
  132. package/dist/components/List/useColumnsSize.d.ts.map +1 -1
  133. package/dist/components/Loaders/skeletons.d.ts +0 -1
  134. package/dist/components/Loaders/skeletons.d.ts.map +1 -1
  135. package/dist/components/Modal/useModal.d.ts.map +1 -1
  136. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts +0 -1
  137. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroupsContext.d.ts.map +1 -1
  138. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts +1 -2
  139. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts.map +1 -1
  140. package/dist/components/Tabs/TabList/ScrollContainer/useScroll.d.ts.map +1 -1
  141. package/dist/components/Utils/Postgraphile/FilterTransformer.d.ts.map +1 -1
  142. package/dist/components/Utils/Postgraphile/SortTransformer.d.ts.map +1 -1
  143. package/dist/components/Utils/State/GlobalState.d.ts.map +1 -1
  144. package/dist/helpers/idleCallbackHelpers.d.ts +0 -1
  145. package/dist/helpers/idleCallbackHelpers.d.ts.map +1 -1
  146. package/dist/helpers/storybook.d.ts.map +1 -1
  147. package/dist/helpers/testing.d.ts +6 -21
  148. package/dist/helpers/testing.d.ts.map +1 -1
  149. package/dist/helpers/utils.d.ts +1 -2
  150. package/dist/helpers/utils.d.ts.map +1 -1
  151. package/dist/hooks/useDEBUGDetectChanges/useDEBUGDetectChanges.d.ts.map +1 -1
  152. package/dist/hooks/useDEBUGRenderCount/useDEBUGRenderCount.d.ts.map +1 -1
  153. package/dist/hooks/useDebounce/useDebounce.d.ts +1 -2
  154. package/dist/hooks/useDebounce/useDebounce.d.ts.map +1 -1
  155. package/dist/hooks/useExpand/useExpand.d.ts.map +1 -1
  156. package/dist/hooks/useReactRouterPause/utils.d.ts.map +1 -1
  157. package/dist/hooks/useResize/useResize.d.ts +0 -1
  158. package/dist/hooks/useResize/useResize.d.ts.map +1 -1
  159. package/dist/hooks/useTabTitle/useTabTitle.d.ts.map +1 -1
  160. package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts +1 -1
  161. package/dist/hooks/useValueOrOnDemand/useValueOrOnDemand.d.ts.map +1 -1
  162. package/dist/index.es.js +4 -4
  163. package/dist/index.es.js.map +1 -1
  164. package/dist/index.js +4 -4
  165. package/dist/index.js.map +1 -1
  166. package/dist/utils/ErrorMapper/ErrorMapper.d.ts.map +1 -1
  167. package/dist/utils/ErrorTypeToStationError.d.ts.map +1 -1
  168. package/dist/utils/ToolTipHelpers.d.ts.map +1 -1
  169. package/dist/validators/timestamp/timestamp.d.ts.map +1 -1
  170. package/package.json +11 -10
  171. package/src/components/Accordion/Accordion.spec.tsx +1 -1
  172. package/src/components/Accordion/AccordionItem/AccordionItem.spec.tsx +2 -2
  173. package/src/components/Actions/Action/Action.spec.tsx +189 -228
  174. package/src/components/Actions/Actions.spec.tsx +42 -32
  175. package/src/components/Buttons/Button/Button.spec.tsx +110 -115
  176. package/src/components/Buttons/Button/Button.tsx +4 -0
  177. package/src/components/Buttons/Button.model.ts +2 -0
  178. package/src/components/Buttons/CompositeButton/CompositeButton.spec.tsx +122 -121
  179. package/src/components/Buttons/TextButton/TextButton.spec.tsx +85 -90
  180. package/src/components/ConfirmDialog/ConfirmDialog.spec.tsx +75 -79
  181. package/src/components/DateTime/DatePicker/DatePicker.spec.tsx +8 -7
  182. package/src/components/DateTime/DateTimePicker.spec.tsx +43 -62
  183. package/src/components/DateTime/TimePicker/ScrollColumn/ScrollColumn.spec.tsx +19 -16
  184. package/src/components/DateTime/TimePicker/TimePicker.spec.tsx +44 -73
  185. package/src/components/DynamicDataList/DynamicDataList.spec.tsx +112 -107
  186. package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.spec.tsx +91 -144
  187. package/src/components/DynamicDataList/DynamicListDataEntry/DynamicListDataEntry.tsx +38 -20
  188. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.spec.tsx +18 -15
  189. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createInputRenderer/createInputRenderer.tsx +2 -0
  190. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.spec.tsx +53 -28
  191. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/createSelectRenderer/createSelectRenderer.tsx +2 -0
  192. package/src/components/DynamicDataList/DynamicListDataEntry/Renderers/renderers.model.ts +2 -0
  193. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.scss +19 -5
  194. package/src/components/DynamicDataList/DynamicListHeader/DynamicListHeader.spec.tsx +72 -76
  195. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.scss +9 -2
  196. package/src/components/DynamicDataList/DynamicListRow/DynamicListRow.spec.tsx +86 -113
  197. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.actions.spec.ts +1 -0
  198. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.init.spec.ts +1 -0
  199. package/src/components/DynamicDataList/helpers/DynamicListReducer/DynamicListReducer.spec.ts +6 -5
  200. package/src/components/EmptyStation/EmptyStation.spec.tsx +41 -37
  201. package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.spec.tsx +29 -28
  202. package/src/components/Explorer/BulkEdit/FormFieldsConfigConverter.tsx +1 -0
  203. package/src/components/Explorer/BulkEdit/GenerateMutation.spec.tsx +1 -0
  204. package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.scss +1 -0
  205. package/src/components/Explorer/BulkEdit/helpers/FieldWrapper.tsx +1 -0
  206. package/src/components/Explorer/Explorer.spec.tsx +513 -825
  207. package/src/components/Explorer/NavigationExplorer/NavigationExplorer.spec.tsx +90 -131
  208. package/src/components/Explorer/QuickEdit/useQuickEdit.spec.tsx +36 -56
  209. package/src/components/Explorer/SelectionExplorer/SelectionExplorer.spec.tsx +59 -65
  210. package/src/components/Explorer/helpers/InMemoryDataProvider.spec.ts +1 -0
  211. package/src/components/Explorer/helpers/useFilters.spec.tsx +13 -11
  212. package/src/components/Explorer/helpers/useStationMessage.spec.tsx +4 -3
  213. package/src/components/Explorer/helpers/useSubtitle.spec.tsx +1 -0
  214. package/src/components/FieldSelection/FieldSelection.scss +1 -1
  215. package/src/components/FieldSelection/FieldSelection.spec.tsx +1 -1
  216. package/src/components/FieldSelection/FieldSelection.tsx +6 -2
  217. package/src/components/Filters/Filter/Filter.spec.tsx +78 -47
  218. package/src/components/Filters/Filters.spec.tsx +56 -58
  219. package/src/components/Filters/SelectionTypes/DateTimeFilter/DateTimeFilter.spec.tsx +45 -46
  220. package/src/components/Filters/SelectionTypes/FreeTextFilter/FreeTextFilter.spec.tsx +23 -23
  221. package/src/components/Filters/SelectionTypes/NumericTextFilter/NumericTextFilter.spec.tsx +37 -28
  222. package/src/components/Filters/SelectionTypes/OptionsFilter/OptionsFilter.spec.tsx +14 -12
  223. package/src/components/Filters/Validators/DateRangeFilterValidator.spec.ts +1 -0
  224. package/src/components/Filters/Validators/NumberRangeFilterValidator.spec.ts +1 -0
  225. package/src/components/FormElements/BooleanView/BooleanViewField.spec.tsx +34 -31
  226. package/src/components/FormElements/Checkbox/Checkbox.spec.tsx +129 -128
  227. package/src/components/FormElements/CustomTags/CustomTags.spec.tsx +312 -446
  228. package/src/components/FormElements/DateTimeField/DateTimeText.spec.tsx +61 -52
  229. package/src/components/FormElements/DynamicDataListControl/DynamicDataListControl.spec.tsx +19 -24
  230. package/src/components/FormElements/FileUploadControl/FileUploadControl.spec.tsx +67 -60
  231. package/src/components/FormElements/FormElementContainer/FormElementContainer.spec.tsx +13 -12
  232. package/src/components/FormElements/FormGroup/FormGroup.scss +62 -0
  233. package/src/components/FormElements/FormGroup/FormGroup.stories.tsx +25 -0
  234. package/src/components/FormElements/FormGroup/FormGroup.tsx +60 -0
  235. package/src/components/FormElements/FormGroupTitle/FormGroupTitle.tsx +5 -0
  236. package/src/components/FormElements/Link/LinkField.spec.tsx +24 -23
  237. package/src/components/FormElements/MaskedSingleLineText/MaskedSingleLineText.spec.tsx +4 -3
  238. package/src/components/FormElements/Radio/Radio.spec.tsx +170 -172
  239. package/src/components/FormElements/ReadOnly/ReadOnlyField.spec.tsx +23 -22
  240. package/src/components/FormElements/ReadOnlyText/ReadOnlyTextField.spec.tsx +23 -22
  241. package/src/components/FormElements/Select/Select.spec.tsx +30 -29
  242. package/src/components/FormElements/SingleLineText/SingleLineText.spec.tsx +46 -42
  243. package/src/components/FormElements/Tags/Tags.spec.tsx +59 -53
  244. package/src/components/FormElements/TextArea/TextArea.spec.tsx +44 -29
  245. package/src/components/FormElements/ToggleButton/ToggleButton.spec.tsx +188 -165
  246. package/src/components/FormElements/index.ts +1 -0
  247. package/src/components/FormStation/FormStation.spec.tsx +273 -198
  248. package/src/components/FormStation/FormStation.stories.tsx +15 -13
  249. package/src/components/FormStation/FormStationHeader/FormStationHeader.tsx +5 -3
  250. package/src/components/FormStation/SaveOnNavigate/SaveOnNavigate.spec.tsx +23 -20
  251. package/src/components/FormStation/SaveOnNavigate/handleNavigationAttempt.spec.ts +25 -24
  252. package/src/components/FormStation/helpers/useTitle.spec.ts +9 -7
  253. package/src/components/Hub/Hub.spec.tsx +13 -10
  254. package/src/components/Hub/Tile/Tile.spec.tsx +29 -25
  255. package/src/components/Icons/Icons.spec.tsx +25 -27
  256. package/src/components/Icons/Icons.tsx +1 -1
  257. package/src/components/InfoPanel/InfoImage/InfoImage.spec.tsx +4 -3
  258. package/src/components/InfoPanel/InfoPanel.scss +2 -0
  259. package/src/components/InfoPanel/InfoPanel.spec.tsx +4 -3
  260. package/src/components/InfoPanel/Paragraph/Paragraph.spec.tsx +4 -3
  261. package/src/components/InfoPanel/Section/Section.spec.tsx +39 -46
  262. package/src/components/InfoPanel/hooks/useCollapse.ts +9 -7
  263. package/src/components/InlineMenu/InlineMenu.spec.tsx +24 -23
  264. package/src/components/InlineMenu/InlineMenu.tsx +3 -0
  265. package/src/components/LandingPageHeader/LandingPageHeader.spec.tsx +9 -8
  266. package/src/components/LandingPageTiles/LandingPageTiles.spec.tsx +29 -28
  267. package/src/components/LandingPageTiles/TileLarge/TileLarge.spec.tsx +68 -61
  268. package/src/components/LandingPageTiles/TileSmall/TileSmall.spec.tsx +50 -32
  269. package/src/components/List/List.spec.tsx +337 -241
  270. package/src/components/List/ListCheckBox/ListCheckBox.spec.tsx +54 -48
  271. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.scss +4 -1
  272. package/src/components/List/ListHeader/ColumnLabel/ColumnLabel.spec.tsx +46 -43
  273. package/src/components/List/ListHeader/ListHeader.spec.tsx +82 -66
  274. package/src/components/List/ListRow/ListRow.spec.tsx +125 -130
  275. package/src/components/List/ListRow/ListRowCell/ListRowCell.spec.tsx +57 -100
  276. package/src/components/List/ListRow/ListRowLoader.spec.tsx +16 -12
  277. package/src/components/List/ListRow/Renderers/BooleanDotRenderer/BooleanDotRenderer.spec.tsx +12 -9
  278. package/src/components/List/ListRow/Renderers/ExternalLinkRenderer/ExternalLinkRenderer.spec.tsx +40 -35
  279. package/src/components/List/ListRow/Renderers/StateRenderer/StateRenderer.spec.tsx +14 -17
  280. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.spec.tsx +18 -17
  281. package/src/components/List/ListRow/Renderers/TagsRenderer/TagsRenderer.tsx +2 -2
  282. package/src/components/List/ListRowRenderer/ListRowRenderer.spec.tsx +82 -68
  283. package/src/components/Loaders/ImageLoader/ImageLoader.spec.tsx +88 -96
  284. package/src/components/Loaders/Loader/Loader.spec.tsx +51 -24
  285. package/src/components/Message/Message.spec.tsx +56 -44
  286. package/src/components/MessageBar/MessageBar.scss +3 -0
  287. package/src/components/MessageBar/MessageBar.spec.tsx +88 -85
  288. package/src/components/Modal/Modal.spec.tsx +92 -87
  289. package/src/components/NavigationAwareStation/NavigationAwareStation.spec.tsx +23 -22
  290. package/src/components/PageHeader/PageHeader.spec.tsx +22 -21
  291. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.spec.tsx +275 -193
  292. package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.spec.tsx +39 -34
  293. package/src/components/ProgressBar/ProgressBar.spec.tsx +18 -15
  294. package/src/components/Utils/Postgraphile/CreateConnectionRenderer.spec.ts +1 -0
  295. package/src/components/Utils/Postgraphile/FilterTransformer.spec.ts +1 -0
  296. package/src/components/Utils/Postgraphile/RangeTransformer.spec.ts +1 -0
  297. package/src/components/Utils/Postgraphile/SortTransformer.spec.ts +1 -0
  298. package/src/components/Utils/Postgraphile/UpdateGQLFragmentGenerator.spec.ts +1 -0
  299. package/src/components/Utils/Postgraphile/generateArrayMutations.spec.ts +1 -0
  300. package/src/components/Utils/Postgraphile/getArrayDiff.spec.ts +1 -0
  301. package/src/components/Utils/Postgraphile/getFormDiff.spec.ts +1 -0
  302. package/src/components/Utils/State/GlobalState.spec.ts +4 -2
  303. package/src/components/Utils/Transformers/Boolean.spec.ts +1 -0
  304. package/src/components/Utils/Transformers/DateTime.spec.ts +2 -1
  305. package/src/components/Utils/Transformers/FileSize.spec.ts +1 -0
  306. package/src/components/Utils/Transformers/SortArray.spec.ts +1 -0
  307. package/src/components/Utils/Transformers/Timestamp.spec.ts +3 -2
  308. package/src/components/Utils/Transformers/TitleCase.spec.ts +1 -0
  309. package/src/components/VisualElements/ImgElement.spec.tsx +34 -35
  310. package/src/components/VisualElements/SvgElement.spec.tsx +72 -69
  311. package/src/helpers/testing.ts +9 -76
  312. package/src/hooks/useBusy/useBusy.spec.tsx +8 -9
  313. package/src/hooks/useClickOutside/useClickOutside.spec.tsx +19 -51
  314. package/src/hooks/useDebounce/useDebounce.spec.tsx +31 -26
  315. package/src/hooks/useExpand/useExpand.spec.tsx +30 -21
  316. package/src/hooks/useTabTitle/useTabTitle.spec.tsx +18 -18
  317. package/src/hooks/useValueOrOnDemand/useValueOrOnDemand.spec.tsx +31 -52
  318. package/src/styles/variables.scss +3 -1
  319. package/src/utils/ErrorMapper/ApolloClient/ApolloErrorMapper.spec.ts +1 -0
  320. package/src/utils/ErrorMapper/ErrorMapper.spec.ts +1 -0
  321. package/src/utils/ErrorTypeToStationError.spec.tsx +12 -11
  322. package/src/utils/ToolTipHelpers.spec.ts +1 -0
  323. package/src/validators/timestamp/timestamp.spec.ts +1 -0
  324. package/dist/helpers/hooksTestingHelpers.d.ts +0 -7
  325. package/dist/helpers/hooksTestingHelpers.d.ts.map +0 -1
  326. package/src/helpers/hooksTestingHelpers.tsx +0 -22
@@ -1,87 +1,89 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render } from '@testing-library/react';
2
2
  import { DateTime, Settings } from 'luxon';
3
3
  import React from 'react';
4
- import { Button } from '../../Buttons';
4
+ import { describe, expect, it, vi } from 'vitest';
5
5
  import { DateTimeText } from './DateTimeText';
6
6
 
7
7
  // Mock dependencies
8
- jest.mock('../../../hooks', () => ({
9
- useClickOutside: jest.fn(),
8
+ vi.mock('../../../hooks', () => ({
9
+ useClickOutside: vi.fn(),
10
10
  }));
11
11
 
12
- jest.mock('react-popper', () => ({
13
- usePopper: jest.fn(() => ({
12
+ vi.mock('react-popper', () => ({
13
+ usePopper: vi.fn(() => ({
14
14
  styles: { popper: {} },
15
15
  attributes: { popper: {} },
16
16
  })),
17
17
  }));
18
18
 
19
- jest.mock('react-dom', () => ({
20
- ...jest.requireActual('react-dom'),
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 wrapper = shallow(<DateTimeText name={'test-name'} />);
27
+ const { container } = render(<DateTimeText name={'test-name'} />);
28
28
 
29
- expect(wrapper).toBeTruthy();
29
+ expect(container).toBeTruthy();
30
30
  });
31
31
 
32
32
  it('displays a label', () => {
33
33
  const mockLabel = 'mockLabel';
34
- const wrapper = shallow(
34
+ const { container } = render(
35
35
  <DateTimeText name={'test-name'} label={mockLabel} />,
36
36
  );
37
37
 
38
- const label = wrapper.dive().find('label');
38
+ const label = container.querySelector('label');
39
39
 
40
- expect(label.text()).toBe(mockLabel);
40
+ expect(label?.textContent).toBe(mockLabel);
41
41
  });
42
42
 
43
43
  it(`Button component should have type of 'button'`, () => {
44
- const wrapper = mount(<DateTimeText name={'test-name'} />);
44
+ const { container } = render(<DateTimeText name={'test-name'} />);
45
45
 
46
- const button = wrapper.find(Button);
46
+ const button = container.querySelector('button');
47
47
 
48
- expect(button.prop('type')).toBe('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 = jest.fn();
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 wrapper = shallow(
57
+ const { container } = render(
58
58
  <DateTimeText name={'test-name'} value={mockValue} onChange={spy} />,
59
59
  );
60
60
 
61
- const input = wrapper.find('input');
61
+ const input = container.querySelector('input') as HTMLInputElement;
62
62
 
63
- expect(input.prop('value')).toEqual(
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
- // @ts-expect-error intentional null value
70
- const wrapper = shallow(<DateTimeText name={'test-name'} value={null} />);
69
+ const { container } = render(
70
+ // @ts-expect-error intentional null value
71
+ <DateTimeText name={'test-name'} value={null} />,
72
+ );
71
73
 
72
- const input = wrapper.find('input');
74
+ const input = container.querySelector('input') as HTMLInputElement;
73
75
 
74
- expect(input.prop('value')).toBe('');
76
+ expect(input.value).toBe('');
75
77
  });
76
78
 
77
79
  it(`defaults to an empty string if prop value is 'undefined'`, () => {
78
- const wrapper = shallow(
80
+ const { container } = render(
79
81
  <DateTimeText name={'test-name'} value={undefined} />,
80
82
  );
81
83
 
82
- const input = wrapper.find('input');
84
+ const input = container.querySelector('input') as HTMLInputElement;
83
85
 
84
- expect(input.prop('value')).toBe('');
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 wrapper = shallow(<DateTimeText name={'test-name'} {...mockProps} />);
100
+ const { container } = render(
101
+ <DateTimeText name={'test-name'} {...mockProps} />,
102
+ );
99
103
 
100
- const input = wrapper.find('input');
101
- const inputProps = input.props();
102
- expect(inputProps).toEqual(expect.objectContaining(mockProps));
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 wrapper = shallow(
114
+ const { container } = render(
108
115
  <DateTimeText name={'test-name'} error={mockErrorMessage} />,
109
116
  );
110
117
 
111
- const errorMsg = wrapper.dive().find('small');
112
- const errorStyling = wrapper.find('input');
118
+ const errorMsg = container.querySelector('small');
119
+ const errorStyling = container.querySelector('input');
113
120
 
114
- expect(errorMsg.text()).toBe(mockErrorMessage);
115
- expect(errorStyling.hasClass('hasError')).toBe(true);
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 wrapper = mount(<DateTimeText name={'test-name'} value={''} />);
126
+ const { container } = render(
127
+ <DateTimeText name={'test-name'} value={''} />,
128
+ );
120
129
 
121
- const button = wrapper.find('button');
130
+ const button = container.querySelector('button') as HTMLButtonElement;
122
131
 
123
- button.simulate('click');
132
+ fireEvent.click(button);
124
133
 
125
- const datePicker = wrapper.find('.picker');
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 = jest.fn();
140
+ const spy = vi.fn();
132
141
 
133
- const wrapper = shallow(
142
+ const { container } = render(
134
143
  <DateTimeText name={'test-name'} value={''} onChange={spy} />,
135
144
  );
136
145
 
137
- const input = wrapper.find('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
- input.simulate('blur', {
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 = jest.fn();
161
+ const spy = vi.fn();
153
162
 
154
- const wrapper = shallow(
163
+ const { container } = render(
155
164
  <DateTimeText name={'test-name'} value={''} onChange={spy} />,
156
165
  );
157
166
 
158
- const input = wrapper.find('input');
167
+ const input = container.querySelector('input') as HTMLInputElement;
159
168
 
160
- input.simulate('blur', {
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 = jest.fn();
180
+ const spy = vi.fn();
172
181
 
173
- const wrapper = shallow(
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 = wrapper.find('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
- input.simulate('blur', {
200
+ fireEvent.blur(input, {
192
201
  target: {
193
202
  value: time.toLocaleString(DateTime.DATE_SHORT),
194
203
  },
@@ -1,14 +1,14 @@
1
- import { shallow } from 'enzyme';
1
+ import { render } from '@testing-library/react';
2
2
  import React from 'react';
3
3
  import { act } from 'react-dom/test-utils';
4
- import { DynamicDataList } from '../../DynamicDataList/DynamicDataList';
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 = jest.fn();
9
- const setFieldValueSpy = jest.fn();
8
+ const setFieldTouchedSpy = vi.fn();
9
+ const setFieldValueSpy = vi.fn();
10
10
 
11
- jest.mock('formik', () => ({
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 wrapper = shallow(<DynamicDataListControl {...defaultProps} />);
53
+ const { container } = render(<DynamicDataListControl {...defaultProps} />);
54
54
 
55
- expect(wrapper).toBeTruthy();
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 wrapper = shallow(
60
+ const { container } = render(
61
61
  <DynamicDataListControl {...defaultProps} label={mockLabel} />,
62
62
  );
63
63
 
64
- const label = wrapper.dive().find('label');
64
+ const label = container.querySelector('label');
65
65
 
66
- expect(label.text()).toBe(mockLabel);
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 wrapper = shallow(<DynamicDataListControl {...defaultProps} />);
70
+ const { container } = render(<DynamicDataListControl {...defaultProps} />);
71
71
 
72
- const label = wrapper.dive().find('label');
72
+ const label = container.querySelector('label');
73
73
 
74
- expect(label.text()).toBe('');
74
+ expect(label?.textContent).toBe('');
75
75
  });
76
76
 
77
77
  it(`renders the 'DynamicDataList' component`, () => {
78
- const wrapper = shallow(<DynamicDataListControl {...defaultProps} />);
78
+ const { container } = render(<DynamicDataListControl {...defaultProps} />);
79
79
 
80
- const ddl = wrapper.find(DynamicDataList);
80
+ const ddl = container.querySelector('[data-test-id="dynamic-data-list"]');
81
81
 
82
- expect(ddl.exists()).toBe(true);
82
+ expect(ddl).toBeInTheDocument();
83
83
  });
84
84
 
85
85
  it(`emits 'onChange'`, () => {
86
- const onChangeSpy = jest.fn();
86
+ const onChangeSpy = vi.fn();
87
87
  const mockList = [{ prop: 1 }];
88
- const wrapper = shallow(
89
- <DynamicDataListControl {...defaultProps} onChange={onChangeSpy} />,
90
- );
91
88
 
92
- const ddl = wrapper.find(DynamicDataList);
89
+ render(<DynamicDataListControl {...defaultProps} onChange={onChangeSpy} />);
93
90
 
94
91
  act(() => {
95
- ddl.prop('onChange')?.(mockList);
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 { mount, shallow } from 'enzyme';
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 wrapper = shallow(
22
+ const { container } = render(
22
23
  <FileUploadControl name={'test-name'} onFileSelected={noop} />,
23
24
  );
24
25
 
25
- expect(wrapper).toBeTruthy();
26
- expect(wrapper.find('input[type="file"]').exists()).toBeTruthy();
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 wrapper = shallow(
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 = wrapper.dive().find('label');
40
+ const label = container.querySelector('label');
40
41
 
41
- expect(label.first().text()).toBe(mockLabel);
42
+ expect(label?.textContent).toBe(mockLabel);
42
43
  });
43
44
 
44
45
  it('should not display the progress bar by default', () => {
45
- const wrapper = shallow(
46
+ const { container } = render(
46
47
  <FileUploadControl name={'test-name'} onFileSelected={noop} />,
47
48
  );
48
49
 
49
- const progressBar = wrapper.find('.progressbar');
50
+ const progressBar = container.querySelector('.progressbar') as HTMLElement;
50
51
 
51
- expect(progressBar.props().style?.display).toBe('none');
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 = jest.fn();
56
+ const spy = vi.fn();
56
57
 
57
- const wrapper = shallow(
58
+ const { container } = render(
58
59
  <FileUploadControl name={'test-name'} onFileSelected={spy} />,
59
60
  );
60
61
 
61
- const fileInput = wrapper.find('input[type="file"]');
62
+ const fileInput = container.querySelector(
63
+ 'input[type="file"]',
64
+ ) as HTMLInputElement;
62
65
 
63
- fileInput.simulate('change', { target: { files: mockFileList } });
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 wrapper = shallow(
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
- wrapper.update();
91
+ const filename = container.querySelector('.filename') as HTMLInputElement;
89
92
 
90
- const filename = wrapper.find('.filename');
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 wrapper = shallow(
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 = wrapper.find('input[type="file"]');
106
+ const fileInput = container.querySelector(
107
+ 'input[type="file"]',
108
+ ) as HTMLInputElement;
106
109
 
107
- fileInput.simulate('change', { target: { files: mockFileList } });
110
+ fireEvent.change(fileInput, { target: { files: mockFileList } });
108
111
 
109
- const progressBar = wrapper.find('.progressbar');
112
+ const progressBar = container.querySelector('.progressbar') as HTMLElement;
110
113
 
111
- expect(progressBar.props().style?.display).toBe('block');
114
+ expect(progressBar.style.display).toBe('block');
112
115
  });
113
116
 
114
117
  it('hides the progess bar when onUploadCompleted is called', () => {
115
- const wrapper = shallow(
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 = wrapper.find('input[type="file"]');
128
+ const fileInput = container.querySelector(
129
+ 'input[type="file"]',
130
+ ) as HTMLInputElement;
126
131
 
127
- fileInput.simulate('change', { target: { files: mockFileList } });
132
+ fireEvent.change(fileInput, { target: { files: mockFileList } });
128
133
 
129
- const progressBar = wrapper.find('.progressbar');
134
+ const progressBar = container.querySelector('.progressbar') as HTMLElement;
130
135
 
131
- expect(progressBar.props().style?.display).toBe('none');
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 = jest.fn((event, cb) => {
142
+ document.addEventListener = vi.fn((event, cb) => {
138
143
  map[event] = cb;
139
144
  });
140
145
 
141
- const wrapper = mount(
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(wrapper.find('.dropTarget').exists()).toBeFalsy();
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
- wrapper.update();
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 = jest.fn();
169
+ const spy = vi.fn();
167
170
 
168
171
  const map: { [key: string]: any } = {};
169
172
 
170
- document.addEventListener = jest.fn((event, cb) => {
173
+ document.addEventListener = vi.fn((event, cb) => {
171
174
  map[event] = cb;
172
175
  });
173
176
 
174
- const wrapper = mount(
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(wrapper.find('.dropTarget').exists()).toBeFalsy();
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
- wrapper.update();
196
+ const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
194
197
 
195
- wrapper.find('.dropTarget').simulate('drop', {
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 = jest.fn();
210
+ const spy = vi.fn();
208
211
 
209
- const wrapper = mount(
212
+ const { container } = render(
210
213
  <FileUploadControl name={'test-name'} onFileSelected={spy} />,
211
214
  );
212
215
 
213
- const fileInput = wrapper.find('input[type="file"]');
216
+ const fileInput = container.querySelector(
217
+ 'input[type="file"]',
218
+ ) as HTMLInputElement;
214
219
 
215
220
  // Simulate first file upload
216
- fileInput.simulate('change', { target: { files: mockFileList } });
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
- fileInput.simulate('change', { target: { files: mockFileList } });
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 wrapper = shallow(
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 = wrapper.find('input[type="file"]');
266
+ const input = container.querySelector(
267
+ 'input[type="file"]',
268
+ ) as HTMLInputElement;
262
269
 
263
- expect(wrapper).toBeTruthy();
264
- expect(input.prop('accept')).toBe(mockTypes);
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 = jest.fn();
275
+ const spy = vi.fn();
269
276
  const map: { [key: string]: any } = {};
270
- document.addEventListener = jest.fn((event, cb) => {
277
+ document.addEventListener = vi.fn((event, cb) => {
271
278
  map[event] = cb;
272
279
  });
273
- const wrapper = mount(
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
- wrapper.update();
295
+ const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
289
296
 
290
- wrapper.find('.dropTarget').simulate('drop', {
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 = jest.fn();
309
+ const spy = vi.fn();
303
310
  const map: { [key: string]: any } = {};
304
- document.addEventListener = jest.fn((event, cb) => {
311
+ document.addEventListener = vi.fn((event, cb) => {
305
312
  map[event] = cb;
306
313
  });
307
- const wrapper = mount(
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
- wrapper.update();
329
+ const dropTarget = container.querySelector('.dropTarget') as HTMLElement;
323
330
 
324
- wrapper.find('.dropTarget').simulate('drop', {
331
+ fireEvent.drop(dropTarget, {
325
332
  ...mockEventProps,
326
333
  dataTransfer: { files: mockFileList },
327
334
  });