@moda/om 16.1.1 → 16.2.0

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 (246) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/index.cjs.js +3 -2
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.js +3 -2
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/{__mocks__ → src/__mocks__}/Icon.d.ts +0 -0
  7. package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.d.ts +0 -0
  8. package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.stories.d.ts +0 -0
  9. package/dist/{components → src/components}/AspectRatioBox/AspectRatioBox.test.d.ts +0 -0
  10. package/dist/{components → src/components}/AspectRatioBox/index.d.ts +0 -0
  11. package/dist/{components → src/components}/Badge/Badge.d.ts +0 -0
  12. package/dist/{components → src/components}/Badge/Badge.stories.d.ts +0 -0
  13. package/dist/{components → src/components}/Badge/Badge.test.d.ts +0 -0
  14. package/dist/{components → src/components}/Badge/index.d.ts +0 -0
  15. package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/Breadcrumb.d.ts +0 -0
  16. package/dist/{components → src/components}/Breadcrumbs/Breadcrumb/index.d.ts +0 -0
  17. package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.d.ts +0 -0
  18. package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.stories.d.ts +0 -0
  19. package/dist/{components → src/components}/Breadcrumbs/Breadcrumbs.test.d.ts +0 -0
  20. package/dist/{components → src/components}/Breadcrumbs/index.d.ts +0 -0
  21. package/dist/{components → src/components}/Breakpoint/Breakpoint.d.ts +0 -0
  22. package/dist/{components → src/components}/Breakpoint/Breakpoint.stories.d.ts +0 -0
  23. package/dist/{components → src/components}/Breakpoint/Breakpoint.test.d.ts +0 -0
  24. package/dist/{components → src/components}/Breakpoint/BreakpointProvider.d.ts +0 -0
  25. package/dist/{components → src/components}/Breakpoint/generateMediaQuery.d.ts +0 -0
  26. package/dist/{components → src/components}/Breakpoint/generateMediaQuery.test.d.ts +0 -0
  27. package/dist/{components → src/components}/Breakpoint/index.d.ts +0 -0
  28. package/dist/{components → src/components}/Button/Button.d.ts +0 -0
  29. package/dist/{components → src/components}/Button/Button.stories.d.ts +0 -0
  30. package/dist/{components → src/components}/Button/Button.test.d.ts +0 -0
  31. package/dist/{components → src/components}/Button/index.d.ts +0 -0
  32. package/dist/{components → src/components}/Checkbox/Checkbox.d.ts +0 -0
  33. package/dist/{components → src/components}/Checkbox/Checkbox.stories.d.ts +0 -0
  34. package/dist/{components → src/components}/Checkbox/Checkbox.test.d.ts +0 -0
  35. package/dist/{components → src/components}/Checkbox/index.d.ts +0 -0
  36. package/dist/{components → src/components}/Clickable/Clickable.d.ts +0 -0
  37. package/dist/{components → src/components}/Clickable/Clickable.stories.d.ts +0 -0
  38. package/dist/{components → src/components}/Clickable/Clickable.test.d.ts +0 -0
  39. package/dist/{components → src/components}/Clickable/index.d.ts +0 -0
  40. package/dist/{components → src/components}/ColorSwatch/ColorSwatch.d.ts +0 -0
  41. package/dist/{components → src/components}/ColorSwatch/ColorSwatch.stories.d.ts +0 -0
  42. package/dist/{components → src/components}/ColorSwatch/ColorSwatch.test.d.ts +0 -0
  43. package/dist/{components → src/components}/ColorSwatch/index.d.ts +0 -0
  44. package/dist/{components → src/components}/ColorSwatch/skuColors.d.ts +0 -0
  45. package/dist/{components → src/components}/Constrain/Constrain.d.ts +0 -0
  46. package/dist/{components → src/components}/Constrain/Constrain.stories.d.ts +0 -0
  47. package/dist/{components → src/components}/Constrain/Constrain.test.d.ts +0 -0
  48. package/dist/{components → src/components}/Constrain/ExceedConstrain.d.ts +0 -0
  49. package/dist/{components → src/components}/Constrain/ExceedConstrain.stories.d.ts +0 -0
  50. package/dist/{components → src/components}/Constrain/index.d.ts +0 -0
  51. package/dist/{components → src/components}/ControlLink/ControlLink.d.ts +0 -0
  52. package/dist/{components → src/components}/ControlLink/ControlLink.stories.d.ts +0 -0
  53. package/dist/{components → src/components}/ControlLink/ControlLink.test.d.ts +0 -0
  54. package/dist/{components → src/components}/ControlLink/index.d.ts +0 -0
  55. package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.d.ts +0 -0
  56. package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.stories.d.ts +0 -0
  57. package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInput.test.d.ts +0 -0
  58. package/dist/{components → src/components}/CreditCardNumberInput/CreditCardNumberInputField.d.ts +0 -0
  59. package/dist/{components → src/components}/CreditCardNumberInput/index.d.ts +0 -0
  60. package/dist/{components → src/components}/DefinitionList/DefinitionList.d.ts +0 -0
  61. package/dist/{components → src/components}/DefinitionList/DefinitionList.stories.d.ts +0 -0
  62. package/dist/{components → src/components}/DefinitionList/DefinitionList.test.d.ts +0 -0
  63. package/dist/{components → src/components}/DefinitionList/index.d.ts +0 -0
  64. package/dist/{components → src/components}/Divider/Divider.d.ts +0 -0
  65. package/dist/{components → src/components}/Divider/Divider.stories.d.ts +0 -0
  66. package/dist/{components → src/components}/Divider/Divider.test.d.ts +0 -0
  67. package/dist/{components → src/components}/Divider/NoLineDivider.d.ts +0 -0
  68. package/dist/{components → src/components}/Divider/TwoLineDivider.d.ts +0 -0
  69. package/dist/{components → src/components}/Divider/index.d.ts +0 -0
  70. package/dist/{components → src/components}/Expandable/Expandable.d.ts +0 -0
  71. package/dist/{components → src/components}/Expandable/Expandable.stories.d.ts +0 -0
  72. package/dist/{components → src/components}/Expandable/Expandable.test.d.ts +0 -0
  73. package/dist/{components → src/components}/Expandable/index.d.ts +0 -0
  74. package/dist/{components → src/components}/Field/Field.d.ts +0 -0
  75. package/dist/{components → src/components}/Field/Field.stories.d.ts +0 -0
  76. package/dist/{components → src/components}/Field/Field.test.d.ts +0 -0
  77. package/dist/{components → src/components}/Field/index.d.ts +0 -0
  78. package/dist/{components → src/components}/Label/Label.d.ts +0 -0
  79. package/dist/{components → src/components}/Label/Label.stories.d.ts +0 -0
  80. package/dist/{components → src/components}/Label/Label.test.d.ts +0 -0
  81. package/dist/{components → src/components}/Label/index.d.ts +0 -0
  82. package/dist/{components → src/components}/Loading/Loading.d.ts +0 -0
  83. package/dist/{components → src/components}/Loading/Loading.stories.d.ts +0 -0
  84. package/dist/{components → src/components}/Loading/Loading.test.d.ts +0 -0
  85. package/dist/{components → src/components}/Loading/index.d.ts +0 -0
  86. package/dist/{components → src/components}/LoadingBalls/LoadingBalls.d.ts +0 -0
  87. package/dist/{components → src/components}/LoadingBalls/LoadingBalls.stories.d.ts +0 -0
  88. package/dist/{components → src/components}/LoadingBalls/index.d.ts +0 -0
  89. package/dist/{components → src/components}/Modal/Modal.d.ts +0 -0
  90. package/dist/{components → src/components}/Modal/Modal.stories.d.ts +0 -0
  91. package/dist/{components → src/components}/Modal/Modal.test.d.ts +0 -0
  92. package/dist/{components → src/components}/Modal/index.d.ts +0 -0
  93. package/dist/{components → src/components}/ModalOverlay/ModalOverlay.d.ts +0 -0
  94. package/dist/{components → src/components}/ModalOverlay/ModalOverlay.stories.d.ts +0 -0
  95. package/dist/{components → src/components}/ModalOverlay/ModalOverlay.test.d.ts +0 -0
  96. package/dist/{components → src/components}/ModalOverlay/index.d.ts +0 -0
  97. package/dist/{components → src/components}/Overlay/Overlay.d.ts +0 -0
  98. package/dist/{components → src/components}/Overlay/Overlay.stories.d.ts +0 -0
  99. package/dist/{components → src/components}/Overlay/Overlay.test.d.ts +0 -0
  100. package/dist/{components → src/components}/Overlay/index.d.ts +0 -0
  101. package/dist/{components → src/components}/Paginator/Paginator.d.ts +0 -0
  102. package/dist/{components → src/components}/Paginator/Paginator.stories.d.ts +0 -0
  103. package/dist/{components → src/components}/Paginator/index.d.ts +0 -0
  104. package/dist/{components → src/components}/PasswordInput/PasswordInput.d.ts +0 -0
  105. package/dist/{components → src/components}/PasswordInput/PasswordInput.stories.d.ts +0 -0
  106. package/dist/{components → src/components}/PasswordInput/index.d.ts +0 -0
  107. package/dist/{components → src/components}/Popover/Popover.d.ts +0 -0
  108. package/dist/{components → src/components}/Popover/Popover.stories.d.ts +0 -0
  109. package/dist/{components → src/components}/Popover/Popover.test.d.ts +0 -0
  110. package/dist/{components → src/components}/Popover/index.d.ts +0 -0
  111. package/dist/{components → src/components}/PromoBanner/PromoBanner.d.ts +0 -0
  112. package/dist/{components → src/components}/PromoBanner/PromoBanner.stories.d.ts +0 -0
  113. package/dist/{components → src/components}/PromoBanner/PromoBanner.test.d.ts +0 -0
  114. package/dist/{components → src/components}/PromoBanner/index.d.ts +0 -0
  115. package/dist/{components → src/components}/RadioButton/RadioButton.d.ts +0 -0
  116. package/dist/{components → src/components}/RadioButton/RadioButton.stories.d.ts +0 -0
  117. package/dist/{components → src/components}/RadioButton/RadioButton.test.d.ts +0 -0
  118. package/dist/{components → src/components}/RadioButton/index.d.ts +0 -0
  119. package/dist/{components → src/components}/SearchInput/SearchInput.d.ts +0 -0
  120. package/dist/{components → src/components}/SearchInput/SearchInput.stories.d.ts +0 -0
  121. package/dist/{components → src/components}/SearchInput/SearchInput.test.d.ts +0 -0
  122. package/dist/{components → src/components}/SearchInput/index.d.ts +0 -0
  123. package/dist/{components → src/components}/Select/MultiSelect.d.ts +0 -0
  124. package/dist/{components → src/components}/Select/Select.d.ts +0 -0
  125. package/dist/{components → src/components}/Select/Select.stories.d.ts +0 -0
  126. package/dist/{components → src/components}/Select/Select.test.d.ts +0 -0
  127. package/dist/{components → src/components}/Select/SelectLabel.d.ts +0 -0
  128. package/dist/{components → src/components}/Select/SelectOption.d.ts +0 -0
  129. package/dist/{components → src/components}/Select/SelectOptions.d.ts +0 -0
  130. package/dist/{components → src/components}/Select/index.d.ts +0 -0
  131. package/dist/{components → src/components}/Select/useSelect.d.ts +0 -0
  132. package/dist/{components → src/components}/SelectableButton/SelectableButton.d.ts +0 -0
  133. package/dist/{components → src/components}/SelectableButton/SelectableButton.stories.d.ts +0 -0
  134. package/dist/{components → src/components}/SelectableButton/SelectableButton.test.d.ts +0 -0
  135. package/dist/{components → src/components}/SelectableButton/index.d.ts +0 -0
  136. package/dist/{components → src/components}/Shape/ArcWindow.d.ts +0 -0
  137. package/dist/{components → src/components}/Shape/Bradley.d.ts +0 -0
  138. package/dist/{components → src/components}/Shape/Brancusi.d.ts +0 -0
  139. package/dist/{components → src/components}/Shape/Circle.d.ts +0 -0
  140. package/dist/{components → src/components}/Shape/Diamond.d.ts +0 -0
  141. package/dist/{components → src/components}/Shape/Keyhole.d.ts +0 -0
  142. package/dist/{components → src/components}/Shape/Mirror.d.ts +0 -0
  143. package/dist/{components → src/components}/Shape/Oval.d.ts +0 -0
  144. package/dist/{components → src/components}/Shape/Shape.d.ts +0 -0
  145. package/dist/{components → src/components}/Shape/Shape.stories.d.ts +0 -0
  146. package/dist/{components → src/components}/Shape/Triangle.d.ts +0 -0
  147. package/dist/{components → src/components}/Shape/Window.d.ts +0 -0
  148. package/dist/{components → src/components}/Shape/index.d.ts +0 -0
  149. package/dist/{components → src/components}/Stack/Stack.d.ts +0 -0
  150. package/dist/{components → src/components}/Stack/Stack.stories.d.ts +0 -0
  151. package/dist/{components → src/components}/Stack/Stack.test.d.ts +0 -0
  152. package/dist/{components → src/components}/Stack/index.d.ts +0 -0
  153. package/dist/{components → src/components}/Tabs/Tab.d.ts +0 -0
  154. package/dist/{components → src/components}/Tabs/TabList.d.ts +0 -0
  155. package/dist/{components → src/components}/Tabs/TabPanel.d.ts +0 -0
  156. package/dist/{components → src/components}/Tabs/TabPanels.d.ts +0 -0
  157. package/dist/{components → src/components}/Tabs/Tabs.d.ts +0 -0
  158. package/dist/{components → src/components}/Tabs/Tabs.stories.d.ts +0 -0
  159. package/dist/{components → src/components}/Tabs/Tabs.test.d.ts +0 -0
  160. package/dist/{components → src/components}/Tabs/index.d.ts +0 -0
  161. package/dist/{components → src/components}/Tag/Tag.d.ts +0 -0
  162. package/dist/{components → src/components}/Tag/Tag.stories.d.ts +0 -0
  163. package/dist/{components → src/components}/Tag/Tag.test.d.ts +0 -0
  164. package/dist/{components → src/components}/Tag/index.d.ts +0 -0
  165. package/dist/{components → src/components}/Text/Text.d.ts +0 -0
  166. package/dist/{components → src/components}/Text/Text.stories.d.ts +0 -0
  167. package/dist/{components → src/components}/Text/Text.test.d.ts +0 -0
  168. package/dist/{components → src/components}/Text/index.d.ts +0 -0
  169. package/dist/{components → src/components}/TextInput/TextInput.d.ts +0 -0
  170. package/dist/{components → src/components}/TextInput/TextInput.stories.d.ts +0 -0
  171. package/dist/{components → src/components}/TextInput/TextInput.test.d.ts +0 -0
  172. package/dist/{components → src/components}/TextInput/index.d.ts +0 -0
  173. package/dist/{components → src/components}/Textarea/Textarea.d.ts +0 -0
  174. package/dist/{components → src/components}/Textarea/Textarea.stories.d.ts +0 -0
  175. package/dist/{components → src/components}/Textarea/Textarea.test.d.ts +0 -0
  176. package/dist/{components → src/components}/Textarea/index.d.ts +0 -0
  177. package/dist/{components → src/components}/Toast/Toast.d.ts +0 -0
  178. package/dist/{components → src/components}/Toast/Toast.stories.d.ts +0 -0
  179. package/dist/{components → src/components}/Toast/Toast.test.d.ts +0 -0
  180. package/dist/{components → src/components}/Toast/index.d.ts +0 -0
  181. package/dist/{components → src/components}/VerticalDivider/VerticalDivider.d.ts +0 -0
  182. package/dist/{components → src/components}/VerticalDivider/VerticalDivider.stories.d.ts +0 -0
  183. package/dist/{components → src/components}/VerticalDivider/VerticalDivider.test.d.ts +0 -0
  184. package/dist/{components → src/components}/VerticalDivider/index.d.ts +0 -0
  185. package/dist/{components → src/components}/index.d.ts +0 -0
  186. package/dist/{hooks → src/hooks}/index.d.ts +0 -0
  187. package/dist/{hooks → src/hooks}/useBreakpoint.d.ts +0 -0
  188. package/dist/{hooks → src/hooks}/useClickOutside.d.ts +0 -0
  189. package/dist/{hooks → src/hooks}/useKeyboardListNavigation.d.ts +0 -0
  190. package/dist/{hooks → src/hooks}/useKeyboardListNavigation.spec.d.ts +0 -0
  191. package/dist/{hooks → src/hooks}/useUpdateEffect.d.ts +0 -0
  192. package/dist/{index.d.ts → src/index.d.ts} +0 -0
  193. package/dist/{mixins → src/mixins}/font-smoothing/font-smoothing.stories.d.ts +0 -0
  194. package/dist/{mixins → src/mixins}/overflow-scroll/overflow-scroll.stories.d.ts +0 -0
  195. package/dist/{mixins → src/mixins}/stack/stack.stories.d.ts +0 -0
  196. package/dist/{mixins → src/mixins}/thin-underline/thin-underline.stories.d.ts +0 -0
  197. package/dist/{mixins → src/mixins}/visually-hidden/visually-hidden.stories.d.ts +0 -0
  198. package/dist/{utilities → src/utilities}/States/State.d.ts +0 -0
  199. package/dist/{utilities → src/utilities}/States/States.d.ts +0 -0
  200. package/dist/{utilities → src/utilities}/States/StatesProps.d.ts +0 -0
  201. package/dist/{utilities → src/utilities}/States/index.d.ts +0 -0
  202. package/dist/{utilities → src/utilities}/States/isRenderProps.d.ts +0 -0
  203. package/dist/{utilities → src/utilities}/States/stringifyProps.d.ts +0 -0
  204. package/dist/{utilities → src/utilities}/index.d.ts +0 -0
  205. package/dist/{utilities → src/utilities}/omit.d.ts +0 -0
  206. package/dist/{utilities → src/utilities}/sample.d.ts +0 -0
  207. package/dist/test/mocks/matchMedia.d.ts +1 -0
  208. package/dist/test/setupTests.d.ts +3 -0
  209. package/package.json +15 -14
  210. package/src/components/AspectRatioBox/AspectRatioBox.test.tsx +3 -3
  211. package/src/components/Badge/Badge.test.tsx +5 -12
  212. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +5 -5
  213. package/src/components/Breakpoint/Breakpoint.test.tsx +7 -8
  214. package/src/components/Button/Button.test.tsx +14 -3
  215. package/src/components/Checkbox/Checkbox.test.tsx +10 -12
  216. package/src/components/Clickable/Clickable.test.tsx +3 -3
  217. package/src/components/ColorSwatch/ColorSwatch.test.tsx +3 -5
  218. package/src/components/Constrain/Constrain.test.tsx +4 -4
  219. package/src/components/ControlLink/ControlLink.test.tsx +10 -12
  220. package/src/components/CreditCardNumberInput/CreditCardNumberInput.test.tsx +16 -16
  221. package/src/components/DefinitionList/DefinitionList.test.tsx +4 -3
  222. package/src/components/Divider/Divider.test.tsx +5 -4
  223. package/src/components/Expandable/Expandable.test.tsx +17 -6
  224. package/src/components/Field/Field.test.tsx +21 -30
  225. package/src/components/Label/Label.test.tsx +3 -3
  226. package/src/components/Loading/Loading.test.tsx +3 -5
  227. package/src/components/Modal/Modal.test.tsx +6 -7
  228. package/src/components/ModalOverlay/ModalOverlay.test.tsx +9 -9
  229. package/src/components/Overlay/Overlay.test.tsx +3 -3
  230. package/src/components/Popover/Popover.test.tsx +9 -6
  231. package/src/components/PromoBanner/PromoBanner.test.tsx +3 -3
  232. package/src/components/RadioButton/RadioButton.test.tsx +6 -10
  233. package/src/components/SearchInput/SearchInput.test.tsx +10 -6
  234. package/src/components/Select/Select.stories.tsx +2 -1
  235. package/src/components/Select/Select.test.tsx +8 -8
  236. package/src/components/Select/Select.tsx +6 -1
  237. package/src/components/SelectableButton/SelectableButton.test.tsx +3 -3
  238. package/src/components/Stack/Stack.test.tsx +6 -4
  239. package/src/components/Tabs/Tabs.test.tsx +4 -5
  240. package/src/components/Tag/Tag.test.tsx +1 -1
  241. package/src/components/Text/Text.test.tsx +3 -5
  242. package/src/components/TextInput/TextInput.test.tsx +4 -5
  243. package/src/components/Textarea/Textarea.test.tsx +10 -15
  244. package/src/components/Toast/Toast.test.tsx +1 -1
  245. package/src/components/VerticalDivider/VerticalDivider.test.tsx +6 -7
  246. package/src/hooks/useKeyboardListNavigation.spec.ts +24 -63
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moda/om",
3
- "version": "16.1.1",
3
+ "version": "16.2.0",
4
4
  "description": "Moda Operandi design system",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -71,21 +71,21 @@
