@qoretechnologies/reqore 0.43.0 → 0.45.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 (243) hide show
  1. package/dist/components/Button/index.d.ts +1 -0
  2. package/dist/components/Button/index.d.ts.map +1 -1
  3. package/dist/components/Button/index.js +6 -2
  4. package/dist/components/Button/index.js.map +1 -1
  5. package/dist/components/DatePicker/index.d.ts +29 -0
  6. package/dist/components/DatePicker/index.d.ts.map +1 -0
  7. package/dist/components/DatePicker/index.js +147 -0
  8. package/dist/components/DatePicker/index.js.map +1 -0
  9. package/dist/components/Effect/index.d.ts +1 -1
  10. package/dist/components/Effect/index.d.ts.map +1 -1
  11. package/dist/components/Effect/index.js.map +1 -1
  12. package/dist/components/Input/index.d.ts +3 -1
  13. package/dist/components/Input/index.d.ts.map +1 -1
  14. package/dist/components/Input/index.js +5 -1
  15. package/dist/components/Input/index.js.map +1 -1
  16. package/dist/components/InternalPopover/index.d.ts +2 -0
  17. package/dist/components/InternalPopover/index.d.ts.map +1 -1
  18. package/dist/components/InternalPopover/index.js +5 -4
  19. package/dist/components/InternalPopover/index.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/package.json +4 -1
  25. package/tests.json +1 -1
  26. package/.eslintrc.js +0 -40
  27. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  28. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  29. package/.github/ISSUE_TEMPLATE/new-component.md +0 -20
  30. package/.github/ISSUE_TEMPLATE/visual-bug-report.md +0 -38
  31. package/.github/workflows/beta_release.yml +0 -100
  32. package/.github/workflows/tests.yml +0 -84
  33. package/.gitpod.yml +0 -11
  34. package/.jest-test-results.json +0 -1
  35. package/.prettierrc +0 -7
  36. package/.vscode/settings.json +0 -0
  37. package/__tests__/breadcrumbs.test.tsx +0 -75
  38. package/__tests__/button.test.tsx +0 -218
  39. package/__tests__/checkbox.test.tsx +0 -45
  40. package/__tests__/collection.test.tsx +0 -243
  41. package/__tests__/containers/paging.test.tsx +0 -138
  42. package/__tests__/control_group.test.tsx +0 -32
  43. package/__tests__/drawer.test.tsx +0 -140
  44. package/__tests__/dropdown.test.tsx +0 -381
  45. package/__tests__/effect.test.tsx +0 -70
  46. package/__tests__/heading.test.tsx +0 -58
  47. package/__tests__/helpers/colors.test.tsx +0 -18
  48. package/__tests__/helpers/table.test.tsx +0 -67
  49. package/__tests__/hooks/useLatestZIndex.test.tsx +0 -10
  50. package/__tests__/hooks/useReqorePaging.test.tsx +0 -271
  51. package/__tests__/hooks/useTheme.test.tsx +0 -31
  52. package/__tests__/icon.test.tsx +0 -53
  53. package/__tests__/input.test.tsx +0 -482
  54. package/__tests__/layout.test.tsx +0 -37
  55. package/__tests__/menu.test.tsx +0 -65
  56. package/__tests__/messages.test.tsx +0 -79
  57. package/__tests__/modal.test.tsx +0 -204
  58. package/__tests__/multiselect.test.tsx +0 -458
  59. package/__tests__/navbar.test.tsx +0 -31
  60. package/__tests__/notifications.test.tsx +0 -178
  61. package/__tests__/pagination.test.tsx +0 -437
  62. package/__tests__/panel.test.tsx +0 -243
  63. package/__tests__/popover.test.tsx +0 -282
  64. package/__tests__/radiogroup.test.tsx +0 -47
  65. package/__tests__/setup.js +0 -8
  66. package/__tests__/stories/Collection.stories.tsx +0 -0
  67. package/__tests__/table.test.tsx +0 -647
  68. package/__tests__/tabs.test.tsx +0 -321
  69. package/__tests__/tag.test.tsx +0 -160
  70. package/__tests__/textarea.test.tsx +0 -467
  71. package/__tests__/timeAgo.test.tsx +0 -27
  72. package/__tests__/tree.test.tsx +0 -58
  73. package/build-storybook.log +0 -491
  74. package/chromatic.config.json +0 -1
  75. package/icons.ts +0 -1
  76. package/migration-storybook.log +0 -56
  77. package/public/logo-dark.png +0 -0
  78. package/public/logo.png +0 -0
  79. package/public/q-symbol-small.png +0 -0
  80. package/public/q-symbol.png +0 -0
  81. package/public/qoreLogo-dark.png +0 -0
  82. package/public/qoreLogo.png +0 -0
  83. package/src/components/Breadcrumbs/index.tsx +0 -254
  84. package/src/components/Breadcrumbs/item.tsx +0 -44
  85. package/src/components/Button/index.tsx +0 -628
  86. package/src/components/Checkbox/index.tsx +0 -388
  87. package/src/components/Collection/index.tsx +0 -426
  88. package/src/components/Collection/item.tsx +0 -267
  89. package/src/components/Columns/column.tsx +0 -27
  90. package/src/components/Columns/index.tsx +0 -41
  91. package/src/components/Comment/index.tsx +0 -141
  92. package/src/components/CommentFeed/index.tsx +0 -34
  93. package/src/components/Content/index.tsx +0 -34
  94. package/src/components/Content/wrapper.tsx +0 -36
  95. package/src/components/ControlGroup/index.tsx +0 -523
  96. package/src/components/Drawer/backdrop.tsx +0 -54
  97. package/src/components/Drawer/index.tsx +0 -365
  98. package/src/components/Dropdown/index.tsx +0 -153
  99. package/src/components/Dropdown/item.tsx +0 -33
  100. package/src/components/Dropdown/list.tsx +0 -222
  101. package/src/components/Effect/index.tsx +0 -463
  102. package/src/components/ExportModal/index.tsx +0 -99
  103. package/src/components/Header/index.tsx +0 -81
  104. package/src/components/Icon/index.tsx +0 -184
  105. package/src/components/Input/index.tsx +0 -282
  106. package/src/components/InputClearButton/index.tsx +0 -59
  107. package/src/components/InternalPopover/index.tsx +0 -303
  108. package/src/components/KeyValueTable/index.tsx +0 -192
  109. package/src/components/Label/index.tsx +0 -10
  110. package/src/components/Layout/content.tsx +0 -31
  111. package/src/components/Layout/index.tsx +0 -55
  112. package/src/components/Menu/divider.tsx +0 -92
  113. package/src/components/Menu/index.tsx +0 -141
  114. package/src/components/Menu/item.tsx +0 -137
  115. package/src/components/Menu/section.tsx +0 -81
  116. package/src/components/Message/index.tsx +0 -220
  117. package/src/components/Modal/index.tsx +0 -26
  118. package/src/components/MultiSelect/index.tsx +0 -288
  119. package/src/components/Navbar/divider.tsx +0 -50
  120. package/src/components/Navbar/group.tsx +0 -53
  121. package/src/components/Navbar/index.tsx +0 -82
  122. package/src/components/Navbar/item.tsx +0 -92
  123. package/src/components/Notifications/index.tsx +0 -57
  124. package/src/components/Notifications/notification.tsx +0 -362
  125. package/src/components/Paging/index.tsx +0 -321
  126. package/src/components/Panel/LabelEditor.tsx +0 -67
  127. package/src/components/Panel/NonResponsiveActions.tsx +0 -79
  128. package/src/components/Panel/__screenshots__/linux/panel-SomePanel.png +0 -0
  129. package/src/components/Panel/index.tsx +0 -912
  130. package/src/components/Panel/panel.screenshot.tsx +0 -29
  131. package/src/components/Paragraph/index.tsx +0 -43
  132. package/src/components/Popover/index.tsx +0 -68
  133. package/src/components/RadioGroup/index.tsx +0 -71
  134. package/src/components/Slider/index.tsx +0 -358
  135. package/src/components/Spacer/index.tsx +0 -142
  136. package/src/components/Spinner/index.tsx +0 -74
  137. package/src/components/Table/body.tsx +0 -109
  138. package/src/components/Table/cell.tsx +0 -136
  139. package/src/components/Table/header.tsx +0 -236
  140. package/src/components/Table/headerCell.tsx +0 -203
  141. package/src/components/Table/helpers.ts +0 -308
  142. package/src/components/Table/index.tsx +0 -797
  143. package/src/components/Table/row.tsx +0 -288
  144. package/src/components/Table/value.tsx +0 -28
  145. package/src/components/Tabs/content.tsx +0 -68
  146. package/src/components/Tabs/index.tsx +0 -124
  147. package/src/components/Tabs/item.tsx +0 -198
  148. package/src/components/Tabs/list.tsx +0 -381
  149. package/src/components/Tag/group.tsx +0 -73
  150. package/src/components/Tag/index.tsx +0 -463
  151. package/src/components/Textarea/index.tsx +0 -277
  152. package/src/components/TimeAgo/index.tsx +0 -15
  153. package/src/components/Tree/index.tsx +0 -271
  154. package/src/constants/animations.ts +0 -9
  155. package/src/constants/colors.ts +0 -13
  156. package/src/constants/paging.ts +0 -93
  157. package/src/constants/sizes.ts +0 -185
  158. package/src/constants/theme.ts +0 -122
  159. package/src/containers/Paging.tsx +0 -136
  160. package/src/containers/PopoverProvider.tsx +0 -124
  161. package/src/containers/ReqoreProvider.tsx +0 -289
  162. package/src/containers/ThemeProvider.tsx +0 -12
  163. package/src/containers/UIProvider.tsx +0 -101
  164. package/src/context/PopoverContext.tsx +0 -11
  165. package/src/context/ReqoreContext.tsx +0 -47
  166. package/src/context/ThemeContext.tsx +0 -4
  167. package/src/helpers/animations.ts +0 -13
  168. package/src/helpers/colors.ts +0 -335
  169. package/src/helpers/time.ts +0 -21
  170. package/src/helpers/utils.ts +0 -152
  171. package/src/hooks/useAutoFocus.ts +0 -106
  172. package/src/hooks/useCloneThroughFragments.ts +0 -39
  173. package/src/hooks/useCombinedRefs.ts +0 -26
  174. package/src/hooks/useLatestZIndex.ts +0 -13
  175. package/src/hooks/useOutsideClick.ts +0 -29
  176. package/src/hooks/usePaging.ts +0 -128
  177. package/src/hooks/usePopover.tsx +0 -220
  178. package/src/hooks/useQueryWithDelay.ts +0 -30
  179. package/src/hooks/useReqore.ts +0 -12
  180. package/src/hooks/useReqoreContext.ts +0 -16
  181. package/src/hooks/useReqoreEffect.ts +0 -49
  182. package/src/hooks/useTextareaAutoSize.ts +0 -22
  183. package/src/hooks/useTheme.ts +0 -48
  184. package/src/hooks/useTooltip.ts +0 -40
  185. package/src/hooks/useWhyDidYouUpdate.ts +0 -32
  186. package/src/icons.json +0 -2295
  187. package/src/index.tsx +0 -79
  188. package/src/mock/breadcrumbs.ts +0 -146
  189. package/src/mock/collectionData.tsx +0 -380
  190. package/src/mock/data.json +0 -11000
  191. package/src/mock/icons.ts +0 -32
  192. package/src/mock/menu.ts +0 -93
  193. package/src/mock/multiSelect.ts +0 -71
  194. package/src/mock/object.json +0 -317
  195. package/src/mock/styleMock.js +0 -1
  196. package/src/mock/tableData.ts +0 -64
  197. package/src/stories/Breadcrumbs/Breadcrumbs.stories.tsx +0 -27
  198. package/src/stories/Button/Button.stories.tsx +0 -405
  199. package/src/stories/Checkbox/Checkbox.stories.tsx +0 -75
  200. package/src/stories/Collection/Collection.stories.tsx +0 -317
  201. package/src/stories/Columns/Columns.stories.tsx +0 -158
  202. package/src/stories/Comment/Comment.stories.tsx +0 -136
  203. package/src/stories/ControlGroup/ControlGroup.stories.tsx +0 -399
  204. package/src/stories/Drawer/Drawer.stories.tsx +0 -294
  205. package/src/stories/Dropdown/Dropdown.stories.tsx +0 -375
  206. package/src/stories/Dropdown/DropdownTests.stories.tsx +0 -111
  207. package/src/stories/ExportModal/ExportModal.stories.tsx +0 -18
  208. package/src/stories/Header/Header.stories.tsx +0 -108
  209. package/src/stories/Icon/Icon.stories.tsx +0 -162
  210. package/src/stories/Input/Input.stories.tsx +0 -220
  211. package/src/stories/KeyValueTable/KeyValueTable.stories.tsx +0 -346
  212. package/src/stories/Label/Label.stories.tsx +0 -33
  213. package/src/stories/Menu/Menu.stories.tsx +0 -367
  214. package/src/stories/Message/Message.stories.tsx +0 -167
  215. package/src/stories/Modal/Manager.stories.tsx +0 -192
  216. package/src/stories/Modal/Modal.stories.tsx +0 -252
  217. package/src/stories/MultiSelect/MultiSelect.stories.tsx +0 -140
  218. package/src/stories/Navbar/Navbar.stories.tsx +0 -119
  219. package/src/stories/Notifications/Interactive.stories.tsx +0 -117
  220. package/src/stories/Notifications/Notification.stories.tsx +0 -216
  221. package/src/stories/Notifications/Notifications.stories.tsx +0 -81
  222. package/src/stories/Paging/Paging.stories.tsx +0 -255
  223. package/src/stories/Panel/Panel.stories.tsx +0 -753
  224. package/src/stories/Paragraph/Paragraph.stories.tsx +0 -108
  225. package/src/stories/Popover/Popover.stories.tsx +0 -510
  226. package/src/stories/RadioGroup/RadioGroup.stories.tsx +0 -212
  227. package/src/stories/Slider/Slider.stories.tsx +0 -173
  228. package/src/stories/Spacer/Spacer.stories.tsx +0 -100
  229. package/src/stories/Spinner/Spinner.stories.tsx +0 -82
  230. package/src/stories/Table/Table.stories.tsx +0 -571
  231. package/src/stories/Tabs/Tabs.stories.tsx +0 -346
  232. package/src/stories/Tag/Tag.stories.tsx +0 -381
  233. package/src/stories/Tag/TagGroup.stories.tsx +0 -307
  234. package/src/stories/TextArea/TextArea.stories.tsx +0 -287
  235. package/src/stories/TextArea/TextAreaTests.stories.tsx +0 -108
  236. package/src/stories/Tree/Tree.stories.tsx +0 -124
  237. package/src/stories/Wrapper.tsx +0 -13
  238. package/src/stories/utils/args.ts +0 -151
  239. package/src/stories/utils.ts +0 -39
  240. package/src/styles.ts +0 -124
  241. package/src/types/global.ts +0 -211
  242. package/src/types/icons.ts +0 -2272
  243. package/tsconfig.prod.json +0 -26
