@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,41 +1,43 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render } from '@testing-library/react';
2
2
  import React from 'react';
3
- import { Link, BrowserRouter as Router } from 'react-router-dom';
3
+ import { BrowserRouter as Router } from 'react-router-dom';
4
+ import { describe, expect, it, vi } from 'vitest';
4
5
  import { ButtonContext } from '../Button.model';
5
6
  import { TextButton } from './TextButton';
6
7
 
7
8
  describe('TextButton', () => {
8
9
  describe('TextContextButton', () => {
9
10
  it('renders the component without crashing', () => {
10
- const wrapper = shallow(<TextButton />);
11
+ const { container } = render(<TextButton />);
11
12
 
12
- expect(wrapper).toBeTruthy();
13
+ expect(container.querySelector('button')).toBeInTheDocument();
13
14
  });
14
15
 
15
16
  it('raises the onButtonClicked event', () => {
16
- const spy = jest.fn();
17
- const wrapper = mount(<TextButton onButtonClicked={spy} />);
17
+ const spy = vi.fn();
18
+ const { container } = render(<TextButton onButtonClicked={spy} />);
18
19
 
19
- wrapper.simulate('click');
20
+ const button = container.querySelector('button')!;
21
+ fireEvent.click(button);
20
22
 
21
23
  expect(spy).toHaveBeenCalledTimes(1);
22
24
  });
23
25
 
24
26
  it('creates a class based off of the className prop', () => {
25
27
  const mockClassName = 'test-class';
26
- const wrapper = mount(<TextButton className={mockClassName} />);
28
+ const { container } = render(<TextButton className={mockClassName} />);
27
29
 
28
- const button = wrapper.find('button');
30
+ const button = container.querySelector('button')!;
29
31
 
30
- expect(button.hasClass(mockClassName)).toBe(true);
32
+ expect(button.classList.contains(mockClassName)).toBe(true);
31
33
  });
32
34
 
33
35
  it(`button 'type' must be 'button' by default`, () => {
34
- const wrapper = mount(<TextButton />);
36
+ const { container } = render(<TextButton />);
35
37
 
36
- const buttonType = wrapper.find('button').prop('type');
38
+ const button = container.querySelector('button')!;
37
39
 
38
- expect(buttonType).toBe('button');
40
+ expect(button.type).toBe('button');
39
41
  });
40
42
 
41
43
  it('accepts type html attribute and width/height styles', () => {
@@ -43,204 +45,197 @@ describe('TextButton', () => {
43
45
  const mockHeight = '75px';
44
46
  const mockWidth = '80px';
45
47
 
46
- const wrapper = mount(<TextButton />);
48
+ const { container, rerender } = render(<TextButton />);
47
49
 
48
- let buttonType = wrapper.find('button').prop('type');
49
- let buttonStyles = wrapper
50
- .find('button')
51
- .prop('style') as React.CSSProperties;
50
+ let button = container.querySelector('button')!;
52
51
 
53
- expect(buttonType).toBe('button');
54
- expect(buttonStyles.height).toBeUndefined();
55
- expect(buttonStyles.width).toBeUndefined();
52
+ expect(button.type).toBe('button');
53
+ expect(button.style.height).toBe('');
54
+ expect(button.style.width).toBe('');
56
55
 
57
- wrapper.setProps({
58
- type: mockType,
59
- height: mockHeight,
60
- width: mockWidth,
61
- });
62
- wrapper.update();
56
+ rerender(
57
+ <TextButton type={mockType} height={mockHeight} width={mockWidth} />,
58
+ );
63
59
 
64
- buttonType = wrapper.find('button').prop('type');
65
- buttonStyles = wrapper
66
- .find('button')
67
- .prop('style') as React.CSSProperties;
60
+ button = container.querySelector('button')!;
68
61
 
69
- expect(buttonType).toBe(mockType);
70
- expect(buttonStyles.height).toBe(mockHeight);
71
- expect(buttonStyles.width).toBe(mockWidth);
62
+ expect(button.type).toBe(mockType);
63
+ expect(button.style.height).toBe(mockHeight);
64
+ expect(button.style.width).toBe(mockWidth);
72
65
  });
73
66
 
74
67
  it('allows the button to be enabled by default', () => {
75
- const spy = jest.fn();
76
- const wrapper = mount(<TextButton onButtonClicked={spy} />);
68
+ const spy = vi.fn();
69
+ const { container } = render(<TextButton onButtonClicked={spy} />);
77
70
 
78
- const button = wrapper.find('button');
71
+ const button = container.querySelector('button')!;
79
72
 
80
- wrapper.simulate('click');
73
+ fireEvent.click(button);
81
74
 
82
- expect(button.prop('disabled')).toBe(false);
75
+ expect(button.disabled).toBe(false);
83
76
  expect(spy).toHaveBeenCalledTimes(1);
84
77
  });
85
78
 
86
79
  it('allows button to be disabled', () => {
87
- const spy = jest.fn();
88
- const wrapper = mount(
80
+ const spy = vi.fn();
81
+ const { container } = render(
89
82
  <TextButton disabled={true} onButtonClicked={spy} />,
90
83
  );
91
84
 
92
- const button = wrapper.find('button');
85
+ const button = container.querySelector('button')!;
93
86
 
94
- wrapper.simulate('click');
87
+ fireEvent.click(button);
95
88
 
96
- expect(button.prop('disabled')).toBe(true);
89
+ expect(button.disabled).toBe(true);
97
90
  expect(spy).not.toHaveBeenCalled();
98
91
  });
99
92
 
100
93
  it('default should have a context class', () => {
101
- const wrapper = mount(<TextButton />);
94
+ const { container } = render(<TextButton />);
102
95
 
103
- const button = wrapper.find('button');
96
+ const button = container.querySelector('button')!;
104
97
 
105
- expect(button.hasClass('context')).toBe(true);
98
+ expect(button.classList.contains('context')).toBe(true);
106
99
  });
107
100
 
108
101
  it('context button type should have a context class', () => {
109
- const wrapper = mount(
102
+ const { container } = render(
110
103
  <TextButton buttonContext={ButtonContext.Context} />,
111
104
  );
112
105
 
113
- const button = wrapper.find('button');
106
+ const button = container.querySelector('button')!;
114
107
 
115
- expect(button.hasClass('context')).toBe(true);
108
+ expect(button.classList.contains('context')).toBe(true);
116
109
  });
117
110
 
118
111
  it('active button type should have a active class', () => {
119
- const wrapper = mount(
112
+ const { container } = render(
120
113
  <TextButton buttonContext={ButtonContext.Active} />,
121
114
  );
122
115
 
123
- const button = wrapper.find('button');
116
+ const button = container.querySelector('button')!;
124
117
 
125
- expect(button.hasClass('active')).toBe(true);
118
+ expect(button.classList.contains('active')).toBe(true);
126
119
  });
127
120
 
128
121
  it(`renders value from 'text' prop`, () => {
129
122
  const mockText = 'mock-text';
130
123
 
131
- const wrapper = mount(<TextButton text={mockText} />);
124
+ const { container } = render(<TextButton text={mockText} />);
132
125
 
133
- const button = wrapper.find('button');
126
+ const button = container.querySelector('button')!;
134
127
 
135
- expect(button.text()).toBe(mockText);
128
+ expect(button.textContent).toBe(mockText);
136
129
  });
137
130
 
138
131
  it(`defaults to an empty string is 'text' prop is not set`, () => {
139
- const wrapper = mount(<TextButton />);
132
+ const { container } = render(<TextButton />);
140
133
 
141
- const button = wrapper.find('button');
134
+ const button = container.querySelector('button')!;
142
135
 
143
- expect(button.text()).toBe('');
136
+ expect(button.textContent).toBe('');
144
137
  });
145
138
  });
146
139
 
147
140
  describe('TextNavigationButton', () => {
148
141
  it('renders the component without crashing', () => {
149
- const wrapper = shallow(<TextButton path={'/'} />);
150
- expect(wrapper).toBeTruthy();
142
+ const { container } = render(
143
+ <Router>
144
+ <TextButton path={'/'} />
145
+ </Router>,
146
+ );
147
+ expect(container.querySelector('a')).toBeInTheDocument();
151
148
  });
152
149
 
153
150
  it('renders as a navigation button when path prop is defined', () => {
154
151
  const mockPath = '/home';
155
- const wrapper = mount(
152
+ const { container } = render(
156
153
  <Router>
157
154
  <TextButton path={mockPath} />
158
155
  </Router>,
159
156
  );
160
- const link = wrapper.find(Link);
161
- expect(link).toHaveLength(1);
162
- expect(link.prop('to')).toBe(mockPath);
157
+ const link = container.querySelector('a')!;
158
+ expect(link).toBeInTheDocument();
159
+ expect(link.getAttribute('href')).toBe(mockPath);
163
160
  });
164
161
 
165
162
  it('does not open link in new tab by default', () => {
166
163
  const mockPath = '/home';
167
- const wrapper = mount(
164
+ const { container } = render(
168
165
  <Router>
169
166
  <TextButton path={mockPath} />
170
167
  </Router>,
171
168
  );
172
- const link = wrapper.find(Link);
173
- expect(link.prop('target')).toBeUndefined();
169
+ const link = container.querySelector('a')!;
170
+ expect(link.getAttribute('target')).toBeNull();
174
171
  });
175
172
 
176
173
  it('opens link in new tab when openInNewTab prop set to true', () => {
177
174
  const mockPath = '/home';
178
- const wrapper = mount(
175
+ const { container } = render(
179
176
  <Router>
180
177
  <TextButton path={mockPath} openInNewTab={true} />
181
178
  </Router>,
182
179
  );
183
- const link = wrapper.find(Link);
184
- expect(link.prop('target')).toBe('_blank');
180
+ const link = container.querySelector('a')!;
181
+ expect(link.getAttribute('target')).toBe('_blank');
185
182
  });
186
183
 
187
184
  it('creates a class based on the className prop', () => {
188
185
  const mockClassName = 'test-class';
189
- const wrapper = mount(
186
+ const { container } = render(
190
187
  <Router>
191
- <TextButton path={'/test'} className={mockClassName} />,
188
+ <TextButton path={'/test'} className={mockClassName} />
192
189
  </Router>,
193
190
  );
194
- const link = wrapper.find(Link);
195
- expect(link.hasClass(mockClassName)).toBe(true);
191
+ const link = container.querySelector('a')!;
192
+ expect(link.classList.contains(mockClassName)).toBe(true);
196
193
  });
197
194
 
198
195
  it('accepts width and height styles', () => {
199
196
  const mockHeight = '75px';
200
197
  const mockWidth = '80px';
201
- const wrapper = mount(
198
+ const { container } = render(
202
199
  <Router>
203
200
  <TextButton path={'/test'} width={mockWidth} height={mockHeight} />
204
201
  </Router>,
205
202
  );
206
- const linkStyles = wrapper
207
- .find('Link')
208
- .prop('style') as React.CSSProperties;
203
+ const link = container.querySelector('a')!;
209
204
 
210
- expect(linkStyles.height).toBe(mockHeight);
211
- expect(linkStyles.width).toBe(mockWidth);
205
+ expect(link.style.height).toBe(mockHeight);
206
+ expect(link.style.width).toBe(mockWidth);
212
207
  });
213
208
 
214
209
  it('allows the link to be enabled by default', () => {
215
- const wrapper = mount(
210
+ const { container } = render(
216
211
  <Router>
217
212
  <TextButton path={'/test'} />
218
213
  </Router>,
219
214
  );
220
215
 
221
- const link = wrapper.find('Link');
216
+ const link = container.querySelector('a')!;
222
217
 
223
- expect(link.hasClass('disabled')).toBe(false);
218
+ expect(link.classList.contains('disabled')).toBe(false);
224
219
  });
225
220
 
226
221
  it('allows the button to be disabled', () => {
227
- const wrapper = mount(
222
+ const { container } = render(
228
223
  <Router>
229
224
  <TextButton path={'/test'} disabled={true} />
230
225
  </Router>,
231
226
  );
232
- const link = wrapper.find('Link');
233
- expect(link.hasClass('disabled')).toBe(true);
227
+ const link = container.querySelector('a')!;
228
+ expect(link.classList.contains('disabled')).toBe(true);
234
229
  });
235
230
 
236
231
  it('adds `navigation` class for link buttons', () => {
237
- const wrapper = mount(
232
+ const { container } = render(
238
233
  <Router>
239
234
  <TextButton path={'/test'} />
240
235
  </Router>,
241
236
  );
242
- const link = wrapper.find(Link);
243
- expect(link.hasClass('navigation')).toBe(true);
237
+ const link = container.querySelector('a')!;
238
+ expect(link.classList.contains('navigation')).toBe(true);
244
239
  });
245
240
  });
246
241
  });
@@ -1,9 +1,6 @@
1
- /* eslint-disable @typescript-eslint/ban-ts-comment */
2
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render, screen } from '@testing-library/react';
3
2
  import React, { useState } from 'react';
4
- import { act } from 'react-dom/test-utils';
5
- import { TextButton } from '../Buttons';
6
- import { Message } from '../Message';
3
+ import { describe, expect, it, vi } from 'vitest';
7
4
  import { ConfirmDialog } from './ConfirmDialog';
8
5
  import { ConfirmationConfig } from './ConfirmDialog.models';
9
6
 
@@ -14,8 +11,11 @@ const TestWrapper: React.FC<{
14
11
 
15
12
  return (
16
13
  <div>
17
- <button id="test-mount" onClick={() => setState(true)}></button>
18
- <button id="test-unmount" onClick={() => setState(false)}></button>
14
+ <button data-test-id="test-mount" onClick={() => setState(true)}></button>
15
+ <button
16
+ data-test-id="test-unmount"
17
+ onClick={() => setState(false)}
18
+ ></button>
19
19
  {state && <ConfirmDialog onConfirmOpen={onConfirmOpen} />}
20
20
  </div>
21
21
  );
@@ -23,77 +23,82 @@ const TestWrapper: React.FC<{
23
23
 
24
24
  describe('ConfirmDialog', () => {
25
25
  it('renders the component without crashing', () => {
26
- const wrapper = shallow(<ConfirmDialog />);
26
+ const { container } = render(<ConfirmDialog />);
27
27
 
28
- expect(wrapper).toBeTruthy();
28
+ expect(container).toBeTruthy();
29
29
  });
30
30
 
31
31
  it('allows an optional class to be passed in', () => {
32
32
  const mockClass = 'test-class';
33
- const wrapper = mount(<ConfirmDialog className={mockClass} />);
33
+ const { container } = render(<ConfirmDialog className={mockClass} />);
34
34
 
35
- const container = wrapper.find('.container').first();
35
+ const dialogContainer = container.querySelector(
36
+ '.confirm-dialog-container',
37
+ );
36
38
 
37
- expect(container.hasClass(mockClass)).toBe(true);
39
+ expect(dialogContainer?.classList.contains(mockClass)).toBe(true);
38
40
  });
39
41
 
40
42
  it(`'accepts placement prop`, () => {
41
- const wrapper = shallow(<ConfirmDialog placement="top" />);
43
+ const { container } = render(<ConfirmDialog placement="top" />);
42
44
 
43
- expect(wrapper).toBeTruthy();
45
+ expect(container).toBeTruthy();
44
46
  });
45
47
 
46
48
  it('disables container click event propagation', () => {
47
- const spy = jest.fn();
48
- const mockedEvent = { stopPropagation: spy };
49
- const wrapper = shallow(<ConfirmDialog />);
50
-
51
- const container = wrapper.find('.container');
52
-
53
- container.simulate('click', mockedEvent);
54
-
55
- expect(spy).toHaveBeenCalledTimes(1);
49
+ const parentClickSpy = vi.fn();
50
+ const { container } = render(
51
+ <div onClick={parentClickSpy}>
52
+ <ConfirmDialog />
53
+ </div>,
54
+ );
55
+
56
+ const dialogContainer = container.querySelector(
57
+ '.confirm-dialog-container',
58
+ )!;
59
+ fireEvent.click(dialogContainer);
60
+
61
+ expect(parentClickSpy).not.toHaveBeenCalled();
56
62
  });
57
63
 
58
64
  describe('title and body', () => {
59
65
  it(`renders a default title and body and allows both props to be passed in`, () => {
60
66
  const mockTitle = 'test-title';
61
67
  const mockBody = 'test-body';
62
- const wrapper = shallow(<ConfirmDialog />);
68
+ const { container, rerender } = render(<ConfirmDialog />);
63
69
 
64
- let message = wrapper.find(Message);
65
- let body = wrapper.find('.confirmBodyText');
70
+ let message = screen.getByTestId('message-title');
71
+ let body = container.querySelector('.confirmBodyText');
66
72
 
67
- expect(message.prop('title')).toBe('Confirmation needed');
68
- expect(body.text()).toBe(
73
+ expect(message.textContent).toBe('Confirmation needed');
74
+ expect(body?.textContent).toBe(
69
75
  'The action is irreversible. Please confirm to proceed.',
70
76
  );
71
77
 
72
- wrapper.setProps({ title: mockTitle, children: mockBody });
73
- wrapper.update();
78
+ rerender(<ConfirmDialog title={mockTitle}>{mockBody}</ConfirmDialog>);
74
79
 
75
- message = wrapper.find(Message);
76
- body = wrapper.find('.confirmBodyText');
80
+ message = screen.getByTestId('message-title');
81
+ body = container.querySelector('.confirmBodyText');
77
82
 
78
- expect(message.prop('title')).toBe(mockTitle);
79
- expect(body.text()).toBe(mockBody);
83
+ expect(message.textContent).toBe(mockTitle);
84
+ expect(body?.textContent).toBe(mockBody);
80
85
  });
81
86
 
82
87
  it(`accepts an element`, () => {
83
88
  const mockBody: JSX.Element = <span>test-body</span>;
84
- const wrapper = shallow(<ConfirmDialog>{mockBody}</ConfirmDialog>);
89
+ const { container } = render(<ConfirmDialog>{mockBody}</ConfirmDialog>);
85
90
 
86
- const body = wrapper.find('.confirmBodyText');
91
+ const body = container.querySelector('.confirmBodyText');
87
92
 
88
- expect(body.contains(mockBody)).toBe(true);
93
+ expect(body?.querySelector('span')?.textContent).toBe('test-body');
89
94
  });
90
95
 
91
96
  it(`disables 'isBodyPositionAbsolute' in the Message component`, () => {
92
- const wrapper = shallow(<ConfirmDialog />);
93
-
94
- const message = wrapper.find(Message);
97
+ const { container } = render(<ConfirmDialog />);
95
98
 
96
- expect(message.prop('isBodyPositionAbsolute')).toBe(false);
99
+ // Check that the body element doesn't have the absolute class
100
+ const body = container.querySelector('.body');
101
+ expect(body?.classList.contains('absolute')).toBe(false);
97
102
  });
98
103
  });
99
104
 
@@ -101,47 +106,39 @@ describe('ConfirmDialog', () => {
101
106
  it(`renders 'Cancel' and 'Confirm' button by default allows both button texts to be passed in`, () => {
102
107
  const mockCancelButton = 'test-cancel-button-text';
103
108
  const mockConfirmButton = 'test-confirm-button-text';
104
- const wrapper = shallow(<ConfirmDialog />);
109
+ const { rerender } = render(<ConfirmDialog />);
105
110
 
106
- let cancelButton = wrapper.find(TextButton).first();
107
- let confirmButton = wrapper.find(TextButton).last();
111
+ let cancelButton = screen.getByTestId('cancel');
112
+ let confirmButton = screen.getByTestId('confirm');
108
113
 
109
- expect(cancelButton.prop('text')).toBe('Cancel');
110
- expect(confirmButton.prop('text')).toBe('Confirm');
114
+ expect(cancelButton.textContent).toBe('Cancel');
115
+ expect(confirmButton.textContent).toBe('Confirm');
111
116
 
112
- wrapper.setProps({
113
- cancelButtonText: mockCancelButton,
114
- confirmButtonText: mockConfirmButton,
115
- });
116
- wrapper.update();
117
+ rerender(
118
+ <ConfirmDialog
119
+ cancelButtonText={mockCancelButton}
120
+ confirmButtonText={mockConfirmButton}
121
+ />,
122
+ );
117
123
 
118
- cancelButton = wrapper.find(TextButton).first();
119
- confirmButton = wrapper.find(TextButton).last();
124
+ cancelButton = screen.getByTestId('cancel');
125
+ confirmButton = screen.getByTestId('confirm');
120
126
 
121
- expect(cancelButton.prop('text')).toBe(mockCancelButton);
122
- expect(confirmButton.prop('text')).toBe(mockConfirmButton);
127
+ expect(cancelButton.textContent).toBe(mockCancelButton);
128
+ expect(confirmButton.textContent).toBe(mockConfirmButton);
123
129
  });
124
130
 
125
131
  it(`raises both 'onCancel' and 'onConfirm'`, () => {
126
- const mockEvent = {
127
- e: 'event',
128
- };
129
- const cancelSpy = jest.fn();
130
- const confirmSpy = jest.fn();
131
-
132
- const wrapper = shallow(
133
- <ConfirmDialog onCancel={cancelSpy} onConfirm={confirmSpy} />,
134
- );
132
+ const cancelSpy = vi.fn();
133
+ const confirmSpy = vi.fn();
134
+
135
+ render(<ConfirmDialog onCancel={cancelSpy} onConfirm={confirmSpy} />);
135
136
 
136
- const cancelButton = wrapper.find(TextButton).first();
137
- const confirmButton = wrapper.find(TextButton).last();
137
+ const cancelButton = screen.getByTestId('cancel');
138
+ const confirmButton = screen.getByTestId('confirm');
138
139
 
139
- act(() => {
140
- // @ts-ignore
141
- cancelButton.prop('onButtonClicked')?.(mockEvent);
142
- // @ts-ignore
143
- confirmButton.prop('onButtonClicked')?.(mockEvent);
144
- });
140
+ fireEvent.click(cancelButton);
141
+ fireEvent.click(confirmButton);
145
142
 
146
143
  expect(cancelSpy).toHaveBeenCalledTimes(1);
147
144
  expect(confirmSpy).toHaveBeenCalledTimes(1);
@@ -149,18 +146,17 @@ describe('ConfirmDialog', () => {
149
146
  });
150
147
 
151
148
  it(`raises 'onConfirmOpen' if set`, () => {
152
- const spy = jest.fn();
153
- const wrapper = mount(<TestWrapper onConfirmOpen={spy} />);
149
+ const spy = vi.fn();
150
+ render(<TestWrapper onConfirmOpen={spy} />);
154
151
 
155
- const mountButton = wrapper.find('#test-mount').first();
156
- const unmountButton = wrapper.find('#test-unmount').last();
152
+ const mountButton = screen.getByTestId('test-mount');
153
+ const unmountButton = screen.getByTestId('test-unmount');
157
154
 
158
- mountButton.simulate('click');
159
- wrapper.update();
155
+ fireEvent.click(mountButton);
160
156
 
161
157
  expect(spy).toHaveBeenCalledWith(true);
162
158
 
163
- unmountButton.simulate('click');
159
+ fireEvent.click(unmountButton);
164
160
 
165
161
  expect(spy).toHaveBeenCalledWith(false);
166
162
  expect(spy).toHaveBeenCalledTimes(2);
@@ -1,23 +1,24 @@
1
- import { shallow } from 'enzyme';
1
+ import { render } from '@testing-library/react';
2
2
  import { DateTime, Settings } from 'luxon';
3
3
  import React from 'react';
4
+ import { describe, expect, it } from 'vitest';
4
5
  import { DatePicker } from './DatePicker';
5
6
 
6
7
  describe('DatePicker', () => {
7
8
  Settings.defaultLocale = navigator.language;
8
9
 
9
10
  it('renders the component without crashing', () => {
10
- const wrapper = shallow(<DatePicker value={DateTime.local()} />);
11
+ const { container } = render(<DatePicker value={DateTime.local()} />);
11
12
 
12
- expect(wrapper).toBeTruthy();
13
+ expect(container).toBeTruthy();
13
14
  });
14
15
 
15
16
  it('accepts the value from prop', () => {
16
17
  const now = DateTime.local();
17
- const wrapper = shallow(<DatePicker value={now} />);
18
+ const { container } = render(<DatePicker value={now} />);
18
19
 
19
- expect(wrapper.find('Calendar').prop('value')).toStrictEqual(
20
- now.toJSDate(),
21
- );
20
+ // Calendar component from react-calendar should render
21
+ const calendar = container.querySelector('.react-calendar');
22
+ expect(calendar).toBeInTheDocument();
22
23
  });
23
24
  });