71
71
  "@rollup/plugin-babel": "^5.2.3",
72
72
  "@rollup/plugin-commonjs": "^22.0.0",
73
73
  "@rollup/plugin-node-resolve": "^13.0.6",
74
- "@storybook/addon-actions": "^6.5.0-beta.1",
75
- "@storybook/addon-essentials": "^6.5.0-beta.1",
76
- "@storybook/addon-links": "^6.5.0-beta.1",
74
+ "@storybook/addon-actions": "^6.5.6",
75
+ "@storybook/addon-essentials": "^6.5.6",
76
+ "@storybook/addon-links": "^6.5.6",
77
77
  "@storybook/addon-postcss": "^2.0.0",
78
- "@storybook/addon-viewport": "^6.5.0-beta.1",
79
- "@storybook/addons": "^6.5.0-beta.1",
80
- "@storybook/builder-webpack5": "^6.5.0-beta.1",
81
- "@storybook/manager-webpack5": "^6.5.0-beta.1",
82
- "@storybook/react": "^6.5.0-beta.1",
78
+ "@storybook/addon-viewport": "^6.5.6",
79
+ "@storybook/addons": "^6.5.6",
80
+ "@storybook/builder-webpack5": "^6.5.6",
81
+ "@storybook/manager-webpack5": "^6.5.6",
82
+ "@storybook/react": "^6.5.6",
83
+ "@testing-library/jest-dom": "^5.16.4",
83
84
  "@testing-library/react": "^13.2.0",