@@ -1,243 +0,0 @@
1
- import '@testing-library/jest-dom/extend-expect';
2
- import { act, fireEvent, render, screen } from '@testing-library/react';
3
- import { mockAllIsIntersecting } from 'react-intersection-observer/test-utils';
4
- import { ReqoreCollection, ReqoreLayoutContent, ReqoreUIProvider } from '../src';
5
- import items, { bigCollection } from '../src/mock/collectionData';
6
-
7
- test('Renders basic <Collection /> properly', () => {
8
- render(
9
- <ReqoreUIProvider>
10
- <ReqoreLayoutContent>
11
- <ReqoreCollection items={items} />
12
- </ReqoreLayoutContent>
13
- </ReqoreUIProvider>
14
- );
15
-
16
- expect(document.querySelectorAll('.reqore-collection').length).toBe(1);
17
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
18
- });
19
-
20
- test('<Collection /> items can be filtered', () => {
21
- const fn = jest.fn();
22
- jest.useFakeTimers();
23
-
24
- render(
25
- <ReqoreUIProvider>
26
- <ReqoreLayoutContent>
27
- <ReqoreCollection items={items} filterable onQueryChange={fn} />
28
- </ReqoreLayoutContent>
29
- </ReqoreUIProvider>
30
- );
31
-
32
- fireEvent.change(document.querySelector('.reqore-input')!, {
33
- target: { value: 'I have' },
34
- });
35
-
36
- expect(fn).not.toHaveBeenCalled();
37
-
38
- act(() => {
39
- jest.advanceTimersByTime(500);
40
- });
41
-
42
- expect(fn).toHaveBeenCalledWith('I have');
43
-
44
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(2);
45
-
46
- fireEvent.change(document.querySelector('.reqore-input')!, {
47
- target: { value: 'asg' },
48
- });
49
-
50
- act(() => {
51
- jest.runAllTimers();
52
- });
53
-
54
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(0);
55
- expect(document.querySelectorAll('.reqore-message').length).toBe(1);
56
-
57
- fireEvent.change(document.querySelector('.reqore-input')!, {
58
- target: { value: 'secret' },
59
- });
60
-
61
- act(() => {
62
- jest.runAllTimers();
63
- });
64
-
65
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(1);
66
- expect(document.querySelectorAll('.reqore-message').length).toBe(0);
67
- });
68
-
69
- test('<Collection /> filter is properly removed by the clear button', () => {
70
- const fn = jest.fn();
71
- jest.useFakeTimers();
72
-
73
- render(
74
- <ReqoreUIProvider>
75
- <ReqoreLayoutContent>
76
- <ReqoreCollection items={items} filterable onQueryChange={fn} />
77
- </ReqoreLayoutContent>
78
- </ReqoreUIProvider>
79
- );
80
-
81
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
82
-
83
- fireEvent.change(document.querySelector('.reqore-input')!, {
84
- target: { value: 'I have' },
85
- });
86
-
87
- expect(fn).not.toHaveBeenCalled();
88
-
89
- act(() => {
90
- jest.advanceTimersByTime(500);
91
- });
92
-
93
- expect(fn).toHaveBeenCalledWith('I have');
94
-
95
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(2);
96
-
97
- fireEvent.click(document.querySelector('.reqore-clear-input-button')!);
98
-
99
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
100
- // Expect the input value to be empty
101
- expect(document.querySelector('.reqore-input')?.getAttribute('value')).toBe('');
102
- });
103
-
104
- test('<Collection /> filter is focused when a shortcut is pressed', () => {
105
- const fn = jest.fn();
106
-
107
- render(
108
- <ReqoreUIProvider>
109
- <ReqoreLayoutContent>
110
- <ReqoreCollection
111
- items={items}
112
- filterable
113
- onQueryChange={fn}
114
- inputProps={{ focusRules: { type: 'keypress', shortcut: 'letters' } }}
115
- />
116
- </ReqoreLayoutContent>
117
- </ReqoreUIProvider>
118
- );
119
-
120
- expect(document.querySelector('.reqore-input')).not.toHaveFocus();
121
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
122
-
123
- fireEvent.keyDown(document, {
124
- key: 'f',
125
- code: 102,
126
- charCode: 102,
127
- });
128
-
129
- expect(fn).not.toHaveBeenCalled();
130
-
131
- expect(document.querySelector('.reqore-input')).toHaveFocus();
132
- });
133
-
134
- test('<Collection /> shows no data message when empty', () => {
135
- render(
136
- <ReqoreUIProvider>
137
- <ReqoreLayoutContent>
138
- <ReqoreCollection items={[]} filterable />
139
- </ReqoreLayoutContent>
140
- </ReqoreUIProvider>
141
- );
142
-
143
- expect(document.querySelectorAll('.reqore-message').length).toBe(1);
144
- });
145
-
146
- test('<Collection /> has default paging', () => {
147
- render(
148
- <ReqoreUIProvider>
149
- <ReqoreLayoutContent>
150
- <ReqoreCollection items={bigCollection} paging='buttons' />
151
- </ReqoreLayoutContent>
152
- </ReqoreUIProvider>
153
- );
154
-
155
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
156
- });
157
-
158
- test('<Collection /> has list paging', () => {
159
- render(
160
- <ReqoreUIProvider>
161
- <ReqoreLayoutContent>
162
- <ReqoreCollection items={bigCollection} paging='list' />
163
- </ReqoreLayoutContent>
164
- </ReqoreUIProvider>
165
- );
166
-
167
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
168
- expect(document.querySelectorAll('.reqore-dropdown-control').length).toBe(2);
169
- expect(screen.getAllByText('1 / 10')).toBeTruthy();
170
- });
171
-
172
- test('<Collection /> has infinite paging', () => {
173
- render(
174
- <ReqoreUIProvider>
175
- <ReqoreLayoutContent>
176
- <ReqoreCollection items={bigCollection} paging='infinite' />
177
- </ReqoreLayoutContent>
178
- </ReqoreUIProvider>
179
- );
180
-
181
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
182
- expect(document.querySelectorAll('.reqore-button').length).toBe(3);
183
- expect(screen.getAllByText('90')).toBeTruthy();
184
-
185
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(10);
186
-
187
- fireEvent.click(document.querySelectorAll('.reqore-button')[1]);
188
-
189
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(20);
190
- });
191
-
192
- test('<Collection /> has custom paging', () => {
193
- const onPageChange = jest.fn();
194
- render(
195
- <ReqoreUIProvider>
196
- <ReqoreLayoutContent>
197
- <ReqoreCollection
198
- items={bigCollection}
199
- paging={{
200
- itemsPerPage: 50,
201
- infinite: true,
202
- autoLoadMore: true,
203
- showLabels: true,
204
- loadMoreLabel: 'Scroll to load more',
205
- onPageChange,
206
- }}
207
- />
208
- </ReqoreLayoutContent>
209
- </ReqoreUIProvider>
210
- );
211
-
212
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
213
- expect(document.querySelectorAll('.reqore-button').length).toBe(3);
214
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(50);
215
- expect(screen.getAllByText('Scroll to load more')).toBeTruthy();
216
- expect(screen.getAllByText('50')).toBeTruthy();
217
-
218
- mockAllIsIntersecting(true);
219
-
220
- expect(onPageChange).toHaveBeenCalledWith(2, { isFirst: false, isLast: true });
221
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(100);
222
- });
223
-
224
- test('<Collection /> has 2 paging controls', () => {
225
- render(
226
- <ReqoreUIProvider>
227
- <ReqoreLayoutContent>
228
- <ReqoreCollection
229
- items={bigCollection}
230
- paging={{
231
- itemsPerPage: 10,
232
- showPagesAs: 'list',
233
- pageControlsPosition: 'both',
234
- }}
235
- />
236
- </ReqoreLayoutContent>
237
- </ReqoreUIProvider>
238
- );
239
-
240
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(2);
241
- expect(document.querySelectorAll('.reqore-button').length).toBe(11);
242
- expect(document.querySelectorAll('.reqore-collection-item').length).toBe(10);
243
- });
@@ -1,138 +0,0 @@
1
- import { fireEvent, render, screen } from '@testing-library/react';
2
- import React from 'react';
3
- import {
4
- ReqoreContent,
5
- ReqoreControlGroup,
6
- ReqoreLayoutContent,
7
- ReqorePaginationContainer,
8
- ReqoreTag,
9
- ReqoreUIProvider,
10
- } from '../../src';
11
- import { tableData as data } from '../../src/mock/tableData';
12
-
13
- test('Renders default <PaginationContainer />', () => {
14
- render(
15
- <ReqoreUIProvider>
16
- <ReqoreLayoutContent>
17
- <ReqoreContent>
18
- <ReqorePaginationContainer<any> items={data} type='buttons'>
19
- {(items) => (
20
- <ReqoreControlGroup vertical>
21
- {items.map((item) => (
22
- <ReqoreTag label={`${item.firstName} ${item.lastName}`} />
23
- ))}
24
- </ReqoreControlGroup>
25
- )}
26
- </ReqorePaginationContainer>
27
- </ReqoreContent>
28
- </ReqoreLayoutContent>
29
- </ReqoreUIProvider>
30
- );
31
-
32
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
33
- expect(document.querySelectorAll('.reqore-button')[0]?.getAttribute('disabled')).toBe('');
34
- expect(document.querySelectorAll('.reqore-button').length).toBe(102);
35
-
36
- fireEvent.click(document.querySelectorAll('.reqore-button')[100]);
37
-
38
- expect(screen.getAllByText('Rodd Solly')).toBeTruthy();
39
- expect(document.querySelectorAll('.reqore-button')[101]?.getAttribute('disabled')).toBe('');
40
- });
41
-
42
- test('Renders default <PaginationContainer /> with both control wrappers', () => {
43
- render(
44
- <ReqoreUIProvider>
45
- <ReqoreLayoutContent>
46
- <ReqoreContent>
47
- <ReqorePaginationContainer<any> items={data} type={{ pageControlsPosition: 'both' }}>
48
- {(items) => (
49
- <ReqoreControlGroup vertical>
50
- {items.map((item) => (
51
- <ReqoreTag label={`${item.firstName} ${item.lastName}`} />
52
- ))}
53
- </ReqoreControlGroup>
54
- )}
55
- </ReqorePaginationContainer>
56
- </ReqoreContent>
57
- </ReqoreLayoutContent>
58
- </ReqoreUIProvider>
59
- );
60
-
61
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(2);
62
- expect(document.querySelectorAll('.reqore-button')[0]?.getAttribute('disabled')).toBe('');
63
- expect(document.querySelectorAll('.reqore-button').length).toBe(204);
64
-
65
- fireEvent.click(document.querySelectorAll('.reqore-button')[100]);
66
-
67
- expect(screen.getAllByText('Rodd Solly')).toBeTruthy();
68
-
69
- expect(document.querySelectorAll('.reqore-button')[101]?.getAttribute('disabled')).toBe('');
70
- expect(document.querySelectorAll('.reqore-button')[203]?.getAttribute('disabled')).toBe('');
71
- });
72
-
73
- test('Renders default <PaginationContainer /> with both control wrappers, one included in children', () => {
74
- render(
75
- <ReqoreUIProvider>
76
- <ReqoreLayoutContent>
77
- <ReqoreContent>
78
- <ReqorePaginationContainer<any>
79
- items={data}
80
- type={{ pageControlsPosition: 'both', includeBottomControls: false }}
81
- >
82
- {(items, Controls, { includeBottomControls }) => (
83
- <ReqoreControlGroup vertical>
84
- {items.map((item) => (
85
- <ReqoreTag label={`${item.firstName} ${item.lastName}`} />
86
- ))}
87
- {!includeBottomControls && Controls}
88
- </ReqoreControlGroup>
89
- )}
90
- </ReqorePaginationContainer>
91
- </ReqoreContent>
92
- </ReqoreLayoutContent>
93
- </ReqoreUIProvider>
94
- );
95
-
96
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(2);
97
- expect(document.querySelectorAll('.reqore-button')[0]?.getAttribute('disabled')).toBe('');
98
- expect(document.querySelectorAll('.reqore-button').length).toBe(204);
99
-
100
- fireEvent.click(document.querySelectorAll('.reqore-button')[100]);
101
-
102
- expect(screen.getAllByText('Rodd Solly')).toBeTruthy();
103
-
104
- expect(document.querySelectorAll('.reqore-button')[101]?.getAttribute('disabled')).toBe('');
105
- expect(document.querySelectorAll('.reqore-button')[203]?.getAttribute('disabled')).toBe('');
106
- });
107
-
108
- test('Renders default <PaginationContainer /> with onPageChange callback', () => {
109
- const fn = jest.fn();
110
-
111
- render(
112
- <ReqoreUIProvider>
113
- <ReqoreLayoutContent>
114
- <ReqoreContent>
115
- <ReqorePaginationContainer<any>
116
- items={data}
117
- type={{ onPageChange: fn, infinite: true }}
118
- >
119
- {(items) => (
120
- <ReqoreControlGroup vertical>
121
- {items.map((item) => (
122
- <ReqoreTag label={`${item.firstName} ${item.lastName}`} />
123
- ))}
124
- </ReqoreControlGroup>
125
- )}
126
- </ReqorePaginationContainer>
127
- </ReqoreContent>
128
- </ReqoreLayoutContent>
129
- </ReqoreUIProvider>
130
- );
131
-
132
- expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
133
-
134
- fireEvent.click(document.querySelectorAll('.reqore-button')[0]);
135
-
136
- expect(fn).toBeCalledTimes(1);
137
- expect(fn).toBeCalledWith(2, { isFirst: false, isLast: false });
138
- });
@@ -1,32 +0,0 @@
1
- import { render } from '@testing-library/react';
2
- import {
3
- ReqoreButton,
4
- ReqoreContent,
5
- ReqoreControlGroup,
6
- ReqoreInput,
7
- ReqoreLayoutContent,
8
- ReqoreUIProvider,
9
- } from '../src';
10
-
11
- test('Renders <ControlGroup /> properly', () => {
12
- render(
13
- <ReqoreUIProvider>
14
- <ReqoreLayoutContent>
15
- <ReqoreContent>
16
- <ReqoreControlGroup>
17
- <ReqoreInput minimal />
18
- <ReqoreButton>Hello</ReqoreButton>
19
- <ReqoreInput disabled />
20
- <ReqoreInput size='big' />
21
- <ReqoreButton>Hello</ReqoreButton>
22
- <ReqoreButton>Hello</ReqoreButton>
23
- </ReqoreControlGroup>
24
- </ReqoreContent>
25
- </ReqoreLayoutContent>
26
- </ReqoreUIProvider>
27
- );
28
-
29
- expect(document.querySelectorAll('.reqore-input').length).toBe(3);
30
- expect(document.querySelectorAll('.reqore-button').length).toBe(3);
31
- expect(document.querySelectorAll('.reqore-control-group').length).toBe(1);
32
- });
@@ -1,140 +0,0 @@
1
- import { fireEvent, render } from '@testing-library/react';
2
- import React from 'react';
3
- import {
4
- ReqoreButton,
5
- ReqoreContent,
6
- ReqoreDrawer,
7
- ReqoreLayoutContent,
8
- ReqoreUIProvider,
9
- } from '../src';
10
-
11
- test('Does not render <Drawer /> if not open', () => {
12
- render(
13
- <ReqoreUIProvider>
14
- <ReqoreLayoutContent>
15
- <ReqoreContent>
16
- <ReqoreDrawer>Hello</ReqoreDrawer>
17
- </ReqoreContent>
18
- </ReqoreLayoutContent>
19
- </ReqoreUIProvider>
20
- );
21
-
22
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(0);
23
- });
24
-
25
- test('Renders opened <Drawer /> properly', () => {
26
- render(
27
- <ReqoreUIProvider>
28
- <ReqoreLayoutContent>
29
- <ReqoreContent>
30
- <ReqoreDrawer isOpen>Hello</ReqoreDrawer>
31
- </ReqoreContent>
32
- </ReqoreLayoutContent>
33
- </ReqoreUIProvider>
34
- );
35
-
36
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(1);
37
- });
38
-
39
- test('Renders hidable <Drawer /> properly', () => {
40
- const fn = jest.fn();
41
-
42
- render(
43
- <ReqoreUIProvider>
44
- <ReqoreLayoutContent>
45
- <ReqoreContent>
46
- <ReqoreDrawer isOpen hidable onHideToggle={fn} isHidden>
47
- Hello
48
- </ReqoreDrawer>
49
- </ReqoreContent>
50
- </ReqoreLayoutContent>
51
- </ReqoreUIProvider>
52
- );
53
-
54
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(0);
55
- expect(document.querySelectorAll('.reqore-drawer-hide-button').length).toBe(1);
56
- expect(document.querySelectorAll('.reqore-drawer-close-button').length).toBe(0);
57
-
58
- fireEvent.click(document.querySelector('.reqore-drawer-hide-button')!);
59
-
60
- expect(fn).toHaveBeenCalledWith(false);
61
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(1);
62
-
63
- fireEvent.click(document.querySelector('.reqore-drawer-hide-button')!);
64
-
65
- expect(fn).toHaveBeenLastCalledWith(true);
66
- expect(fn).toHaveBeenCalledTimes(2);
67
- });
68
-
69
- test('Renders closable <Drawer /> properly', () => {
70
- const fn = jest.fn();
71
-
72
- render(
73
- <ReqoreUIProvider>
74
- <ReqoreLayoutContent>
75
- <ReqoreContent style={{ width: 800 }}>
76
- <ReqoreDrawer isOpen onClose={fn}>
77
- Hello
78
- </ReqoreDrawer>
79
- </ReqoreContent>
80
- </ReqoreLayoutContent>
81
- </ReqoreUIProvider>
82
- );
83
-
84
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(1);
85
- expect(document.querySelectorAll('.reqore-drawer-close-button').length).toBe(1);
86
-
87
- fireEvent.click(document.querySelector('.reqore-drawer-close-button')!);
88
-
89
- expect(fn).toHaveBeenCalled();
90
- });
91
-
92
- test('Renders <Drawer /> with interactive backdrop', () => {
93
- const fn = jest.fn();
94
-
95
- render(
96
- <ReqoreUIProvider>
97
- <ReqoreLayoutContent>
98
- <ReqoreContent>
99
- <ReqoreDrawer isOpen onClose={fn} hasBackdrop>
100
- Hello
101
- </ReqoreDrawer>
102
- </ReqoreContent>
103
- </ReqoreLayoutContent>
104
- </ReqoreUIProvider>
105
- );
106
-
107
- expect(document.querySelectorAll('.reqore-drawer').length).toBe(1);
108
- expect(document.querySelectorAll('.reqore-drawer-close-button').length).toBe(1);
109
- expect(document.querySelectorAll('.reqore-drawer-backdrop').length).toBe(1);
110
-
111
- fireEvent.click(document.querySelector('.reqore-drawer-backdrop')!);
112
-
113
- expect(fn).toHaveBeenCalled();
114
- });
115
-
116
- const CustomDrawer = () => {
117
- const [count, setCount] = React.useState(0);
118
-
119
- return (
120
- <ReqoreUIProvider>
121
- <ReqoreLayoutContent>
122
- <ReqoreContent>
123
- <ReqoreDrawer isOpen hasBackdrop actions={[{ label: `Count is ${count}` }]}>
124
- <ReqoreButton onClick={() => setCount(count + 1)}>Click me</ReqoreButton>
125
- </ReqoreDrawer>
126
- </ReqoreContent>
127
- </ReqoreLayoutContent>
128
- </ReqoreUIProvider>
129
- );
130
- };
131
-
132
- test('<Drawer /> actions are changed properly', () => {
133
- const { getAllByText } = render(<CustomDrawer />);
134
-
135
- expect(getAllByText('Count is 0')[0]).toBeTruthy();
136
-
137
- fireEvent.click(getAllByText('Click me')[0]);
138
-
139
- expect(getAllByText('Count is 1')[0]).toBeTruthy();
140
- });