@onewelcome/react-lib-components 5.2.0 → 6.1.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 (255) hide show
  1. package/dist/cjs/Button/BaseButton.cjs.js.map +1 -1
  2. package/dist/cjs/Button/BaseButton.module.cjs.js +1 -1
  3. package/dist/cjs/Button/Button.module.cjs.js +1 -1
  4. package/dist/cjs/Button/IconButton.module.cjs.js +1 -1
  5. package/dist/cjs/ContextMenu/ContextMenu.cjs.js +1 -1
  6. package/dist/cjs/ContextMenu/ContextMenu.cjs.js.map +1 -1
  7. package/dist/cjs/ContextMenu/ContextMenuItem.module.cjs.js +1 -1
  8. package/dist/cjs/ContextMenu/ContextMenuService.cjs.js +1 -1
  9. package/dist/cjs/ContextMenu/ContextMenuService.cjs.js.map +1 -1
  10. package/dist/cjs/DataGrid/DataGridActions/DataGridColumnsToggle.module.cjs.js +1 -1
  11. package/dist/cjs/Form/Input/Input.module.cjs.js +1 -1
  12. package/dist/cjs/Form/Select/Option.cjs.js +1 -1
  13. package/dist/cjs/Form/Select/Option.cjs.js.map +1 -1
  14. package/dist/cjs/Form/Select/Select.cjs.js +1 -1
  15. package/dist/cjs/Form/Select/Select.cjs.js.map +1 -1
  16. package/dist/cjs/Form/Select/Select.module.cjs.js +1 -1
  17. package/dist/cjs/Form/Select/SelectService.cjs.js +1 -1
  18. package/dist/cjs/Form/Select/SelectService.cjs.js.map +1 -1
  19. package/dist/cjs/Form/Textarea/Textarea.module.cjs.js +1 -1
  20. package/dist/cjs/Icon/Icon.cjs.js +1 -1
  21. package/dist/cjs/Icon/Icon.cjs.js.map +1 -1
  22. package/dist/cjs/Icon/Icon.module.cjs.js +1 -1
  23. package/dist/cjs/Link/Link.cjs.js.map +1 -1
  24. package/dist/cjs/Link/Link.module.cjs.js +1 -1
  25. package/dist/cjs/Notifications/BaseModal/BaseModal.module.cjs.js +1 -1
  26. package/dist/cjs/Notifications/SlideInModal/SlideInModal.module.cjs.js +1 -1
  27. package/dist/cjs/Notifications/Snackbar/SnackbarItem/SnackbarItem.cjs.js +1 -1
  28. package/dist/cjs/Notifications/Snackbar/SnackbarItem/SnackbarItem.cjs.js.map +1 -1
  29. package/dist/cjs/Notifications/Snackbar/SnackbarItem/SnackbarItem.module.cjs.js +1 -1
  30. package/dist/cjs/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.cjs.js +1 -1
  31. package/dist/cjs/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.cjs.js.map +1 -1
  32. package/dist/cjs/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.cjs.js.map +1 -1
  33. package/dist/cjs/Notifications/Snackbar/interfaces.cjs.js +2 -0
  34. package/dist/cjs/Notifications/Snackbar/interfaces.cjs.js.map +1 -0
  35. package/dist/cjs/Popover/Popover.cjs.js +1 -1
  36. package/dist/cjs/Popover/Popover.cjs.js.map +1 -1
  37. package/dist/cjs/Popover/Popover.module.cjs.js +1 -1
  38. package/dist/cjs/Stepper/Step.cjs.js +1 -1
  39. package/dist/cjs/Stepper/Step.cjs.js.map +1 -1
  40. package/dist/cjs/Stepper/Step.module.cjs.js +1 -1
  41. package/dist/cjs/Stepper/Stepper.cjs.js +1 -1
  42. package/dist/cjs/Stepper/Stepper.cjs.js.map +1 -1
  43. package/dist/cjs/Tabs/TabButton.module.cjs.js +1 -1
  44. package/dist/cjs/TextEllipsis/TextEllipsis.module.cjs.js +1 -1
  45. package/dist/cjs/Tiles/Tile.module.cjs.js +1 -1
  46. package/dist/cjs/Tooltip/Tooltip.module.cjs.js +1 -1
  47. package/dist/cjs/Wizard/BaseWizardSteps/BaseWizardSteps.module.cjs.js +1 -1
  48. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js +1 -1
  49. package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js.map +1 -1
  50. package/dist/cjs/src/.scope.d.ts +2 -0
  51. package/dist/cjs/src/components/Button/BaseButton.d.ts +1 -1
  52. package/dist/cjs/src/components/ContextMenu/ContextMenu.d.ts +1 -1
  53. package/dist/cjs/src/components/ContextMenu/ContextMenuService.d.ts +4 -1
  54. package/dist/cjs/src/components/Form/Select/Option.d.ts +1 -0
  55. package/dist/cjs/src/components/Form/Select/Select.d.ts +20 -0
  56. package/dist/cjs/src/components/Form/Select/Select.interfaces.d.ts +3 -1
  57. package/dist/cjs/src/components/Form/Select/Select.test.d.ts +63 -1
  58. package/dist/cjs/src/components/Form/Select/SelectKeyboardNavigation.test.d.ts +1 -0
  59. package/dist/cjs/src/components/Form/Select/SelectService.d.ts +3 -2
  60. package/dist/cjs/src/components/Icon/Icon.d.ts +4 -1
  61. package/dist/cjs/src/components/Link/Link.d.ts +1 -1
  62. package/dist/cjs/src/components/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.d.ts +5 -5
  63. package/dist/cjs/src/components/Notifications/Snackbar/interfaces.d.ts +6 -0
  64. package/dist/cjs/src/components/Notifications/Snackbar/useSnackbar.d.ts +4 -4
  65. package/dist/cjs/src/components/Notifications/Snackbar/useSnackbar.test.d.ts +1 -0
  66. package/dist/cjs/src/components/Stepper/Stepper.d.ts +0 -1
  67. package/dist/cjs/src/components/_BaseStyling_/BaseStyling.d.ts +11 -10
  68. package/dist/cjs/src/hooks/usePosition.cjs.js.map +1 -1
  69. package/dist/cjs/src/hooks/usePosition.d.ts +1 -1
  70. package/dist/esm/Button/BaseButton.esm.js.map +1 -1
  71. package/dist/esm/Button/BaseButton.module.esm.js +1 -1
  72. package/dist/esm/Button/Button.module.esm.js +1 -1
  73. package/dist/esm/Button/IconButton.module.esm.js +1 -1
  74. package/dist/esm/ContextMenu/ContextMenu.esm.js +1 -1
  75. package/dist/esm/ContextMenu/ContextMenu.esm.js.map +1 -1
  76. package/dist/esm/ContextMenu/ContextMenuItem.module.esm.js +1 -1
  77. package/dist/esm/ContextMenu/ContextMenuService.esm.js +1 -1
  78. package/dist/esm/ContextMenu/ContextMenuService.esm.js.map +1 -1
  79. package/dist/esm/DataGrid/DataGridActions/DataGridColumnsToggle.module.esm.js +1 -1
  80. package/dist/esm/Form/Input/Input.module.esm.js +1 -1
  81. package/dist/esm/Form/Select/Option.esm.js +1 -1
  82. package/dist/esm/Form/Select/Option.esm.js.map +1 -1
  83. package/dist/esm/Form/Select/Select.esm.js +1 -1
  84. package/dist/esm/Form/Select/Select.esm.js.map +1 -1
  85. package/dist/esm/Form/Select/Select.module.esm.js +1 -1
  86. package/dist/esm/Form/Select/SelectService.esm.js +1 -1
  87. package/dist/esm/Form/Select/SelectService.esm.js.map +1 -1
  88. package/dist/esm/Form/Textarea/Textarea.module.esm.js +1 -1
  89. package/dist/esm/Icon/Icon.esm.js +1 -1
  90. package/dist/esm/Icon/Icon.esm.js.map +1 -1
  91. package/dist/esm/Icon/Icon.module.esm.js +1 -1
  92. package/dist/esm/Link/Link.esm.js.map +1 -1
  93. package/dist/esm/Link/Link.module.esm.js +1 -1
  94. package/dist/esm/Notifications/BaseModal/BaseModal.module.esm.js +1 -1
  95. package/dist/esm/Notifications/SlideInModal/SlideInModal.module.esm.js +1 -1
  96. package/dist/esm/Notifications/Snackbar/SnackbarItem/SnackbarItem.esm.js +1 -1
  97. package/dist/esm/Notifications/Snackbar/SnackbarItem/SnackbarItem.esm.js.map +1 -1
  98. package/dist/esm/Notifications/Snackbar/SnackbarItem/SnackbarItem.module.esm.js +1 -1
  99. package/dist/esm/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.esm.js +1 -1
  100. package/dist/esm/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.esm.js.map +1 -1
  101. package/dist/esm/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.esm.js.map +1 -1
  102. package/dist/esm/Notifications/Snackbar/interfaces.esm.js +2 -0
  103. package/dist/esm/Notifications/Snackbar/interfaces.esm.js.map +1 -0
  104. package/dist/esm/Popover/Popover.esm.js +1 -1
  105. package/dist/esm/Popover/Popover.esm.js.map +1 -1
  106. package/dist/esm/Popover/Popover.module.esm.js +1 -1
  107. package/dist/esm/Stepper/Step.esm.js +1 -1
  108. package/dist/esm/Stepper/Step.esm.js.map +1 -1
  109. package/dist/esm/Stepper/Step.module.esm.js +1 -1
  110. package/dist/esm/Stepper/Stepper.esm.js +1 -1
  111. package/dist/esm/Stepper/Stepper.esm.js.map +1 -1
  112. package/dist/esm/Tabs/TabButton.module.esm.js +1 -1
  113. package/dist/esm/TextEllipsis/TextEllipsis.module.esm.js +1 -1
  114. package/dist/esm/Tiles/Tile.module.esm.js +1 -1
  115. package/dist/esm/Tooltip/Tooltip.module.esm.js +1 -1
  116. package/dist/esm/Wizard/BaseWizardSteps/BaseWizardSteps.module.esm.js +1 -1
  117. package/dist/esm/_BaseStyling_/BaseStyling.esm.js +1 -1
  118. package/dist/esm/_BaseStyling_/BaseStyling.esm.js.map +1 -1
  119. package/dist/esm/src/.scope.d.ts +2 -0
  120. package/dist/esm/src/components/Button/BaseButton.d.ts +1 -1
  121. package/dist/esm/src/components/ContextMenu/ContextMenu.d.ts +1 -1
  122. package/dist/esm/src/components/ContextMenu/ContextMenuService.d.ts +4 -1
  123. package/dist/esm/src/components/Form/Select/Option.d.ts +1 -0
  124. package/dist/esm/src/components/Form/Select/Select.d.ts +20 -0
  125. package/dist/esm/src/components/Form/Select/Select.interfaces.d.ts +3 -1
  126. package/dist/esm/src/components/Form/Select/Select.test.d.ts +63 -1
  127. package/dist/esm/src/components/Form/Select/SelectKeyboardNavigation.test.d.ts +1 -0
  128. package/dist/esm/src/components/Form/Select/SelectService.d.ts +3 -2
  129. package/dist/esm/src/components/Icon/Icon.d.ts +4 -1
  130. package/dist/esm/src/components/Link/Link.d.ts +1 -1
  131. package/dist/esm/src/components/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.d.ts +5 -5
  132. package/dist/esm/src/components/Notifications/Snackbar/interfaces.d.ts +6 -0
  133. package/dist/esm/src/components/Notifications/Snackbar/useSnackbar.d.ts +4 -4
  134. package/dist/esm/src/components/Notifications/Snackbar/useSnackbar.test.d.ts +1 -0
  135. package/dist/esm/src/components/Stepper/Stepper.d.ts +0 -1
  136. package/dist/esm/src/components/_BaseStyling_/BaseStyling.d.ts +11 -10
  137. package/dist/esm/src/hooks/usePosition.d.ts +1 -1
  138. package/dist/esm/src/hooks/usePosition.esm.js.map +1 -1
  139. package/package.json +48 -45
  140. package/src/{hooks/useWrapper.test.ts → .scope.ts} +1 -12
  141. package/src/components/Button/BaseButton.tsx +1 -1
  142. package/src/components/Button/Button.module.scss +2 -10
  143. package/src/components/ContextMenu/ContextMenu.tsx +13 -23
  144. package/src/components/ContextMenu/ContextMenuService.ts +47 -1
  145. package/src/components/Form/Select/Option.tsx +3 -1
  146. package/src/components/Form/Select/Select.interfaces.ts +3 -1
  147. package/src/components/Form/Select/Select.module.scss +55 -34
  148. package/src/components/Form/Select/Select.tsx +74 -23
  149. package/src/components/Form/Select/SelectService.ts +26 -10
  150. package/src/components/Icon/Icon.module.scss +12 -0
  151. package/src/components/Icon/Icon.tsx +4 -1
  152. package/src/components/Link/Link.module.scss +28 -4
  153. package/src/components/Link/Link.tsx +1 -1
  154. package/src/components/Notifications/Snackbar/SnackbarItem/SnackbarItem.module.scss +14 -21
  155. package/src/components/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx +17 -13
  156. package/src/components/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx +43 -17
  157. package/src/components/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx +5 -13
  158. package/src/components/Notifications/Snackbar/interfaces.ts +15 -0
  159. package/src/components/Popover/Popover.tsx +19 -2
  160. package/src/components/Stepper/Step.tsx +2 -1
  161. package/src/components/Stepper/Stepper.tsx +0 -2
  162. package/src/components/Tooltip/Tooltip.module.scss +1 -0
  163. package/src/components/_BaseStyling_/BaseStyling.tsx +24 -22
  164. package/src/font/icomoon.eot +0 -0
  165. package/src/font/icomoon.svg +5 -2
  166. package/src/font/icomoon.ttf +0 -0
  167. package/src/font/icomoon.woff +0 -0
  168. package/src/font/selection.json +1 -1
  169. package/src/hooks/usePosition.ts +1 -1
  170. package/src/interfaces.ts +2 -2
  171. package/src/mixins.module.scss +60 -61
  172. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -64
  173. package/src/components/Button/BaseButton.test.tsx +0 -133
  174. package/src/components/Button/Button.test.tsx +0 -138
  175. package/src/components/Button/IconButton.test.tsx +0 -122
  176. package/src/components/ContextMenu/ContextMenu.test.tsx +0 -358
  177. package/src/components/DataGrid/DataGrid.test.tsx +0 -437
  178. package/src/components/DataGrid/DataGridActions/DataGridActions.test.tsx +0 -204
  179. package/src/components/DataGrid/DataGridActions/DataGridColumnsToggle.test.tsx +0 -99
  180. package/src/components/DataGrid/DataGridBody/DataGridBody.test.tsx +0 -140
  181. package/src/components/DataGrid/DataGridBody/DataGridCell.test.tsx +0 -90
  182. package/src/components/DataGrid/DataGridBody/DataGridRow.test.tsx +0 -117
  183. package/src/components/DataGrid/DataGridHeader/DataGridHeader.test.tsx +0 -276
  184. package/src/components/DataGrid/DataGridHeader/DataGridHeaderCell.test.tsx +0 -144
  185. package/src/components/Form/Checkbox/Checkbox.test.tsx +0 -308
  186. package/src/components/Form/Fieldset/Fieldset.test.tsx +0 -127
  187. package/src/components/Form/FileUpload/FileItem/FileItem.test.tsx +0 -103
  188. package/src/components/Form/FileUpload/FileUpload.test.tsx +0 -374
  189. package/src/components/Form/Form.test.tsx +0 -63
  190. package/src/components/Form/FormControl/FormControl.test.tsx +0 -98
  191. package/src/components/Form/FormGroup/FormGroup.test.tsx +0 -127
  192. package/src/components/Form/FormHelperText/FormHelperText.test.tsx +0 -84
  193. package/src/components/Form/FormSelectorWrapper/FormSelectorWrapper.test.tsx +0 -94
  194. package/src/components/Form/Input/Input.test.tsx +0 -267
  195. package/src/components/Form/Label/Label.test.tsx +0 -68
  196. package/src/components/Form/Radio/Radio.test.tsx +0 -130
  197. package/src/components/Form/Select/Option.test.tsx +0 -57
  198. package/src/components/Form/Select/Select.test.tsx +0 -564
  199. package/src/components/Form/Textarea/Textarea.test.tsx +0 -124
  200. package/src/components/Form/Toggle/Toggle.test.tsx +0 -200
  201. package/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.test.tsx +0 -141
  202. package/src/components/Form/Wrapper/InputWrapper/InputWrapper.test.tsx +0 -211
  203. package/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.test.tsx +0 -117
  204. package/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.test.tsx +0 -186
  205. package/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.test.tsx +0 -173
  206. package/src/components/Form/Wrapper/Wrapper/Wrapper.test.tsx +0 -59
  207. package/src/components/Icon/Icon.test.tsx +0 -83
  208. package/src/components/Link/Link.test.tsx +0 -197
  209. package/src/components/Notifications/Banner/Banner.test.tsx +0 -84
  210. package/src/components/Notifications/BaseModal/BaseModal.test.tsx +0 -194
  211. package/src/components/Notifications/BaseModal/BaseModalActions/BaseModalActions.test.tsx +0 -74
  212. package/src/components/Notifications/BaseModal/BaseModalContent/BaseModalContent.test.tsx +0 -71
  213. package/src/components/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.test.tsx +0 -74
  214. package/src/components/Notifications/Dialog/Dialog.test.tsx +0 -118
  215. package/src/components/Notifications/Dialog/DialogActions/DialogActions.test.tsx +0 -61
  216. package/src/components/Notifications/Dialog/DialogTitle/DialogTitle.test.tsx +0 -87
  217. package/src/components/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.test.tsx +0 -111
  218. package/src/components/Notifications/DiscardChangesModal/DiscardChangesModal.test.tsx +0 -175
  219. package/src/components/Notifications/Modal/Modal.test.tsx +0 -18
  220. package/src/components/Notifications/NotificationProvider/NotificationContext.test.tsx +0 -449
  221. package/src/components/Notifications/SlideInModal/SlideInModal.test.tsx +0 -90
  222. package/src/components/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.test.tsx +0 -53
  223. package/src/components/Notifications/Snackbar/SnackbarItem/SnackbarItem.test.tsx +0 -63
  224. package/src/components/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.test.tsx +0 -215
  225. package/src/components/Pagination/Pagination.test.tsx +0 -183
  226. package/src/components/Popover/Popover.test.tsx +0 -103
  227. package/src/components/ProgressBar/ProgressBar.test.tsx +0 -91
  228. package/src/components/Skeleton/Skeleton.test.tsx +0 -112
  229. package/src/components/StatusIndicator/StatusIndicator.test.tsx +0 -143
  230. package/src/components/Stepper/Stepper.test.tsx +0 -83
  231. package/src/components/Tabs/Tab.test.tsx +0 -49
  232. package/src/components/Tabs/TabButton.test.tsx +0 -65
  233. package/src/components/Tabs/Tabs.test.tsx +0 -291
  234. package/src/components/Tag/Tag.test.tsx +0 -89
  235. package/src/components/TextEllipsis/TextEllipsis.test.tsx +0 -96
  236. package/src/components/Tiles/Tile.test.tsx +0 -183
  237. package/src/components/Tiles/Tiles.test.tsx +0 -162
  238. package/src/components/Tooltip/Tooltip.test.tsx +0 -390
  239. package/src/components/Typography/Typography.test.tsx +0 -177
  240. package/src/components/Wizard/BaseWizardSteps/BaseWizardSteps.test.tsx +0 -90
  241. package/src/components/Wizard/Wizard.test.tsx +0 -218
  242. package/src/components/Wizard/WizardActions/WizardActions.test.tsx +0 -187
  243. package/src/components/Wizard/WizardSteps/WizardSteps.test.tsx +0 -125
  244. package/src/components/_BaseStyling_/BaseStyling.test.tsx +0 -55
  245. package/src/hooks/useAnimation.test.tsx +0 -65
  246. package/src/hooks/useBodyClick.test.tsx +0 -55
  247. package/src/hooks/useDebouncedCallback.test.ts +0 -150
  248. package/src/hooks/useDetermineStatusIcon.test.ts +0 -28
  249. package/src/hooks/useFormSelector.test.ts +0 -56
  250. package/src/hooks/usePosition.test.tsx +0 -510
  251. package/src/hooks/useRepeater.test.tsx +0 -156
  252. package/src/hooks/useScroll.test.tsx +0 -36
  253. package/src/hooks/useSpacing.test.ts +0 -86
  254. package/src/hooks/useUploadFile.test.ts +0 -211
  255. package/src/util/helper.test.tsx +0 -403