84
85
  "@testing-library/user-event": "^14.1.1",
85
86
  "@types/cheerio": "^0.22.22",
86
87
  "@types/credit-card-type": "^9.0.0",
87
- "@types/enzyme": "^3.10.3",
88
- "@types/jest": "^27.5.1",
88
+ "@types/jest": "^28.1.0",
89
89
  "@types/ramda": "^0.28.0",
90
90
  "@types/react": "^18.0.9",
91
91
  "@types/react-dom": "^18.0.1",
@@ -93,22 +93,23 @@
93
93
  "@types/react-router-dom": "^5.1.4",
94
94
  "@typescript-eslint/eslint-plugin": "^5.23.0",
95
95
  "@typescript-eslint/parser": "^5.23.0",
96
- "@wojtekmaj/enzyme-adapter-react-17": "^0.6.0",
97
96
  "autoprefixer": "^10.0.4",
98
97
  "babel-loader": "^8.1.0",
99
98
  "commitizen": "^4.0.3",
100
99
  "css-loader": "^6.0.0",
101
100
  "cz-conventional-changelog": "^3.3.0",
102
- "enzyme": "^3.10.0",
103
101
  "eslint": "^8.15.0",
102
+ "eslint-plugin-jest-dom": "^4.0.2",
104
103
  "eslint-plugin-react": "^7.18.3",
