@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,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 { Paragraph } from './Paragraph';
4
5
 
5
6
  describe('Paragraph Tests', () => {
6
7
  it('renders the component without crashing', () => {
7
- const wrapper = shallow(<Paragraph />);
8
+ const { container } = render(<Paragraph />);
8
9
 
9
- expect(wrapper).toBeTruthy();
10
+ expect(container).toBeTruthy();
10
11
  });
11
12
  });
@@ -1,128 +1,121 @@
1
- import { shallow } from 'enzyme';
1
+ import { render, screen } from '@testing-library/react';
2
2
  import React from 'react';
3
- import { AccordionItem } from '../../Accordion';
3
+ import { describe, expect, it } from 'vitest';
4
4
  import { Section } from './Section';
5
5
 
6
6
  describe('Section Tests', () => {
7
7
  it('renders the component without crashing', () => {
8
- const wrapper = shallow(<Section />);
8
+ const { container } = render(<Section />);
9
9
 
10
- expect(wrapper).toBeTruthy();
10
+ expect(container).toBeTruthy();
11
11
  });
12
12
 
13
13
  it('should not render anything if section has no children', () => {
14
- const wrapper = shallow(<Section></Section>);
14
+ const { container } = render(<Section></Section>);
15
15
 
16
- const section = wrapper.find('.container');
16
+ const section = container.querySelector('.container');
17
17
 
18
- expect(section.exists()).toBe(false);
18
+ expect(section).not.toBeInTheDocument();
19
19
  });
20
20
 
21
21
  it('creates a class based off of the className prop', () => {
22
22
  const mockClassName = 'test-class';
23
- const wrapper = shallow(
23
+ const { container } = render(
24
24
  <Section className={mockClassName}>
25
25
  <p>test</p>
26
26
  </Section>,
27
27
  );
28
28
 
29
- const item = wrapper.find('.test-class');
29
+ const item = container.querySelector('.test-class');
30
30
 
31
- expect(item.hasClass(mockClassName)).toBe(true);
31
+ expect(item?.classList.contains(mockClassName)).toBe(true);
32
32
  });
33
33
 
34
34
  it('accepts styles', () => {
35
35
  const mockStyles: React.CSSProperties = { backgroundColor: 'blue' };
36
- const wrapper = shallow(
36
+ const { container } = render(
37
37
  <Section style={mockStyles}>
38
38
  <p>test</p>
39
39
  </Section>,
40
40
  );
41
41
 
42
- const section = wrapper.find('.container');
42
+ const section = container.querySelector('.container') as HTMLDivElement;
43
43
 
44
- expect(section.prop('style')).toBe(mockStyles);
44
+ expect(section.style.backgroundColor).toBe('blue');
45
45
  });
46
46
 
47
47
  it(`should not be toggleable if no 'title' is given`, () => {
48
- const wrapper = shallow(
48
+ const { container } = render(
49
49
  <Section>
50
50
  <p>test</p>
51
51
  </Section>,
52
52
  );
53
53
 
54
- const item = wrapper.find(AccordionItem);
54
+ const accordionItem = container.querySelector(
55
+ '[data-test-id="accordion-item"]',
56
+ );
55
57
 
56
- expect(item.exists()).toBe(false);
58
+ expect(accordionItem).not.toBeInTheDocument();
57
59
  });
58
60
 
59
61
  it(`should be toggleable if a 'title' is given`, () => {
60
- const wrapper = shallow(
62
+ const { container } = render(
61
63
  <Section title="test">
62
64
  <p>test</p>
63
65
  </Section>,
64
66
  );
65
67
 
66
- const item = wrapper.find(AccordionItem);
68
+ const accordionItem = container.querySelector(
69
+ '[data-test-id="accordion-item"]',
70
+ );
67
71
 
68
- expect(item.exists()).toBe(true);
72
+ expect(accordionItem).toBeInTheDocument();
69
73
  });
70
74
 
71
75
  it('section should be expanded by default', () => {
72
- const wrapper = shallow(
76
+ const { container } = render(
73
77
  <Section>
74
78
  <p>test</p>
75
79
  </Section>,
76
80
  );
77
81
 
78
- const section = wrapper.find('.container');
82
+ const section = container.querySelector('.container');
79
83
 
80
- expect(section.hasClass('expanded')).toBe(true);
84
+ expect(section?.classList.contains('expanded')).toBe(true);
81
85
  });
82
86
 
83
87
  it(`section is collasped if 'expandedByDefault' is set to false`, () => {
84
- const wrapper = shallow(
88
+ const { container } = render(
85
89
  <Section expandedByDefault={false}>
86
90
  <p>test</p>
87
91
  </Section>,
88
92
  );
89
93
 
90
- const section = wrapper.find('.container');
94
+ const section = container.querySelector('.container');
91
95
 
92
- expect(section.hasClass('expanded')).toBe(false);
96
+ expect(section?.classList.contains('expanded')).toBe(false);
93
97
  });
94
98
 
95
99
  it('section can be toggled when the title is clicked', () => {
96
- const wrapper = shallow(
100
+ const { container, rerender } = render(
97
101
  <Section title="test">
98
102
  <p>test</p>
99
103
  </Section>,
100
104
  );
101
105
 
102
- let section = wrapper.find('.container').first();
103
- let item = wrapper.find(AccordionItem);
104
-
105
- expect(section.hasClass('expanded')).toBe(true);
106
- expect(item.prop('isExpanded')).toBe(true);
107
-
108
- item = wrapper.find(AccordionItem);
109
- item.prop('toggleExpanded')!();
110
- wrapper.update();
106
+ let section = container.querySelector('.container');
111
107
 
112
- section = wrapper.find('.container').first();
113
- item = wrapper.find(AccordionItem);
108
+ expect(section?.classList.contains('expanded')).toBe(true);
114
109
 
115
- expect(section.hasClass('expanded')).toBe(false);
116
- expect(item.prop('isExpanded')).toBe(false);
110
+ const toggleButton = screen.getByRole('button');
111
+ toggleButton.click();
117
112
 
118
- item = wrapper.find(AccordionItem);
119
- item.prop('toggleExpanded')!();
120
- wrapper.update();
113
+ section = container.querySelector('.container');
114
+ expect(section?.classList.contains('expanded')).toBe(false);
121
115
 
122
- section = wrapper.find('.container').first();
123
- item = wrapper.find(AccordionItem);
116
+ toggleButton.click();
124
117
 
125
- expect(section.hasClass('expanded')).toBe(true);
126
- expect(item.prop('isExpanded')).toBe(true);
118
+ section = container.querySelector('.container');
119
+ expect(section?.classList.contains('expanded')).toBe(true);
127
120
  });
128
121
  });
@@ -180,13 +180,15 @@ export const useCollapse = ({
180
180
  userExpandedRef.current = true;
181
181
  autoCollapsedRef.current = false;
182
182
 
183
- setTimeout(() => {
184
- containerRef.current?.scrollIntoView({
185
- behavior: 'smooth',
186
- block: 'nearest',
187
- inline: 'end',
188
- });
189
- }, 350);
183
+ // TODO: Temporarily disable auto-scrolling to prevent jarring experience when collapsing/expanding panels in smaller screens.
184
+ // to be revisited with https://dev.azure.com/axinom/CMS/_workitems/edit/53479/
185
+ // setTimeout(() => {
186
+ // containerRef.current?.scrollIntoView({
187
+ // behavior: 'smooth',
188
+ // block: 'nearest',
189
+ // inline: 'end',
190
+ // });
191
+ // }, 350);
190
192
  }
191
193
 
192
194
  onCollapseChange?.(newState);
@@ -1,9 +1,9 @@
1
- import { mount, shallow } from 'enzyme';
1
+ import { fireEvent, render } from '@testing-library/react';
2
2
  import React from 'react';
3
3
  import { act } from 'react-dom/test-utils';
4
+ import { beforeEach, describe, expect, it } from 'vitest';
4
5
  import { noop } from '../../helpers/utils';
5
6
  import { initializeUi } from '../../initialize';
6
- import { Button } from '../Buttons';
7
7
  import { InlineMenu } from './InlineMenu';
8
8
 
9
9
  describe('InlineMenu', () => {
@@ -24,50 +24,51 @@ describe('InlineMenu', () => {
24
24
  });
25
25
 
26
26
  it('renders the component without crashing', () => {
27
- const wrapper = shallow(<InlineMenu />);
27
+ const { container } = render(<InlineMenu />);
28
28
 
29
- expect(wrapper).toBeTruthy();
29
+ expect(container).toBeTruthy();
30
30
  });
31
31
 
32
32
  it('should render button', () => {
33
- const wrapper = shallow(<InlineMenu />);
33
+ const { container } = render(<InlineMenu />);
34
34
 
35
- const button = wrapper.find(Button);
35
+ const button = container.querySelector('button');
36
36
  expect(button).toBeTruthy();
37
37
  });
38
38
 
39
39
  it('menu should toggle on button click', async () => {
40
- const wrapper = mount(<InlineMenu />);
41
- const button = wrapper.find(Button);
42
- expect(wrapper.find('.sub-menu-container').exists()).toBeFalsy();
40
+ const { container } = render(<InlineMenu />);
41
+ const button = container.querySelector('button') as HTMLButtonElement;
42
+ expect(
43
+ document.querySelector('.sub-menu-container'),
44
+ ).not.toBeInTheDocument();
43
45
  await act(async () => {
44
- button.simulate('click');
46
+ fireEvent.click(button);
45
47
  });
46
- wrapper.update();
47
- expect(wrapper.find('.sub-menu-container').exists()).toBeTruthy();
48
+ expect(document.querySelector('.sub-menu-container')).toBeInTheDocument();
48
49
  await act(async () => {
49
- button.simulate('click');
50
+ fireEvent.click(button);
50
51
  });
51
- wrapper.update();
52
- expect(wrapper.find('.sub-menu-container').exists()).toBeFalsy();
52
+ expect(
53
+ document.querySelector('.sub-menu-container'),
54
+ ).not.toBeInTheDocument();
53
55
  });
54
56
 
55
57
  it('allows an optional class to be passed in', async () => {
56
58
  const mockClass = 'test-class';
57
- const wrapper = mount(<InlineMenu className={mockClass} />);
58
- const button = wrapper.find(Button);
59
+ const { container } = render(<InlineMenu className={mockClass} />);
60
+ const button = container.querySelector('button') as HTMLButtonElement;
59
61
  await act(async () => {
60
- button.simulate('click');
62
+ fireEvent.click(button);
61
63
  });
62
- wrapper.update();
63
- const container = wrapper.find('.sub-menu-container').first();
64
+ const subMenu = document.querySelector('.sub-menu-container');
64
65
 
65
- expect(container.hasClass(mockClass)).toBe(true);
66
+ expect(subMenu?.classList.contains(mockClass)).toBe(true);
66
67
  });
67
68
 
68
69
  it(`'accepts placement prop`, () => {
69
- const wrapper = shallow(<InlineMenu placement="top" />);
70
+ const { container } = render(<InlineMenu placement="top" />);
70
71
 
71
- expect(wrapper).toBeTruthy();
72
+ expect(container).toBeTruthy();
72
73
  });
73
74
  });
@@ -116,6 +116,9 @@ export const InlineMenu: React.FC<InlineMenuProps> = ({
116
116
  onBlur={() => {
117
117
  onBlurTimeout = global.setTimeout(() => collapse(), 250);
118
118
  }}
119
+ onContextMenu={() => {
120
+ clearTimeout(onBlurTimeout);
121
+ }}
119
122
  data-test-id="inline-menu"
120
123
  >
121
124
  <Actions
@@ -1,27 +1,28 @@
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 { LandingPageHeader } from './LandingPageHeader';
4
5
 
5
6
  describe('LandingPageHeader', () => {
6
7
  it('renders the component without crashing', () => {
7
- const wrapper = shallow(
8
+ const { container } = render(
8
9
  <LandingPageHeader title="test-title" subtitle="test-title" />,
9
10
  );
10
11
 
11
- expect(wrapper).toBeTruthy();
12
+ expect(container).toBeTruthy();
12
13
  });
13
14
 
14
15
  it('renders a title and subtitle', () => {
15
16
  const mockTitle = 'test-title';
16
17
  const mockSubtitle = 'test-subtitle';
17
- const wrapper = shallow(
18
+ const { container } = render(
18
19
  <LandingPageHeader title={mockTitle} subtitle={mockSubtitle} />,
19
20
  );
20
21
 
21
- const title = wrapper.find('.title');
22
- const subtitle = wrapper.find('.subtitle');
22
+ const title = container.querySelector('.title');
23
+ const subtitle = container.querySelector('.subtitle');
23
24
 
24
- expect(title.text()).toBe(mockTitle);
25
- expect(subtitle.text()).toBe(mockSubtitle);
25
+ expect(title?.textContent).toBe(mockTitle);
26
+ expect(subtitle?.textContent).toBe(mockSubtitle);
26
27
  });
27
28
  });
@@ -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 { LandingPageTiles } from './LandingPageTiles';
5
6
  import { LandingPageItem } from './LandingPageTiles.model';
6
7
 
8
+ const renderWithRouter = (component: React.ReactElement) => {
9
+ return render(<Router>{component}</Router>);
10
+ };
11
+
7
12
  const mockItems: LandingPageItem[] = [
8
13
  {
9
14
  path: '/contentset',
@@ -35,27 +40,27 @@ const mockItems: LandingPageItem[] = [
35
40
 
36
41
  describe('LandingPageTiles', () => {
37
42
  it('renders the component without crashing', () => {
38
- const wrapper = shallow(<LandingPageTiles items={mockItems} />);
43
+ const { container } = renderWithRouter(
44
+ <LandingPageTiles items={mockItems} />,
45
+ );
39
46
 
40
- expect(wrapper).toBeTruthy();
47
+ expect(container).toBeTruthy();
41
48
  });
42
49
 
43
50
  it('renders a tile for each item in the data array', () => {
44
- const wrapper = mount(
45
- <Router>
46
- <LandingPageTiles items={mockItems} />
47
- </Router>,
51
+ const { container } = renderWithRouter(
52
+ <LandingPageTiles items={mockItems} />,
48
53
  );
49
- const tiles = wrapper.find('.container').first();
54
+ const tiles = container.querySelector('.container');
50
55
 
51
- expect(tiles.children()).toHaveLength(mockItems.length);
56
+ expect(tiles?.children.length).toBe(mockItems.length);
52
57
  });
53
58
 
54
59
  it('displays the right row height, grid gap, and amount of columns when passed into props', () => {
55
60
  const mockRowHeight = '300px';
56
61
  const mockGidGap = '35px';
57
62
  const mockColumns = 36;
58
- const wrapper = shallow(
63
+ const { container } = renderWithRouter(
59
64
  <LandingPageTiles
60
65
  items={mockItems}
61
66
  gridTemplateColumns={mockColumns}
@@ -64,21 +69,20 @@ describe('LandingPageTiles', () => {
64
69
  />,
65
70
  );
66
71
 
67
- const gridStyles = wrapper
68
- .find('.container')
69
- .first()
70
- .prop('style') as React.CSSProperties;
72
+ const gridElement = container.querySelector('.container') as HTMLElement;
71
73
 
72
- expect(gridStyles.gridAutoRows).toBe(mockRowHeight);
73
- expect(gridStyles.gridGap).toBe(mockGidGap);
74
- expect(gridStyles.gridTemplateColumns).toBe(`repeat(${mockColumns}, 1fr)`);
74
+ expect(gridElement.style.gridAutoRows).toBe(mockRowHeight);
75
+ expect(gridElement.style.gridGap).toBe(mockGidGap);
76
+ expect(gridElement.style.gridTemplateColumns).toBe(
77
+ `repeat(${mockColumns}, 1fr)`,
78
+ );
75
79
  });
76
80
 
77
81
  it('has the right minimum width, maximum width, and alignment when passed into props', () => {
78
82
  const mockMinWidth = '200px';
79
83
  const mockMaxWidth = '400px';
80
84
  const mockAlignment = 'right';
81
- const wrapper = shallow(
85
+ const { container } = renderWithRouter(
82
86
  <LandingPageTiles
83
87
  items={mockItems}
84
88
  minWidth={mockMinWidth}
@@ -87,26 +91,23 @@ describe('LandingPageTiles', () => {
87
91
  />,
88
92
  );
89
93
 
90
- const gridStyles = wrapper
91
- .find('.container')
92
- .first()
93
- .prop('style') as React.CSSProperties;
94
+ const gridElement = container.querySelector('.container') as HTMLElement;
94
95
 
95
- expect(gridStyles.minWidth).toBe(mockMinWidth);
96
- expect(gridStyles.maxWidth).toBe(mockMaxWidth);
97
- expect(gridStyles.justifySelf).toBe(mockAlignment);
96
+ expect(gridElement.style.minWidth).toBe(mockMinWidth);
97
+ expect(gridElement.style.maxWidth).toBe(mockMaxWidth);
98
+ expect(gridElement.style.justifySelf).toBe(mockAlignment);
98
99
  });
99
100
 
100
101
  it('supports children elements to be passed in', () => {
101
- const wrapper = shallow(
102
+ const { container } = renderWithRouter(
102
103
  <LandingPageTiles items={mockItems}>
103
104
  <div id="test-child"></div>
104
105
  </LandingPageTiles>,
105
106
  );
106
107
 
107
- const child = wrapper.find('#test-child');
108
+ const child = container.querySelector('#test-child');
108
109
 
109
- expect(child).toHaveLength(1);
110
+ expect(child).toBeInTheDocument();
110
111
  });
111
112
 
112
113
  // These need tests. Currently, spying on these functions and useState/useEffect is broken.
@@ -1,11 +1,9 @@
1
- import { mount, ReactWrapper, shallow } from 'enzyme';
1
+ import { render, waitFor } from '@testing-library/react';
2
2
  import React from 'react';
3
- import { act } from 'react-dom/test-utils';
4
3
  import { MemoryRouter } from 'react-router-dom';
4
+ import { describe, expect, it } from 'vitest';
5
5
  import { TileLarge, TileLargeProps } from './TileLarge';
6
6
 
7
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
8
-
9
7
  const mockProps: TileLargeProps = {
10
8
  path: 'test-path',
11
9
  label: 'test-label',
@@ -22,119 +20,128 @@ const MockIcon: React.FC = () => (
22
20
 
23
21
  describe('TileLarge', () => {
24
22
  it('renders the component without crashing', () => {
25
- const wrapper = shallow(<TileLarge {...mockProps} />);
26
- expect(wrapper).toBeTruthy();
23
+ const { container } = render(
24
+ <MemoryRouter>
25
+ <TileLarge {...mockProps} />
26
+ </MemoryRouter>,
27
+ );
28
+ expect(container).toBeTruthy();
27
29
  });
28
30
 
29
31
  it('renders the tile label and subtile', () => {
30
- const wrapper = mount(
32
+ const { container } = render(
31
33
  <MemoryRouter>
32
34
  <TileLarge {...mockProps} />
33
35
  </MemoryRouter>,
34
36
  );
35
37
 
36
- const label = wrapper.find('.label');
37
- const subtitle = wrapper.find('.subtitle');
38
+ const label = container.querySelector('.label');
39
+ const subtitle = container.querySelector('.subtitle');
38
40
 
39
- expect(label.text()).toBe(mockProps.label);
40
- expect(subtitle.text()).toBe(mockProps.subtitle);
41
+ expect(label?.textContent).toBe(mockProps.label);
42
+ expect(subtitle?.textContent).toBe(mockProps.subtitle);
41
43
  });
42
44
 
43
45
  it('renders the tile subtile when a callback function is passed', async () => {
44
- let wrapper: ReactWrapper;
45
- await act(async () => {
46
- wrapper = await mount(
47
- <MemoryRouter>
48
- <TileLarge {...mockProps} subtitle={() => Promise.resolve('135')} />
49
- </MemoryRouter>,
50
- );
51
- });
52
-
53
- const realWrapper = wrapper!;
46
+ const { container } = render(
47
+ <MemoryRouter>
48
+ <TileLarge {...mockProps} subtitle={() => Promise.resolve('135')} />
49
+ </MemoryRouter>,
50
+ );
54
51
 
55
- const subtitle = realWrapper.find('.subtitle');
56
- expect(subtitle.text()).toBe('135');
52
+ await waitFor(() => {
53
+ const subtitle = container.querySelector('.subtitle');
54
+ expect(subtitle?.textContent).toBe('135');
55
+ });
57
56
  });
58
57
 
59
58
  it('does not show a subtitle in case of an error', async () => {
60
- let wrapper: ReactWrapper;
61
- await act(async () => {
62
- wrapper = await mount(
63
- <MemoryRouter>
64
- <TileLarge {...mockProps} subtitle={() => Promise.reject('')} />
65
- </MemoryRouter>,
66
- );
67
- });
59
+ const { container } = render(
60
+ <MemoryRouter>
61
+ <TileLarge {...mockProps} subtitle={() => Promise.reject('')} />
62
+ </MemoryRouter>,
63
+ );
68
64
 
69
- const subtitle = wrapper!.find('.subtitle');
70
- expect(subtitle.text()).toBe('');
65
+ await waitFor(() => {
66
+ const subtitle = container.querySelector('.subtitle');
67
+ expect(subtitle?.textContent).toBe('');
68
+ });
71
69
  });
72
70
  it.todo('does show a loading indicator while the subtitle is loading');
73
71
 
74
72
  it('renders an empty string if no subtitle is found', () => {
75
- const wrapper = mount(
73
+ const { container } = render(
76
74
  <MemoryRouter>
77
75
  <TileLarge {...mockProps} subtitle={undefined} />
78
76
  </MemoryRouter>,
79
77
  );
80
78
 
81
- const subtitle = wrapper.find('.subtitle');
79
+ const subtitle = container.querySelector('.subtitle');
82
80
 
83
- expect(subtitle.text()).toBe('');
81
+ expect(subtitle?.textContent).toBe('');
84
82
  });
85
83
 
86
84
  it('renders an icon when passed as a string URL', () => {
87
- const wrapper = mount(
85
+ const { container } = render(
88
86
  <MemoryRouter>
89
87
  <TileLarge {...mockProps} />
90
88
  </MemoryRouter>,
91
89
  );
92
- const iconUrl = wrapper.find('img').prop('src');
90
+ const iconUrl = container.querySelector('img')?.getAttribute('src');
93
91
 
94
92
  expect(iconUrl).toBe(`${mockProps.icon}`);
95
93
  });
96
94
 
97
95
  it('renders an icon when passed as a react component', () => {
98
- const wrapper = shallow(<TileLarge {...mockProps} icon={<MockIcon />} />);
99
- const iconWrapper = wrapper.find('.icon');
100
- expect(iconWrapper.contains(<MockIcon />)).toBe(true);
96
+ const { container } = render(
97
+ <MemoryRouter>
98
+ <TileLarge {...mockProps} icon={<MockIcon />} />
99
+ </MemoryRouter>,
100
+ );
101
+ const iconWrapper = container.querySelector('.icon');
102
+ const svg = iconWrapper?.querySelector('svg');
103
+ expect(svg).toBeInTheDocument();
101
104
  });
102
105
 
103
106
  it('to attrubute is not exists disabled class should be applied when disabled', () => {
104
- const wrapper = shallow(
105
- <TileLarge {...{ ...mockProps, disabled: true }} />,
107
+ const { container } = render(
108
+ <MemoryRouter>
109
+ <TileLarge {...{ ...mockProps, disabled: true }} />
110
+ </MemoryRouter>,
106
111
  );
107
- const tile = wrapper.find('.container');
108
- const toAttr = tile.prop('to');
112
+ const tile = container.querySelector('.container');
109
113
 
110
- expect(tile.hasClass('disabled')).toBe(true);
111
- expect(toAttr).toStrictEqual({ pathname: undefined });
114
+ expect(tile?.classList.contains('disabled')).toBe(true);
112
115
  });
113
116
 
114
117
  it('creates a hyperlink using the path prop', () => {
115
- const wrapper = shallow(<TileLarge {...mockProps} />);
118
+ const { container } = render(
119
+ <MemoryRouter>
120
+ <TileLarge {...mockProps} />
121
+ </MemoryRouter>,
122
+ );
116
123
 
117
- const navLink = wrapper.find('.container').prop('to');
124
+ const navLink = container.querySelector('.container') as HTMLAnchorElement;
118
125
 
119
- expect(navLink).toEqual({ pathname: mockProps.path });
126
+ expect(navLink?.getAttribute('href')).toBe(mockProps.path);
120
127
  });
121
128
 
122
129
  it('sets row and column spans from props', () => {
123
130
  const mockColumnSpan = 3;
124
131
  const mockRowSpan = 1;
125
- const wrapper = shallow(
126
- <TileLarge
127
- {...mockProps}
128
- largeTileColumnSpan={mockColumnSpan}
129
- largeTileRowSpan={mockRowSpan}
130
- />,
132
+ const { container } = render(
133
+ <MemoryRouter>
134
+ <TileLarge
135
+ {...mockProps}
136
+ largeTileColumnSpan={mockColumnSpan}
137
+ largeTileRowSpan={mockRowSpan}
138
+ />
139
+ </MemoryRouter>,
131
140
  );
132
141
 
133
- const navStyles = wrapper
134
- .find('.container')
135
- .prop('style') as React.CSSProperties;
142
+ const navElement = container.querySelector('.container') as HTMLElement;
136
143
 
137
- expect(navStyles.gridColumn).toBe(`span ${mockColumnSpan}`);
138
- expect(navStyles.gridRow).toBe(`span ${mockRowSpan}`);
144
+ expect(navElement.style.gridColumn).toBe(`span ${mockColumnSpan}`);
145
+ expect(navElement.style.gridRow).toBe(`span ${mockRowSpan}`);
139
146
  });
140
147
  });