@@ -1,215 +0,0 @@
1
- /*
2
- * Copyright 2022 OneWelcome B.V.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import React, { useEffect, useState } from "react";
18
- import {
19
- render,
20
- getByTestId,
21
- getAllByText,
22
- waitFor,
23
- getAllByRole,
24
- getByText,
25
- fireEvent
26
- } from "@testing-library/react";
27
- import { SnackbarProvider, Props } from "./SnackbarProvider";
28
- import { useSnackbar } from "../useSnackbar";
29
- import userEvent from "@testing-library/user-event";
30
-
31
- const successProps = {
32
- title: "success title",
33
- options: {
34
- duration: 10,
35
- onClose: jest.fn()
36
- }
37
- };
38
-
39
- const errorProps = {
40
- title: "error title",
41
- options: {
42
- duration: 10,
43
- onClose: jest.fn()
44
- }
45
- };
46
-
47
- const infoProps = {
48
- title: "info title",
49
- content: "test content",
50
- options: {
51
- actions: [
52
- { label: "Contact support", onClick: jest.fn() },
53
- { label: "Contact Onewelcome", onClick: jest.fn() }
54
- ]
55
- }
56
- };
57
-
58
- const warningProps = {
59
- title: "warning title",
60
- options: {
61
- duration: 10,
62
- onClose: jest.fn()
63
- }
64
- };
65
-
66
- const renderSnackbarProvider = (props?: Partial<Props>) => {
67
- const AppComponent = () => {
68
- const {
69
- enqueueSuccessSnackbar,
70
- enqueueErrorSnackbar,
71
- enqueueSnackbar,
72
- enqueueWarningSnackbar
73
- } = useSnackbar();
74
- const [index, setIndex] = useState(0);
75
- return (
76
- <div>
77
- content
78
- <button
79
- data-testid="show-success"
80
- onClick={() => {
81
- enqueueSuccessSnackbar(successProps.title + index, undefined, successProps.options);
82
- setIndex(index + 1);
83
- }}
84
- >
85
- Success
86
- </button>
87
- <button
88
- data-testid="show-error"
89
- onClick={() => {
90
- enqueueErrorSnackbar(errorProps.title + index);
91
- setIndex(index + 1);
92
- }}
93
- >
94
- Error
95
- </button>
96
- <button
97
- data-testid="show-info"
98
- onClick={() => {
99
- enqueueSnackbar(infoProps.title + index, infoProps.content, infoProps.options);
100
- setIndex(index + 1);
101
- }}
102
- >
103
- Info
104
- </button>
105
- <button
106
- data-testid="show-warning"
107
- onClick={() => {
108
- enqueueWarningSnackbar(warningProps.title + index, undefined, warningProps.options);
109
- setIndex(index + 1);
110
- }}
111
- >
112
- Warning
113
- </button>
114
- </div>
115
- );
116
- };
117
-
118
- const queries = render(
119
- <SnackbarProvider {...props} closeButtonTitle="close">
120
- <AppComponent />
121
- </SnackbarProvider>
122
- );
123
-
124
- const showSuccessSnackbarBtn = getByTestId(queries.container, "show-success");
125
- const showErrorSnackbarBtn = getByTestId(queries.container, "show-error");
126
- const showInfoSnackbarBtn = getByTestId(queries.container, "show-info");
127
- const showWarningSnackbarBtn = getByTestId(queries.container, "show-warning");
128
-
129
- return {
130
- ...queries,
131
- showSuccessSnackbarBtn,
132
- showErrorSnackbarBtn,
133
- showInfoSnackbarBtn,
134
- showWarningSnackbarBtn
135
- };
136
- };
137
-
138
- describe("SnackbarProvider", () => {
139
- it("renders without crashing", () => {
140
- const { container } = renderSnackbarProvider();
141
-
142
- expect(container).toHaveTextContent("content");
143
- });
144
-
145
- it("should stack 3 snackbars at one time", async () => {
146
- const { showSuccessSnackbarBtn, showWarningSnackbarBtn } = renderSnackbarProvider();
147
-
148
- await userEvent.click(showSuccessSnackbarBtn);
149
- await userEvent.click(showWarningSnackbarBtn);
150
- await userEvent.click(showSuccessSnackbarBtn);
151
- await userEvent.click(showSuccessSnackbarBtn);
152
-
153
- await waitFor(() => {
154
- expect(getAllByText(document.body, new RegExp(successProps.title))).toHaveLength(2);
155
- expect(getAllByText(document.body, new RegExp(warningProps.title))).toHaveLength(1);
156
- });
157
- });
158
-
159
- it("should render 3 variants of snackbars", async () => {
160
- const { showSuccessSnackbarBtn, showErrorSnackbarBtn, showInfoSnackbarBtn } =
161
- renderSnackbarProvider();
162
-
163
- await userEvent.click(showSuccessSnackbarBtn);
164
- await userEvent.click(showErrorSnackbarBtn);
165
- await userEvent.click(showInfoSnackbarBtn);
166
-
167
- expect(getByText(document.body, new RegExp(successProps.title))).toBeDefined();
168
- expect(getByText(document.body, new RegExp(errorProps.title))).toBeDefined();
169
- expect(getByText(document.body, new RegExp(infoProps.title))).toBeDefined();
170
- expect(getByText(document.body, infoProps.content)).toBeDefined();
171
- const infoSnackbarActions = getAllByRole(document.body, "button", { name: /Contact/i });
172
- expect(infoSnackbarActions).toHaveLength(2);
173
-
174
- await userEvent.click(infoSnackbarActions[0]);
175
- await userEvent.click(infoSnackbarActions[1]);
176
-
177
- expect(infoProps.options.actions[0].onClick).toBeCalledTimes(1);
178
- });
179
- });
180
-
181
- describe("handlers", () => {
182
- it("should fire onClose", async () => {
183
- const onCloseHandler = jest.fn();
184
- const ExampleComponent = () => {
185
- const { enqueueErrorSnackbar, enqueueSuccessSnackbar } = useSnackbar();
186
-
187
- useEffect(() => {
188
- enqueueErrorSnackbar("error", undefined, { onClose: onCloseHandler, duration: 1 });
189
- enqueueSuccessSnackbar("success", undefined, { onClose: onCloseHandler, duration: 1 });
190
- }, []);
191
-
192
- return <div></div>;
193
- };
194
-
195
- const queries = render(
196
- <SnackbarProvider closeButtonTitle="close">
197
- <ExampleComponent />
198
- </SnackbarProvider>
199
- );
200
-
201
- const errorSnackbar = await queries.findByText(/error/i);
202
- const successSnackbar = await queries.findByText(/success/i);
203
-
204
- expect(errorSnackbar).toBeTruthy();
205
- expect(successSnackbar).toBeTruthy();
206
-
207
- const parentErrorSnackbar = errorSnackbar.closest(".snackbar")!;
208
- const parentSuccessSnackbar = successSnackbar.closest(".snackbar")!;
209
-
210
- fireEvent.animationEnd(parentErrorSnackbar);
211
- fireEvent.animationEnd(parentSuccessSnackbar);
212
-
213
- await waitFor(() => expect(onCloseHandler).toHaveBeenCalledTimes(2));
214
- });
215
- });
@@ -1,183 +0,0 @@
1
- /*
2
- * Copyright 2022 OneWelcome B.V.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import React, { useEffect, useRef } from "react";
18
- import { Pagination, Props } from "./Pagination";
19
- import { render, waitFor } from "@testing-library/react";
20
- import userEvent from "@testing-library/user-event";
21
-
22
- const defaultParams: Props = {
23
- currentPage: 1,
24
- totalElements: 500,
25
- onPageChange: jest.fn(),
26
- onPageSizeChange: jest.fn()
27
- };
28
-
29
- const createPagination = (params?: (defaultParams: Props) => Props) => {
30
- let parameters: Props = defaultParams;
31
-
32
- if (params) {
33
- parameters = params(defaultParams);
34
- }
35
-
36
- const queries = render(<Pagination data-testid="pagination" {...parameters} />);
37
-
38
- const pagination = queries.getByTestId("pagination");
39
-
40
- return {
41
- ...queries,
42
- pagination
43
- };
44
- };
45
-
46
- describe("Pagination should render", () => {
47
- it("renders without crashing", () => {
48
- const { pagination } = createPagination();
49
-
50
- expect(pagination).toBeTruthy();
51
- });
52
- });
53
-
54
- describe("Pagination events", () => {
55
- it("should correctly translate user input to pagination component", async () => {
56
- const onPageChange = jest.fn();
57
-
58
- const onPageSizeChange = jest.fn();
59
-
60
- const { pagination } = createPagination(defaultParams => ({
61
- ...defaultParams,
62
- currentPage: 10,
63
- onPageChange,
64
- onPageSizeChange
65
- }));
66
-
67
- const next = pagination.querySelector('[data-paginate="next"]')!;
68
- const previous = pagination.querySelector('[data-paginate="previous"]')!;
69
- const first = pagination.querySelector('[data-paginate="first"]')!;
70
- const last = pagination.querySelector('[data-paginate="last"]')!;
71
- const pageSizeSelect = pagination.querySelector(".page-size-select")!;
72
- const currentPageInput = pagination.querySelector("#current-value-input")!;
73
-
74
- await userEvent.click(next);
75
-
76
- await waitFor(() => expect(onPageChange).toHaveBeenCalledWith(11));
77
-
78
- await userEvent.click(previous);
79
- await waitFor(() => expect(onPageChange).toHaveBeenCalledWith(9));
80
-
81
- await userEvent.click(first);
82
- await waitFor(() => expect(onPageChange).toHaveBeenCalledWith(1));
83
-
84
- await userEvent.click(last);
85
- await waitFor(() => expect(onPageChange).toHaveBeenCalledWith(50));
86
-
87
- await userEvent.click(pageSizeSelect.querySelector("button")!);
88
-
89
- const option25 = pageSizeSelect.querySelector('[data-value="25"]')!;
90
-
91
- await userEvent.click(option25);
92
-
93
- await waitFor(() => expect(onPageSizeChange).toHaveBeenCalledWith(25));
94
- });
95
- });
96
-
97
- describe("different current pages and their effect on what renders", () => {
98
- it("is on the first page and does not render previous and first", () => {
99
- const { pagination } = createPagination();
100
-
101
- expect(pagination.querySelector('[data-paginate="next"]')).toBeTruthy();
102
- expect(pagination.querySelector('[data-paginate="previous"]')).toHaveAttribute("disabled");
103
- });
104
-
105
- it("is on the second page and does render first", async () => {
106
- const { pagination } = createPagination(defaultParams => ({
107
- ...defaultParams,
108
- currentPage: 2
109
- }));
110
-
111
- expect(pagination.querySelector('[data-paginate="first"]')).not.toHaveAttribute("disabled");
112
- });
113
-
114
- it("is on the second to last page and does render last", () => {
115
- const { pagination } = createPagination(defaultParams => ({
116
- ...defaultParams,
117
- currentPage: 49
118
- }));
119
-
120
- expect(pagination.querySelector('[data-paginate="last"]')).not.toHaveAttribute("disabled");
121
- });
122
-
123
- it("is on the last page and does not render next & last", () => {
124
- const { pagination } = createPagination(defaultParams => ({
125
- ...defaultParams,
126
- currentPage: 50
127
- }));
128
-
129
- expect(pagination.querySelector('[data-paginate="last"]')).toHaveAttribute("disabled");
130
- expect(pagination.querySelector('[data-paginate="next"]')).toHaveAttribute("disabled");
131
- });
132
- });
133
-
134
- describe("omitted attributes still renders correctly", () => {
135
- it("still renders next if totalItems prop isn't given and we're on the first page", () => {
136
- const { pagination } = createPagination(defaultParams => ({
137
- ...defaultParams,
138
- totalElements: undefined
139
- }));
140
-
141
- expect(pagination.querySelector(".page")).toBeFalsy();
142
- expect(pagination.querySelector('[data-paginate="next"]')).toBeTruthy();
143
- expect(pagination.querySelector('[data-paginate="previous"]')).toHaveAttribute("disabled");
144
- });
145
-
146
- it("still renders next if totalItems prop isn't given and we're on the first page", () => {
147
- const { pagination } = createPagination(defaultParams => ({
148
- ...defaultParams,
149
- currentPage: 4,
150
- totalElements: undefined
151
- }));
152
-
153
- expect(pagination.querySelector(".page")).toBeFalsy();
154
- expect(pagination.querySelector('[data-paginate="next"]')).toBeTruthy();
155
- expect(pagination.querySelector('[data-paginate="previous"]')).toBeTruthy();
156
- });
157
- });
158
-
159
- describe("ref should work", () => {
160
- it("should give back the proper data prop, this also checks if the component propagates ...rest properly", () => {
161
- const ExampleComponent = ({
162
- propagateRef
163
- }: {
164
- propagateRef?: (ref: React.RefObject<HTMLElement>) => void;
165
- }) => {
166
- const ref = useRef(null);
167
-
168
- useEffect(() => {
169
- if (ref.current) {
170
- propagateRef && propagateRef(ref);
171
- }
172
- }, [ref]);
173
-
174
- return <Pagination {...defaultParams} data-ref="testing" ref={ref} />;
175
- };
176
-
177
- const refCheck = (ref: React.RefObject<HTMLElement>) => {
178
- expect(ref.current).toHaveAttribute("data-ref", "testing");
179
- };
180
-
181
- render(<ExampleComponent propagateRef={refCheck} />);
182
- });
183
- });
@@ -1,103 +0,0 @@
1
- /*
2
- * Copyright 2022 OneWelcome B.V.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import React, { Fragment, useRef } from "react";
18
- import { Popover, Props } from "./Popover";
19
- import { render } from "@testing-library/react";
20
- import { usePosition } from "../../hooks/usePosition";
21
-
22
- const createPopover = (params?: (defaultParams: Props) => Props) => {
23
- const Component = () => {
24
- const relativeElement = useRef<HTMLButtonElement>(null);
25
- const elementToBePositioned = useRef<HTMLDivElement>(null);
26
-
27
- const defaultParams: Props = {
28
- children: (
29
- <ul>
30
- <li>Test</li>
31
- <li>Test</li>
32
- <li>Test</li>
33
- </ul>
34
- ),
35
- show: true,
36
- placement: { vertical: "top", horizontal: "left" }
37
- };
38
- let parameters: Props = defaultParams;
39
-
40
- if (params) {
41
- parameters = params(defaultParams);
42
- }
43
-
44
- const { top, left, bottom, right, calculatePosition } = usePosition({
45
- elementToBePositioned: elementToBePositioned,
46
- relativeElement: relativeElement,
47
- ...parameters
48
- });
49
-
50
- return (
51
- <Fragment>
52
- <button data-testid="button" onClick={calculatePosition} ref={relativeElement}>
53
- Test
54
- </button>
55
- <Popover
56
- {...defaultParams}
57
- data-testid="popover"
58
- style={{ top: top, left: left, bottom: bottom, right: right }}
59
- ref={elementToBePositioned}
60
- >
61
- Test
62
- </Popover>
63
- </Fragment>
64
- );
65
- };
66
-
67
- const queries = render(<Component />);
68
- const button = queries.getByTestId("button");
69
- const popover = queries.getByTestId("popover");
70
-
71
- /** Let the hacking begin */
72
- Object.defineProperty(button, "offsetHeight", { configurable: true, value: 500 });
73
- Object.defineProperty(button, "offsetWidth", { configurable: true, value: 500 });
74
-
75
- Object.defineProperty(window, "innerHeight", {
76
- configurable: true,
77
- value: 1000
78
- });
79
- Object.defineProperty(window, "innerWidth", {
80
- configurable: true,
81
- value: 1000
82
- });
83
-
84
- Object.defineProperty(popover, "offsetHeight", { configurable: true, value: 100 });
85
- Object.defineProperty(popover, "offsetWidth", { configurable: true, value: 100 });
86
-
87
- return {
88
- ...queries,
89
- popover,
90
- button
91
- };
92
- };
93
-
94
- describe("Popover should render", () => {
95
- it("renders without crashing and has default left and top attributes", () => {
96
- const { popover } = createPopover();
97
-
98
- window.dispatchEvent(new Event("resize"));
99
- window.dispatchEvent(new Event("scroll"));
100
-
101
- expect(popover).toBeTruthy();
102
- });
103
- });
@@ -1,91 +0,0 @@
1
- import React, { useEffect, useRef } from "react";
2
- import { ProgressBar, Props } from "./ProgressBar";
3
- import { render } from "@testing-library/react";
4
-
5
- const defaultParams: Props = {
6
- label: "Loading...",
7
- percentage: 0,
8
- accessibilityTitle: "Progress bar",
9
- caption: "One moment please..."
10
- };
11
-
12
- const createProgressBar = (params?: (defaultParams: Props) => Props) => {
13
- let parameters: Props = defaultParams;
14
- if (params) {
15
- parameters = params(defaultParams);
16
- }
17
- const queries = render(<ProgressBar {...parameters} data-testid="ProgressBar" />);
18
- const ProgressBarComponent = queries.getByTestId("ProgressBar");
19
-
20
- return {
21
- ...queries,
22
- ProgressBarComponent
23
- };
24
- };
25
-
26
- describe("ProgressBar should render", () => {
27
- it("renders without crashing", () => {
28
- const { ProgressBarComponent, getByText } = createProgressBar(defaultParams => ({
29
- ...defaultParams,
30
- className: "test"
31
- }));
32
-
33
- expect(ProgressBarComponent).toBeDefined();
34
- expect(ProgressBarComponent).toHaveClass(`test`, { exact: true });
35
- expect(ProgressBarComponent).toHaveAttribute("role", "progressbar");
36
- expect(ProgressBarComponent).toHaveAttribute("aria-valuemin", "0");
37
- expect(ProgressBarComponent).toHaveAttribute("aria-valuemax", "100");
38
- expect(ProgressBarComponent).toHaveAttribute("aria-valuenow", "0");
39
- expect(ProgressBarComponent).toHaveAttribute("title", "Progress bar");
40
- expect(getByText("Loading...")).toBeDefined();
41
- expect(getByText("Loading...")).toHaveClass("label");
42
- expect(getByText("One moment please...")).toBeDefined();
43
- expect(getByText("One moment please...")).toHaveClass("caption");
44
- });
45
- });
46
-
47
- describe("ref should work", () => {
48
- it("should give back the proper data prop, this also checks if the component propagates ...rest properly", () => {
49
- const ExampleComponent = ({
50
- propagateRef
51
- }: {
52
- propagateRef: (ref: React.RefObject<HTMLElement>) => void;
53
- }) => {
54
- const ref = useRef(null);
55
-
56
- useEffect(() => {
57
- propagateRef(ref);
58
- }, [ref]);
59
-
60
- return <ProgressBar {...defaultParams} data-ref="testing" ref={ref} />;
61
- };
62
-
63
- const refCheck = (ref: React.RefObject<HTMLElement>) => {
64
- expect(ref.current).toHaveAttribute("data-ref", "testing");
65
- };
66
-
67
- const container = document.createElement("div");
68
- render(<ExampleComponent propagateRef={refCheck} />, { container });
69
- });
70
- });
71
-
72
- describe("ProgressBar should change styles depending on props", () => {
73
- it("should show a progress when 'completed' prop is provided", () => {
74
- const { ProgressBarComponent } = createProgressBar(defaultParams => ({
75
- ...defaultParams,
76
- completed: 40
77
- }));
78
-
79
- const bar = ProgressBarComponent.querySelector(".bar");
80
- expect(bar).toHaveStyle("width: 40%");
81
- });
82
-
83
- it("should show a loading effect when 'completed' prop is not provided", () => {
84
- const { ProgressBarComponent } = createProgressBar(defaultParams => ({
85
- ...defaultParams
86
- }));
87
-
88
- const bar = ProgressBarComponent.querySelector(".bar");
89
- expect(bar).toHaveClass("loading-state");
90
- });
91
- });
@@ -1,112 +0,0 @@
1
- /*
2
- * Copyright 2022 OneWelcome B.V.
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
-
17
- import React, { useEffect, useRef } from "react";
18
- import { Skeleton, Props } from "./Skeleton";
19
- import { render } from "@testing-library/react";
20
-
21
- const defaultParams: Props = {};
22
-
23
- const createSkeleton = (params?: (defaultParams: Props) => Props) => {
24
- let parameters: Props = defaultParams;
25
- if (params) {
26
- parameters = params(defaultParams);
27
- }
28
- const queries = render(<Skeleton {...parameters} data-testid="skeleton" />);
29
- const skeleton = queries.getByTestId("skeleton");
30
-
31
- return {
32
- ...queries,
33
- skeleton
34
- };
35
- };
36
-
37
- describe("Skeleton should render", () => {
38
- it("renders without crashing", () => {
39
- const { skeleton } = createSkeleton();
40
-
41
- expect(skeleton).toHaveClass("skeleton text no-height", { exact: true });
42
-
43
- expect(skeleton).toBeDefined();
44
- });
45
-
46
- it("renders with properties passed", () => {
47
- const testClass = "testclass";
48
- const { skeleton } = createSkeleton(defaultParams => ({
49
- ...defaultParams,
50
- className: testClass
51
- }));
52
-
53
- expect(skeleton).toHaveClass(`skeleton text no-height ${testClass}`, { exact: true });
54
- });
55
-
56
- it("renders text variant with width and height", () => {
57
- const width = "10rem";
58
- const height = 10;
59
- const { skeleton } = createSkeleton(defaultParams => ({
60
- ...defaultParams,
61
- variant: "text",
62
- width,
63
- height
64
- }));
65
-
66
- expect(skeleton).toHaveClass(`skeleton text`, { exact: true });
67
- expect(skeleton).toHaveStyle({ width, height: "10px" });
68
- });
69
-
70
- it("renders rectangle variant", () => {
71
- const { skeleton } = createSkeleton(defaultParams => ({
72
- ...defaultParams,
73
- variant: "rectangle"
74
- }));
75
-
76
- expect(skeleton).toHaveClass(`skeleton no-height`, { exact: true });
77
- });
78
-
79
- it("renders circular variant", () => {
80
- const { skeleton } = createSkeleton(defaultParams => ({
81
- ...defaultParams,
82
- variant: "circular"
83
- }));
84
-
85
- expect(skeleton).toHaveClass(`skeleton no-height circular`, { exact: true });
86
- });
87
- });
88
-
89
- describe("ref should work", () => {
90
- it("should give back the proper data prop, this also checks if the component propagates ...rest properly", () => {
91
- const ExampleComponent = ({
92
- propagateRef
93
- }: {
94
- propagateRef: (ref: React.RefObject<HTMLElement>) => void;
95
- }) => {
96
- const ref = useRef(null);
97
-
98
- useEffect(() => {
99
- propagateRef(ref);
100
- }, [ref]);
101
-
102
- return <Skeleton {...defaultParams} data-ref="testing" ref={ref} />;
103
- };
104
-
105
- const refCheck = (ref: React.RefObject<HTMLElement>) => {
106
- expect(ref.current).toHaveAttribute("data-ref", "testing");
107
- };
108
-
109
- const container = document.createElement("div");
110
- render(<ExampleComponent propagateRef={refCheck} />, { container });
111
- });
112
- });