105
104
  "eslint-plugin-react-hooks": "^4.3.0",
105
+ "eslint-plugin-testing-library": "^5.5.1",
106
106
  "husky": "^8.0.1",
107
107
  "identity-obj-proxy": "^3.0.0",
108
108
  "ignore-not-found-export-webpack-plugin": "^1.0.1",
109
109
  "jest": "^28.1.0",
110
110
  "jest-environment-jsdom": "^28.1.0",
111
- "lint-staged": "^12.0.2",
111
+ "jest-matchmedia-mock": "^1.1.0",
112
+ "lint-staged": "^13.0.0",
112
113
  "node-sass": "^7.0.0",
113
114
  "node-sass-package-importer": "^5.3.2",
114
115
  "pinst": "^3.0.0",
@@ -1,15 +1,15 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { AspectRatioBox } from './AspectRatioBox';
5
5
 
6
6
  describe('AspectRatioBox', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(
8
+ render(
9
9
  <AspectRatioBox maxHeight={100} maxWidth={100}>
10
10
  Hello
11
11
  </AspectRatioBox>
12
12
  );
13
- expect(component.text()).toEqual('Hello');
13
+ expect(screen.getByText('Hello')).toBeVisible();
14
14
  });
15
15
  });
@@ -1,23 +1,16 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Badge } from './Badge';
5
5
 
