@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,6 +1,7 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render, screen } from '@testing-library/react';
2
2
  import React from 'react';
3
- import { IconName, Icons } from '../Icons';
3
+ import { describe, expect, it, vi } from 'vitest';
4
+ import { IconName } from '../Icons';
4
5
  import { MessageBar, MessageBarProps } from './MessageBar';
5
6
 
6
7
  const defaultProps: MessageBarProps = {
@@ -9,17 +10,17 @@ const defaultProps: MessageBarProps = {
9
10
 
10
11
  describe('MessageBar', () => {
11
12
  it('renders the component without crashing', () => {
12
- const wrapper = shallow(<MessageBar {...defaultProps} />);
13
+ const { container } = render(<MessageBar {...defaultProps} />);
13
14
 
14
- expect(wrapper).toBeTruthy();
15
+ expect(container).toBeTruthy();
15
16
  });
16
17
 
17
18
  it(`renders a message`, () => {
18
- const wrapper = mount(<MessageBar {...defaultProps} />);
19
+ render(<MessageBar {...defaultProps} />);
19
20
 
20
- const message = wrapper.find('p');
21
+ const message = screen.getByTestId('message-title');
21
22
 
22
- expect(message.text()).toBe(defaultProps.title);
23
+ expect(message.textContent).toBe(defaultProps.title);
23
24
  });
24
25
 
25
26
  describe('message types', () => {
@@ -29,174 +30,176 @@ describe('MessageBar', () => {
29
30
  ['info', IconName.Info, 'hasInfo'],
30
31
  ['warning', IconName.Warning, 'hasWarning'],
31
32
  ])('message type styling', (type, icon, className) => {
32
- const wrapper = mount(
33
+ const { container } = render(
33
34
  <MessageBar {...defaultProps} type={type as MessageBarProps['type']} />,
34
35
  );
35
36
 
36
- const icons = wrapper.find(Icons);
37
- const messageIcon = icons.first();
38
- const body = wrapper.find('.container');
37
+ const messageElement = screen.getByTestId('message-bar');
38
+ const messageContainer = container.querySelector('.message-container');
39
39
 
40
- expect(icons.exists()).toBe(true);
41
- expect(messageIcon.prop('icon')).toBe(icon);
42
- expect(body.hasClass(className)).toBe(true);
40
+ expect(messageElement.getAttribute('data-test-type')).toBe(
41
+ type || 'error',
42
+ );
43
+ expect(messageContainer?.classList.contains(className)).toBe(true);
43
44
  });
44
45
  });
45
46
 
46
47
  describe('close button', () => {
47
48
  it('close button is not rendered by default', () => {
48
- const wrapper = mount(<MessageBar {...defaultProps} />);
49
+ const { container } = render(<MessageBar {...defaultProps} />);
49
50
 
50
- const x = wrapper.find('.xIcon');
51
+ const x = container.querySelector('.xIcon');
51
52
 
52
- expect(x.exists()).toBe(false);
53
+ expect(x).toBeNull();
53
54
  });
54
55
 
55
56
  it(`displays a close button and raises 'onClose' when set`, () => {
56
- const spy = jest.fn();
57
- const wrapper = mount(<MessageBar {...defaultProps} onClose={spy} />);
57
+ const spy = vi.fn();
58
+ const { container } = render(
59
+ <MessageBar {...defaultProps} onClose={spy} />,
60
+ );
58
61
 
59
- const xIcon = wrapper.find('.xIcon');
60
- const closeIcon = wrapper.find('.closeIcon');
62
+ const xIcon = container.querySelector('.xIcon');
63
+ const closeIcon = screen.getByTestId('message-bar-close-button');
61
64
 
62
- closeIcon.simulate('click');
65
+ fireEvent.click(closeIcon);
63
66
 
64
- expect(xIcon.exists()).toBe(true);
67
+ expect(xIcon).toBeTruthy();
65
68
  expect(spy).toHaveBeenCalledTimes(1);
66
69
  });
67
70
  });
68
71
 
69
72
  describe('retry button', () => {
70
73
  it('retry button is not rendered by default', () => {
71
- const wrapper = mount(<MessageBar {...defaultProps} />);
74
+ const { container } = render(<MessageBar {...defaultProps} />);
72
75
 
73
- const x = wrapper.find('.xIcon');
76
+ const x = container.querySelector('.xIcon');
74
77
 
75
- expect(x.exists()).toBe(false);
78
+ expect(x).toBeNull();
76
79
  });
77
80
 
78
81
  it(`displays a retry button and raises 'onRetry' when set`, () => {
79
- const spy = jest.fn();
80
- const wrapper = mount(<MessageBar {...defaultProps} onRetry={spy} />);
82
+ const spy = vi.fn();
83
+ const { container } = render(
84
+ <MessageBar {...defaultProps} onRetry={spy} />,
85
+ );
81
86
 
82
- const retryIcon = wrapper.find('.retryIcon');
83
- const reIcon = wrapper.find('.reIcon');
87
+ const retryIcon = screen.getByTestId('message-bar-retry-button');
88
+ const reIcon = container.querySelector('.reIcon');
84
89
 
85
- retryIcon.simulate('click');
90
+ fireEvent.click(retryIcon);
86
91
 
87
- expect(reIcon.exists()).toBe(true);
92
+ expect(reIcon).toBeTruthy();
88
93
  expect(spy).toHaveBeenCalledTimes(1);
89
94
  });
90
95
  });
91
96
 
92
97
  describe('message body', () => {
93
98
  it(`does not render a body nor the details icon if component has no children`, () => {
94
- const wrapper = mount(<MessageBar {...defaultProps} />);
99
+ const { container } = render(<MessageBar {...defaultProps} />);
95
100
 
96
- const body = wrapper.find('.body');
97
- const toggle = wrapper.find('.detailsIcon');
101
+ const body = container.querySelector('.body');
102
+ const toggle = container.querySelector('.detailsIcon');
98
103
 
99
- expect(body.exists()).toBe(false);
100
- expect(toggle.exists()).toBe(false);
104
+ expect(body).toBeNull();
105
+ expect(toggle).toBeNull();
101
106
  });
102
107
 
103
108
  it(`body is not rendered by default and a details icon is rendered when body is passed in`, () => {
104
- const wrapper = mount(<MessageBar {...defaultProps}>Test</MessageBar>);
109
+ const { container } = render(
110
+ <MessageBar {...defaultProps}>Test</MessageBar>,
111
+ );
105
112
 
106
- const body = wrapper.find('.body');
107
- const toggle = wrapper.find('.detailsIcon');
113
+ const body = container.querySelector('.body');
114
+ const toggle = container.querySelector('.detailsIcon');
108
115
 
109
- expect(body.exists()).toBe(false);
110
- expect(toggle.exists()).toBe(true);
116
+ expect(body).toBeNull();
117
+ expect(toggle).toBeTruthy();
111
118
  });
112
119
 
113
120
  it('shows/hides body if children are passed in when details icon is clicked', () => {
114
- const wrapper = mount(<MessageBar {...defaultProps}>Test</MessageBar>);
121
+ const { container } = render(
122
+ <MessageBar {...defaultProps}>Test</MessageBar>,
123
+ );
115
124
 
116
- let body = wrapper.find('.body');
117
- let toggleIcon = wrapper.find('.detIcon').first();
125
+ let body = container.querySelector('.body');
126
+ let toggleIcon = container.querySelector('.detIcon');
118
127
 
119
- expect(body.exists()).toBe(false);
120
- expect(toggleIcon.hasClass('open')).toBe(false);
128
+ expect(body).toBeNull();
129
+ expect(toggleIcon?.classList.contains('open')).toBe(false);
121
130
 
122
131
  // Show body
123
- let toggle = wrapper.find('.detailsIcon');
132
+ let toggle = screen.getByTestId('message-bar-details-button');
124
133
 
125
- toggle.simulate('click');
134
+ fireEvent.click(toggle);
126
135
 
127
- wrapper.update();
136
+ body = container.querySelector('.body');
137
+ toggleIcon = container.querySelector('.detIcon');
128
138
 
129
- body = wrapper.find('.body');
130
- toggleIcon = wrapper.find('.detIcon').first();
131
-
132
- expect(body.exists()).toBe(true);
133
- expect(toggleIcon.hasClass('open')).toBe(true);
139
+ expect(body).toBeTruthy();
140
+ expect(toggleIcon?.classList.contains('open')).toBe(true);
134
141
 
135
142
  // Hide body
136
- toggle = wrapper.find('.detailsIcon');
137
-
138
- toggle.simulate('click');
143
+ toggle = screen.getByTestId('message-bar-details-button');
139
144
 
140
- wrapper.update();
145
+ fireEvent.click(toggle);
141
146
 
142
- body = wrapper.find('.body');
143
- toggleIcon = wrapper.find('.detIcon').first();
147
+ body = container.querySelector('.body');
148
+ toggleIcon = container.querySelector('.detIcon');
144
149
 
145
- expect(body.exists()).toBe(false);
146
- expect(toggleIcon.hasClass('open')).toBe(false);
150
+ expect(body).toBeNull();
151
+ expect(toggleIcon?.classList.contains('open')).toBe(false);
147
152
  });
148
153
 
149
154
  it(`wraps children in 'div' tags if children is of type 'string'`, () => {
150
- const wrapper = mount(<MessageBar {...defaultProps}>Test</MessageBar>);
151
-
152
- const toggle = wrapper.find('.detailsIcon');
155
+ const { container } = render(
156
+ <MessageBar {...defaultProps}>Test</MessageBar>,
157
+ );
153
158
 
154
- toggle.simulate('click');
159
+ const toggle = screen.getByTestId('message-bar-details-button');
155
160
 
156
- wrapper.update();
161
+ fireEvent.click(toggle);
157
162
 
158
- const wrappedChild = wrapper.find('.body > div.textChild');
163
+ const wrappedChild = container.querySelector('.body > div.textChild');
159
164
 
160
- expect(wrappedChild.exists()).toBe(true);
165
+ expect(wrappedChild).toBeTruthy();
161
166
  });
162
167
 
163
168
  it(`does not wrap children in div tags if children is a react node`, () => {
164
- const wrapper = mount(
169
+ const { container } = render(
165
170
  <MessageBar {...defaultProps}>
166
171
  <h1>Test</h1>
167
172
  </MessageBar>,
168
173
  );
169
174
 
170
- const toggle = wrapper.find('.detailsIcon');
171
-
172
- toggle.simulate('click');
175
+ const toggle = screen.getByTestId('message-bar-details-button');
173
176
 
174
- wrapper.update();
177
+ fireEvent.click(toggle);
175
178
 
176
- const wrappedChild = wrapper.find('.body > div.textChild');
177
- const node = wrapper.find('.body > h1');
179
+ const wrappedChild = container.querySelector('.body > div.textChild');
180
+ const node = container.querySelector('.body > h1');
178
181
 
179
- expect(wrappedChild.exists()).toBe(false);
180
- expect(node.exists()).toBe(true);
182
+ expect(wrappedChild).toBeNull();
183
+ expect(node).toBeTruthy();
181
184
  });
182
185
 
183
186
  it('body is not rendered if children is an empty string', () => {
184
187
  const mockBody = '';
185
- const wrapper = mount(
188
+ const { container } = render(
186
189
  <MessageBar {...defaultProps}>{mockBody}</MessageBar>,
187
190
  );
188
191
 
189
- const toggle = wrapper.find('.detailsIcon');
192
+ const toggle = container.querySelector('.detailsIcon');
190
193
 
191
- expect(toggle.exists()).toBe(false);
194
+ expect(toggle).toBeNull();
192
195
  });
193
196
 
194
197
  it('body is not rendered if children is undefined', () => {
195
- const wrapper = mount(<MessageBar {...defaultProps}></MessageBar>);
198
+ const { container } = render(<MessageBar {...defaultProps}></MessageBar>);
196
199
 
197
- const toggle = wrapper.find('.detailsIcon');
200
+ const toggle = container.querySelector('.detailsIcon');
198
201
 
199
- expect(toggle.exists()).toBe(false);
202
+ expect(toggle).toBeNull();
200
203
  });
201
204
  });
202
205
  });
@@ -1,71 +1,73 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render, screen, waitFor } from '@testing-library/react';
2
2
  import React from 'react';
3
- import { act } from 'react-dom/test-utils';
3
+ import { describe, expect, it, vi } from 'vitest';
4
4
  import { Modal } from './Modal';
5
5
 
6
6
  describe('Actions', () => {
7
7
  it('renders the component without crashing', () => {
8
- const wrapper = shallow(<Modal isShown={true} />);
8
+ const { container } = render(<Modal isShown={true} />);
9
9
 
10
- expect(wrapper).toBeTruthy();
10
+ expect(container).toBeTruthy();
11
11
  });
12
12
 
13
13
  it(`emits 'onBackDropClicked' when the back-drop is clicked`, () => {
14
- const backDropSpy = jest.fn();
15
- const wrapper = shallow(
14
+ const backDropSpy = vi.fn();
15
+ const { container } = render(
16
16
  <Modal isShown={true} onBackDropClicked={backDropSpy} />,
17
17
  );
18
18
 
19
- const container = wrapper.find('.container');
19
+ const modalContainer = container.querySelector('.modal-container');
20
20
 
21
- act(() => {
22
- container.simulate('click');
23
- });
21
+ if (modalContainer) {
22
+ fireEvent.click(modalContainer);
23
+ }
24
24
 
25
25
  expect(backDropSpy).toHaveBeenCalledTimes(1);
26
26
  });
27
27
 
28
28
  it(`does not emit 'onBackDropClicked' when a child element is clicked`, () => {
29
- const backDropSpy = jest.fn();
30
- const wrapper = shallow(
29
+ const backDropSpy = vi.fn();
30
+ render(
31
31
  <Modal onBackDropClicked={backDropSpy} isShown={true}>
32
- <div id="child">Test</div>
32
+ <div data-test-id="child">Test</div>
33
33
  </Modal>,
34
34
  );
35
35
 
36
- const child = wrapper.find('#child');
36
+ const child = screen.getByTestId('child');
37
37
 
38
- act(() => {
39
- child.simulate('click');
40
- });
38
+ fireEvent.click(child);
41
39
 
42
40
  expect(backDropSpy).not.toHaveBeenCalled();
43
41
  });
44
42
 
45
- it(`emits 'onOpen' when the modal is shown`, () => {
46
- const onOpenSpy = jest.fn();
43
+ it(`emits 'onOpen' when the modal is shown`, async () => {
44
+ const onOpenSpy = vi.fn();
47
45
 
48
- const wrapper = mount(<Modal isShown={false} onOpen={onOpenSpy} />);
46
+ const { rerender } = render(<Modal isShown={false} onOpen={onOpenSpy} />);
49
47
 
50
- wrapper.setProps({ isShown: true });
51
- wrapper.update();
48
+ rerender(<Modal isShown={true} onOpen={onOpenSpy} />);
52
49
 
53
- setTimeout(() => {
54
- expect(onOpenSpy).toHaveBeenCalledTimes(1);
55
- }, 500);
50
+ await waitFor(
51
+ () => {
52
+ expect(onOpenSpy).toHaveBeenCalledTimes(1);
53
+ },
54
+ { timeout: 500 },
55
+ );
56
56
  });
57
57
 
58
- it(`emits 'onClose' when the modal is hidden`, () => {
59
- const onCloseSpy = jest.fn();
58
+ it(`emits 'onClose' when the modal is hidden`, async () => {
59
+ const onCloseSpy = vi.fn();
60
60
 
61
- const wrapper = mount(<Modal isShown={true} onClose={onCloseSpy} />);
61
+ const { rerender } = render(<Modal isShown={true} onClose={onCloseSpy} />);
62
62
 
63
- wrapper.setProps({ isShown: false });
64
- wrapper.update();
63
+ rerender(<Modal isShown={false} onClose={onCloseSpy} />);
65
64
 
66
- setTimeout(() => {
67
- expect(onCloseSpy).toHaveBeenCalledTimes(1);
68
- }, 500);
65
+ await waitFor(
66
+ () => {
67
+ expect(onCloseSpy).toHaveBeenCalledTimes(1);
68
+ },
69
+ { timeout: 500 },
70
+ );
69
71
  });
70
72
 
71
73
  it(`accepts padding styles which are 'undefined' by default`, () => {
@@ -74,79 +76,82 @@ describe('Actions', () => {
74
76
  const mockPaddingBottom = '52px';
75
77
  const mockPaddingRight = '53px';
76
78
 
77
- const wrapper = shallow(<Modal isShown={true} />);
78
-
79
- let modalStyles = wrapper
80
- .find('.container')
81
- .prop('style') as React.CSSProperties;
82
-
83
- expect(modalStyles.height).toBeUndefined();
84
- expect(modalStyles.width).toBeUndefined();
85
- expect(modalStyles.height).toBeUndefined();
86
- expect(modalStyles.width).toBeUndefined();
87
-
88
- wrapper.setProps({
89
- paddingTop: mockPaddingTop,
90
- paddingLeft: mockPaddingLeft,
91
- paddingBottom: mockPaddingBottom,
92
- paddingRight: mockPaddingRight,
93
- });
94
- wrapper.update();
95
-
96
- modalStyles = wrapper
97
- .find('.container')
98
- .prop('style') as React.CSSProperties;
99
-
100
- expect(modalStyles.paddingTop).toBe(mockPaddingTop);
101
- expect(modalStyles.paddingRight).toBe(mockPaddingRight);
102
- expect(modalStyles.paddingBottom).toBe(mockPaddingBottom);
103
- expect(modalStyles.paddingLeft).toBe(mockPaddingLeft);
79
+ const { container, rerender } = render(<Modal isShown={true} />);
80
+
81
+ let modalContainer = container.querySelector(
82
+ '.modal-container',
83
+ ) as HTMLElement;
84
+
85
+ expect(modalContainer?.style.paddingTop).toBeFalsy();
86
+ expect(modalContainer?.style.paddingLeft).toBeFalsy();
87
+ expect(modalContainer?.style.paddingBottom).toBeFalsy();
88
+ expect(modalContainer?.style.paddingRight).toBeFalsy();
89
+
90
+ rerender(
91
+ <Modal
92
+ isShown={true}
93
+ paddingTop={mockPaddingTop}
94
+ paddingLeft={mockPaddingLeft}
95
+ paddingBottom={mockPaddingBottom}
96
+ paddingRight={mockPaddingRight}
97
+ />,
98
+ );
99
+
100
+ modalContainer = container.querySelector('.modal-container') as HTMLElement;
101
+
102
+ expect(modalContainer?.style.paddingTop).toBe(mockPaddingTop);
103
+ expect(modalContainer?.style.paddingRight).toBe(mockPaddingRight);
104
+ expect(modalContainer?.style.paddingBottom).toBe(mockPaddingBottom);
105
+ expect(modalContainer?.style.paddingLeft).toBe(mockPaddingLeft);
104
106
  });
105
107
 
106
108
  it(`if 'width' prop is set, passes 'width' value to child container`, () => {
107
109
  const mockWidth = '50px';
108
110
 
109
- const wrapper = shallow(<Modal isShown={true} />);
111
+ const { rerender } = render(<Modal isShown={true} />);
110
112
 
111
- let modalStyles = wrapper
112
- .find('.child')
113
- .prop('style') as React.CSSProperties;
113
+ let modalElement = screen.getByTestId('modal') as HTMLElement;
114
114
 
115
- expect(modalStyles.width).toBeUndefined();
115
+ expect(modalElement?.style.width).toBeFalsy();
116
116
 
117
- wrapper.setProps({
118
- width: mockWidth,
119
- });
120
- wrapper.update();
117
+ rerender(<Modal isShown={true} width={mockWidth} />);
121
118
 
122
- modalStyles = wrapper.find('.child').prop('style') as React.CSSProperties;
119
+ modalElement = screen.getByTestId('modal') as HTMLElement;
123
120
 
124
- expect(modalStyles.width).toBe(mockWidth);
121
+ expect(modalElement?.style.width).toBe(mockWidth);
125
122
  });
126
123
 
127
- it(`data-test-state attribute is set to "open" when fully opened`, () => {
128
- const wrapper = shallow(<Modal isShown={false} />);
129
- const selector = '[data-test-id="modal"]';
124
+ it(`data-test-state attribute is set to "open" when fully opened`, async () => {
125
+ const { rerender } = render(<Modal isShown={false} />);
130
126
 
131
- expect(wrapper.find(selector)).toHaveLength(0);
127
+ expect(screen.queryByTestId('modal')).toBeNull();
132
128
 
133
- wrapper.setProps({ isShown: true });
134
- wrapper.update();
129
+ rerender(<Modal isShown={true} />);
135
130
 
136
- expect(wrapper.find(selector).prop('data-test-state')).toBe('closed');
131
+ const modalElement = screen.getByTestId('modal');
137
132
 
138
- setTimeout(() => {
139
- expect(wrapper.find(selector).prop('data-test-state')).toBe('open');
140
- }, 500);
133
+ expect(modalElement.getAttribute('data-test-state')).toBe('closed');
134
+
135
+ await waitFor(
136
+ () => {
137
+ expect(modalElement.getAttribute('data-test-state')).toBe('open');
138
+ },
139
+ { timeout: 500 },
140
+ );
141
141
  });
142
142
 
143
- it(`element with data-test-id="modal" is hidden when closed`, () => {
144
- const wrapper = shallow(<Modal isShown={true} />);
145
- const selector = '[data-test-id="modal"]';
143
+ it(`element with data-test-id="modal" is hidden when closed`, async () => {
144
+ const { rerender } = render(<Modal isShown={true} />);
146
145
 
147
- wrapper.setProps({ isShown: false });
148
- wrapper.update();
146
+ expect(screen.getByTestId('modal')).toBeTruthy();
149
147
 
150
- expect(wrapper.find(selector)).toHaveLength(0);
148
+ rerender(<Modal isShown={false} />);
149
+
150
+ await waitFor(
151
+ () => {
152
+ expect(screen.queryByTestId('modal')).toBeNull();
153
+ },
154
+ { timeout: 500 },
155
+ );
151
156
  });
152
157
  });
@@ -1,6 +1,7 @@
1
- jest.mock('hooks/useReactRouterPause/useReactRouterPause');
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ vi.mock('../../hooks/useReactRouterPause/useReactRouterPause');
2
3
 
3
- import { mount } from 'enzyme';
4
+ import { render } from '@testing-library/react';
4
5
  import React from 'react';
5
6
  import { MemoryRouter } from 'react-router-dom';
6
7
  import { asSpy } from '../../helpers/testing';
@@ -13,7 +14,7 @@ describe('NavigationAwareStation', () => {
13
14
  });
14
15
 
15
16
  it('does nothing if restrictNavigation is set to false', async () => {
16
- mount(
17
+ render(
17
18
  <MemoryRouter>
18
19
  <NavigationAwareStation restrictNavigation={false} />
19
20
  </MemoryRouter>,
@@ -24,7 +25,7 @@ describe('NavigationAwareStation', () => {
24
25
  });
25
26
 
26
27
  it('blocks navigation if restrictNavigation is set to true', async () => {
27
- mount(
28
+ render(
28
29
  <MemoryRouter>
29
30
  <NavigationAwareStation restrictNavigation={true} />
30
31
  </MemoryRouter>,
@@ -36,14 +37,14 @@ describe('NavigationAwareStation', () => {
36
37
 
37
38
  it('pauses navigation until onNavigate is finished and resumes when returned true', async () => {
38
39
  const navigation = {
39
- isPaused: jest.fn(),
40
- pausedLocation: jest.fn(),
41
- pause: jest.fn(),
42
- resume: jest.fn(),
43
- cancel: jest.fn(),
40
+ isPaused: vi.fn(),
41
+ pausedLocation: vi.fn(),
42
+ pause: vi.fn(),
43
+ resume: vi.fn(),
44
+ cancel: vi.fn(),
44
45
  };
45
46
 
46
- mount(
47
+ render(
47
48
  <MemoryRouter>
48
49
  <NavigationAwareStation
49
50
  restrictNavigation={true}
@@ -70,14 +71,14 @@ describe('NavigationAwareStation', () => {
70
71
 
71
72
  it('pauses navigation until onNavigate is finished and cancels when returned false', async () => {
72
73
  const navigation = {
73
- isPaused: jest.fn(),
74
- pausedLocation: jest.fn(),
75
- pause: jest.fn(),
76
- resume: jest.fn(),
77
- cancel: jest.fn(),
74
+ isPaused: vi.fn(),
75
+ pausedLocation: vi.fn(),
76
+ pause: vi.fn(),
77
+ resume: vi.fn(),
78
+ cancel: vi.fn(),
78
79
  };
79
80
 
80
- mount(
81
+ render(
81
82
  <MemoryRouter>
82
83
  <NavigationAwareStation
83
84
  restrictNavigation={true}
@@ -104,14 +105,14 @@ describe('NavigationAwareStation', () => {
104
105
 
105
106
  it('pauses navigation until onNavigate is finished and cancels when exception is thrown', async () => {
106
107
  const navigation = {
107
- isPaused: jest.fn(),
108
- pausedLocation: jest.fn(),
109
- pause: jest.fn(),
110
- resume: jest.fn(),
111
- cancel: jest.fn(),
108
+ isPaused: vi.fn(),
109
+ pausedLocation: vi.fn(),
110
+ pause: vi.fn(),
111
+ resume: vi.fn(),
112
+ cancel: vi.fn(),
112
113
  };
113
114
 
114
- mount(
115
+ render(
115
116
  <MemoryRouter>
116
117
  <NavigationAwareStation
117
118
  restrictNavigation={true}