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