6
6
  describe('Badge', () => {
7
7
  it('supports custom children', () => {
8
- const component = shallow(<Badge>Custom Text - 1</Badge>);
9
- expect(component.html()).toEqual('<span class="Badge">Custom Text - 1</span>');
8
+ render(<Badge>Custom Text - 1</Badge>);
9
+ expect(screen.getByText('Custom Text - 1')).toBeVisible();
10
10
  });
11
11
 
12
12
  it('supports custom themes and children', () => {
13
- const component = shallow(<Badge theme='klein-blue'>Custom Text - 2</Badge>);
14
- expect(component.html()).toEqual(
15
- '<span class="Badge Badge--klein-blue">Custom Text - 2</span>'
16
- );
17
- });
18
-
19
- it('allows for arbitrary children', () => {
20
- const component = shallow(<Badge>Hello</Badge>);
21
- expect(component.text()).toEqual('Hello');
13
+ render(<Badge theme='klein-blue'>Custom Text - 2</Badge>);
14
+ expect(screen.getByText('Custom Text - 2')).toHaveClass('Badge--klein-blue');
22
15
  });
23
16
  });
@@ -1,19 +1,19 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Breadcrumbs, Breadcrumb } from './index';
5
5
 
6
6
  describe('Breadcrumbs', () => {
7
7
  it('wraps elements with microdata tags', () => {
8
- const component = shallow(
8
+ render(
9
9
  <Breadcrumbs>
10
10
  <Breadcrumb href='/one'>One</Breadcrumb>
11
11
  <Breadcrumb href='/two'>Two</Breadcrumb>
12
12
  <Breadcrumb>Three</Breadcrumb>
13
13
  </Breadcrumbs>
14
14
  );
15
- expect(component.html()).toEqual(
16
- '<ol itemscope="" itemType="http://schema.org/BreadcrumbList" class="Breadcrumbs"><li class="Breadcrumb" itemProp="itemListElement" itemscope="" itemType="http://schema.org/ListItem"><a itemProp="item" href="/one" class="Clickable ControlLink ControlLink--underlined"><span itemProp="name">One</span></a><meta itemProp="position" content="1"/></li><li class="Breadcrumb" itemProp="itemListElement" itemscope="" itemType="http://schema.org/ListItem"><a itemProp="item" href="/two" class="Clickable ControlLink ControlLink--underlined"><span itemProp="name">Two</span></a><meta itemProp="position" content="2"/></li><li class="Breadcrumb" itemProp="itemListElement" itemscope="" itemType="http://schema.org/ListItem"><span itemProp="name">Three</span><meta itemProp="position" content="3"/></li></ol>'
17
- );
15
+ expect(screen.getAllByRole('listitem').at(0)).toHaveAttribute('itemprop');
16
+ expect(screen.getAllByRole('listitem').at(0)).toHaveAttribute('itemscope');
17
+ expect(screen.getAllByRole('listitem').at(0)).toHaveAttribute('itemtype');
18
18
  });
19
19
  });
@@ -1,18 +1,17 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Breakpoint } from './Breakpoint';
5
5
 
6
6
  describe('Breakpoint', () => {
7
- // TODO: Investigate how to test media queries in this environment
8
- xit('renders correctly', () => {
9
- const breakpoint = shallow(
7
+ it('renders correctly', () => {
8
+ render(
10
9
  <>
11
- <Breakpoint gt='sm'>Visible on mobile</Breakpoint>
12
- <Breakpoint lt='sm'>Visible on desktop</Breakpoint>
10
+ <Breakpoint gt='md'>Visible on mobile</Breakpoint>
11
+ <Breakpoint lt='md'>Visible on desktop</Breakpoint>
13
12
  </>
14
13
  );
15
- expect(breakpoint.text()).toContain('Visible on mobile');
16
- expect(breakpoint.text()).not.toContain('Visible on desktop');
14
+ expect(screen.getByText('Visible on desktop')).toBeVisible();
15
+ expect(screen.queryByText('Visible on mobile')).not.toBeInTheDocument();
17
16
  });
18
17
  });
@@ -1,11 +1,22 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
3
4
 
4
5
  import { Button } from './Button';
5
6
 
6
7
  describe('Button', () => {
7
8
  it('renders correctly', () => {
8
- const button = shallow(<Button>Click me</Button>);
9
- expect(button.text()).toEqual('Click me');
9
+ render(<Button>Click me</Button>);
10
+ expect(screen.getByRole('button', { name: 'Click me' })).toBeVisible();
11
+ });
12
+
13
+ it('calls onClick when clicked', async () => {
14
+ const user = userEvent.setup();
15
+ const onClick = jest.fn();
16
+
17
+ render(<Button onClick={onClick}>Click me</Button>);
18
+
19
+ await user.click(screen.getByRole('button', { name: 'Click me' }));
20
+ expect(onClick).toBeCalled();
10
21
  });
11
22
  });
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import userEvent from '@testing-library/user-event';
4
4
 
5
5
  import { Checkbox } from './Checkbox';
@@ -7,33 +7,31 @@ import { Checkbox } from './Checkbox';
7
7
  describe('Checkbox', () => {
8
8
  it('works correctly with checked attribute (controlled)', async () => {
9
9
  const handleChange = jest.fn();
10
- const { getByRole, getByTestId, rerender } = render(
10
+ const { rerender } = render(
11
11
  <Checkbox data-testid='checkbox' checked onChange={handleChange} />
12
12
  );
13
13
 
14
- expect((getByRole('checkbox') as HTMLInputElement).checked).toBe(true);
14
+ expect(screen.getByRole('checkbox') as HTMLInputElement).toBeChecked();
15
15
 
16
- await userEvent.click(getByTestId('checkbox'));
16
+ await userEvent.click(screen.getByTestId('checkbox'));
17
17
 
18
18
  expect(handleChange).toBeCalled();
19
- expect((getByRole('checkbox') as HTMLInputElement).checked).toBe(true);
19
+ expect(screen.getByRole('checkbox') as HTMLInputElement).toBeChecked();
20
20
 
21
21
  rerender(<Checkbox data-testid='checkbox' checked={false} onChange={handleChange} />);
22
22
 
23
- expect((getByRole('checkbox') as HTMLInputElement).checked).toBe(false);
23
+ expect(screen.getByRole('checkbox') as HTMLInputElement).not.toBeChecked();
24
24
  });
25
25
 
26
26
  it('works correctly with defaultChecked attribute (uncontrolled)', async () => {
27
27
  const handleChange = jest.fn();
28
- const { getByRole, getByTestId } = render(
29
- <Checkbox data-testid='checkbox' defaultChecked={false} onChange={handleChange} />
30
- );
28
+ render(<Checkbox data-testid='checkbox' defaultChecked={false} onChange={handleChange} />);
31
29
 
32
- expect((getByRole('checkbox') as HTMLInputElement).checked).toBe(false);
30
+ expect(screen.getByRole('checkbox') as HTMLInputElement).not.toBeChecked();
33
31
 
34
- await userEvent.click(getByTestId('checkbox'));
32
+ await userEvent.click(screen.getByTestId('checkbox'));
35
33
 
36
34
  expect(handleChange).toBeCalled();
37
- expect((getByRole('checkbox') as HTMLInputElement).checked).toBe(true);
35
+ expect(screen.getByRole('checkbox') as HTMLInputElement).toBeChecked();
38
36
  });
39
37
  });
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Clickable } from './Clickable';
5
5
 
6
6
  describe('Clickable', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<Clickable>Hello</Clickable>);
9
- expect(component.text()).toEqual('Hello');
8
+ render(<Clickable>Hello</Clickable>);
9
+ expect(screen.getByRole('button', { name: 'Hello' })).toBeVisible();
10
10
  });
11
11
  });
@@ -1,13 +1,11 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { ColorSwatch } from './ColorSwatch';
5
5
 
6
6
  describe('ColorSwatch', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<ColorSwatch color='nude' />);
9
- expect(component.html()).toEqual(
10
- '<button class="Clickable ColorSwatch"><div class="ColorSwatch__chip" style="background-color:#eee4d7"></div></button>'
11
- );
8
+ render(<ColorSwatch color='nude' />);
9
+ expect(screen.getByRole('button')).toBeVisible();
12
10
  });
13
11
  });
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Constrain } from './Constrain';
5
5
 
6
6
  describe('Constrain', () => {
7
- xit('renders correctly', () => {
8
- const component = shallow(<Constrain>Hello</Constrain>);
9
- expect(component.text()).toContain('Hello');
7
+ it('renders correctly', () => {
8
+ render(<Constrain>Hello</Constrain>);
9
+ expect(screen.getByText('Hello')).toBeVisible();
10
10
  });
11
11
  });
@@ -1,27 +1,25 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { ControlLink } from './ControlLink';
5
5
 
6
6
  describe('ControlLink', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<ControlLink> click me! </ControlLink>);
9
- expect(component.html()).toEqual(
10
- '<button class="Clickable ControlLink ControlLink--underlined"> click me! </button>'
11
- );
8
+ render(<ControlLink> click me! </ControlLink>);
9
+ expect(screen.getByRole('button', { name: 'click me!' })).toBeVisible();
10
+ expect(screen.getByRole('button', { name: 'click me!' })).toBeEnabled();
12
11
  });
13
12
 
14
13
  it('renders correctly while disabled', () => {
15
- const component = shallow(<ControlLink disabled> do not click me! </ControlLink>);
16
- expect(component.html()).toEqual(
17
- '<button class="Clickable Clickable--disabled ControlLink ControlLink--underlined ControlLink--disabled" disabled=""> do not click me! </button>'
18
- );
14
+ render(<ControlLink disabled> do not click me! </ControlLink>);
15
+ expect(screen.getByRole('button', { name: 'do not click me!' })).toBeDisabled();
19
16
  });
20
17
 
21
18
  it('renders correctly while underlined', () => {
22
- const component = shallow(<ControlLink underlined> click me! </ControlLink>);
23
- expect(component.html()).toEqual(
24
- '<button class="Clickable ControlLink ControlLink--underlined"> click me! </button>'
19
+ render(<ControlLink underlined> click me! </ControlLink>);
20
+ expect(screen.getByRole('button', { name: 'click me!' })).toBeVisible();
21
+ expect(screen.getByRole('button', { name: 'click me!' })).toHaveClass(
22
+ 'ControlLink--underlined'
25
23
  );
26
24
  });
27
25
  });
@@ -1,41 +1,41 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import userEvent from '@testing-library/user-event';
4
4
  import { CreditCardNumberInput } from './CreditCardNumberInput';
5
5
 
6
6
  describe('credit card number input', () => {
7
7
  it('renders without errors', () => {
8
- const { getByLabelText } = render(<CreditCardNumberInput label='Card Number' />);
9
- const input = getByLabelText('Card Number');
10
- expect(input).toBeTruthy();
8
+ render(<CreditCardNumberInput label='Card Number' />);
9
+ const input = screen.getByLabelText('Card Number');
10
+ expect(input).toBeInTheDocument();
11
11
  });
12
12
 
13
13
  // TODO: userEvent.type does not work here for some reason
14
- xit('does not allow non-numeric characters', () => {
15
- const { getByLabelText } = render(<CreditCardNumberInput label='Card Number' />);
16
- const input = getByLabelText('Card Number') as HTMLInputElement;
14
+ xit('does not allow non-numeric characters', async () => {
15
+ render(<CreditCardNumberInput label='Card Number' />);
16
+ const input = screen.getByLabelText('Card Number') as HTMLInputElement;
17
17
 
18
- userEvent.type(input, 'foo1234');
18
+ await userEvent.type(input, 'foo1234');
19
19
 
20
20
  expect(input.value).toBe('1234 ____ ____ ____');
21
21
  });
22
22
 
23
23
  // TODO: userEvent.type does not work here for some reason
24
- xit('puts spaces between the numbers', () => {
25
- const { getByLabelText } = render(<CreditCardNumberInput label='Card Number' />);
26
- const input = getByLabelText('Card Number') as HTMLInputElement;
24
+ xit('puts spaces between the numbers', async () => {
25
+ render(<CreditCardNumberInput label='Card Number' />);
26
+ const input = screen.getByLabelText('Card Number') as HTMLInputElement;
27
27
 
28
- userEvent.type(input, '5510000000000000');
28
+ await userEvent.type(input, '5510000000000000');
29
29
 
30
30
  expect(input.value).toBe('5510 0000 0000 0000');
31
31
  });
32
32
 
33
33
  // TODO: userEvent.type does not work here for some reason
34
- xit('does not allow more characters than required', () => {
35
- const { getByLabelText } = render(<CreditCardNumberInput label='Card Number' />);
36
- const input = getByLabelText('Card Number') as HTMLInputElement;
34
+ xit('does not allow more characters than required', async () => {
35
+ render(<CreditCardNumberInput label='Card Number' />);
36
+ const input = screen.getByLabelText('Card Number') as HTMLInputElement;
37
37
 
38
- userEvent.type(input, '5510000000000000251');
38
+ await userEvent.type(input, '5510000000000000251');
39
39
 
40
40
  expect(input.value).toBe('5510 0000 0000 0000');
41
41
  });
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { DefinitionList } from './DefinitionList';
5
5
 
6
6
  describe('DefinitionList', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<DefinitionList term='Foo'>Bar</DefinitionList>);
9
- expect(component.text()).toEqual('FooBar');
8
+ render(<DefinitionList term='Foo'>Bar</DefinitionList>);
9
+ expect(screen.getByText('Foo')).toBeVisible();
10
+ expect(screen.getByText('Bar')).toBeVisible();
10
11
  });
11
12
  });
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Divider } from './Divider';
5
5
 
6
6
  describe('Divider', () => {
7
7
  it('renders correctly', () => {
8
- const component = mount(<Divider style={{ padding: '30px 0' }} text='Hello' />);
9
- expect(component.text()).toEqual('Hello');
10
- expect(component.html()).toContain('style="padding: 30px 0px;"');
8
+ render(<Divider style={{ padding: '30px 0' }} text='Hello' />);
9
+ expect(screen.getByText('Hello')).toBeVisible();
10
+ // eslint-disable-next-line testing-library/no-node-access
11
+ expect(screen.getByText('Hello').parentNode).toHaveStyle('padding: 30px 0px;');
11
12
  });
12
13
  });
@@ -1,13 +1,24 @@
1
1
  import React from 'react';
2
- import { mount } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
3
4
 
4
5
  import { Expandable } from './Expandable';
5
6
 
6
7
  describe('Expandable', () => {
7
- it('expands when clicked', () => {
8
- const component = mount(<Expandable name='Hello'>Goodbye</Expandable>);
9
- expect(component.html()).not.toContain('expanded');
10
- component.find('button').simulate('click');
11
- expect(component.html()).toContain('expanded');
8
+ it('expands when clicked', async () => {
9
+ const user = userEvent.setup();
10
+
11
+ render(
12
+ <Expandable virtual name='Hello'>
13
+ Goodbye
14
+ </Expandable>
15
+ );
16
+
17
+ expect(screen.getByText('Hello')).toBeVisible();
18
+ expect(screen.queryByText('Goodbye')).not.toBeInTheDocument();
19
+
20
+ await user.click(screen.getByRole('button'));
21
+
22
+ expect(screen.getByText('Goodbye')).toBeVisible();
12
23
  });
13
24
  });
@@ -1,75 +1,66 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Field } from './Field';
5
5
  import { Select } from '../Select';
6
6
 
7
7
  describe('Field', () => {
8
8
  it('renders correctly', () => {
9
- const component = shallow(<Field placeholder='Placeholder' defaultValue='Hello' />);
9
+ render(<Field placeholder='Placeholder' defaultValue='Hello' />);
10
10
 
11
- expect(component.html()).toEqual(
12
- '<label class="Field"><span class="Field__context"><input class="TextInput" placeholder="Placeholder" aria-label="Placeholder" value="Hello"/></span></label>'
13
- );
11
+ expect(screen.getByRole('textbox')).toBeVisible();
12
+ expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Placeholder');
14
13
  });
15
14
 
16
15
  it('renders with a label', () => {
17
- const component = shallow(
18
- <Field placeholder='Placeholder' defaultValue='Hello' label='Label' />
19
- );
16
+ render(<Field placeholder='Placeholder' defaultValue='Hello' label='Label' />);
20
17
 
21
- expect(component.html()).toEqual(
22
- '<label class="Field"><span class="Field__label">Label</span><span class="Field__context"><input class="TextInput" placeholder="Placeholder" aria-label="Label" value="Hello"/></span></label>'
23
- );
18
+ expect(screen.getByRole('textbox')).toBeVisible();
19
+ expect(screen.getByRole('textbox')).toHaveAttribute('placeholder', 'Placeholder');
20
+ expect(screen.getByText('Label')).toBeVisible();
24
21
  });
25
22
 
26
23
  it('renders with an error', () => {
27
- const component = shallow(
28
- <Field placeholder='Placeholder' defaultValue='Hello' label='Label' error='Error' />
29
- );
24
+ render(<Field placeholder='Placeholder' defaultValue='Hello' label='Label' error='Error' />);
30
25
 
31
- expect(component.html()).toEqual(
32
- '<label class="Field"><span class="Field__label">Label</span><span class="Field__context"><input class="TextInput TextInput--error" placeholder="Placeholder" aria-label="Label" value="Hello"/><span class="Field__icon"></span></span><span class="Field__error">Error</span></label>'
33
- );
26
+ expect(screen.getByRole('textbox')).toBeVisible();
27
+ expect(screen.getByRole('textbox')).toHaveClass('TextInput--error');
28
+ expect(screen.getByText('Error')).toBeVisible();
34
29
  });
35
30
 
36
- it('renders with an error when children is <Select/>', () => {
31
+ it('renders with <Select/> child', () => {
37
32
  const options = [
38
33
  { value: 'foo', label: 'Foo' },
39
34
  { value: 'bar', label: 'Bar' },
40
35
  { value: 'baz', label: 'Baz', disabled: true }
41
36
  ];
42
37
 
43
- const component = shallow(
38
+ render(
44
39
  <Field>
45
40
  <Select idRef='1' name='name-1' label='Sort by' options={options} />
46
41
  </Field>
47
42
  );
48
43
 
49
- expect(component.html()).toEqual(
50
- '<label class="Field"><span class="Field__context"><div id="Select--1" class="Select"><input id="1" name="name-1" type="hidden"/><button id="Select__value--1" aria-haspopup="listbox" aria-expanded="false" aria-labelledby="Select__label--1 Select__value--1" type="button" title="Select" class="Clickable Select__value"><label id="Select__label--1">Sort by</label><span class="Select__icon"></span></button></div></span></label>'
51
- );
44
+ expect(screen.getByRole('button', { name: /Sort by/ })).toBeVisible();
52
45
  });
53
46
 
54
47
  it('renders with a className', () => {
55
- const component = shallow(
48
+ render(
56
49
  <Field className='Custom' placeholder='Placeholder' defaultValue='Hello' label='Label' />
57
50
  );
58
51
 
59
- expect(component.html()).toEqual(
60
- '<label class="Field Custom"><span class="Field__label">Label</span><span class="Field__context"><input class="TextInput" placeholder="Placeholder" aria-label="Label" value="Hello"/></span></label>'
61
- );
52
+ expect(screen.getByRole('textbox')).toBeVisible();
53
+ // eslint-disable-next-line testing-library/no-node-access
54
+ expect(screen.getByRole('textbox').parentNode?.parentNode).toHaveClass('Custom');
62
55
  });
63
56
 
64
57
  it('supports custom children', () => {
65
- const component = shallow(
58
+ render(
66
59
  <Field placeholder='Placeholder' defaultValue='Hello' label='Label'>
67
60
  <textarea />
68
61
  </Field>
69
62
  );
70
63
 
71
- expect(component.html()).toEqual(
72
- '<label class="Field"><span class="Field__label">Label</span><span class="Field__context"><textarea placeholder="Placeholder" label="Label">Hello</textarea></span></label>'
73
- );
64
+ expect(screen.getByRole('textbox')).toBeVisible();
74
65
  });
75
66
  });
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Label } from './Label';
5
5
 
6
6
  describe('Label', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<Label>Hello</Label>);
9
- expect(component.text()).toEqual('Hello');
8
+ render(<Label>Hello</Label>);
9
+ expect(screen.getByText('Hello')).toBeVisible();
10
10
  });
11
11
  });
@@ -1,13 +1,11 @@
1
1
  import React from 'react';
2
- import { shallow } from 'enzyme';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { Loading } from './Loading';
5
5
 
6
6
  describe('Loading', () => {
7
7
  it('renders correctly', () => {
8
- const component = shallow(<Loading />);
9
- expect(component.html()).toEqual(
10
- '<div class="Loading"><svg class="Triangle" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.9986 0L0 24H24L11.9986 0Z" fill="#D56B27"></path></svg></div>'
11
- );
8
+ render(<Loading aria-label='Loading' />);
9
+ expect(screen.getByLabelText('Loading')).toBeVisible();
12
10
  });
13
11
  });