@qoretechnologies/reqore 0.32.2 → 0.33.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 (103) hide show
  1. package/__tests__/collection.test.tsx +123 -5
  2. package/__tests__/hooks/useLatestZIndex.test.tsx +10 -0
  3. package/__tests__/hooks/useReqorePaging.test.tsx +251 -0
  4. package/__tests__/hooks/useTheme.test.tsx +31 -0
  5. package/__tests__/pagination.test.tsx +301 -0
  6. package/__tests__/popover.test.tsx +20 -6
  7. package/__tests__/setup.js +8 -0
  8. package/__tests__/tree.test.tsx +0 -1
  9. package/dist/components/Button/index.d.ts +1 -0
  10. package/dist/components/Button/index.d.ts.map +1 -1
  11. package/dist/components/Button/index.js +11 -7
  12. package/dist/components/Button/index.js.map +1 -1
  13. package/dist/components/Collection/index.d.ts +9 -3
  14. package/dist/components/Collection/index.d.ts.map +1 -1
  15. package/dist/components/Collection/index.js +34 -8
  16. package/dist/components/Collection/index.js.map +1 -1
  17. package/dist/components/ControlGroup/index.d.ts.map +1 -1
  18. package/dist/components/ControlGroup/index.js +4 -2
  19. package/dist/components/ControlGroup/index.js.map +1 -1
  20. package/dist/components/Dropdown/index.d.ts +5 -2
  21. package/dist/components/Dropdown/index.d.ts.map +1 -1
  22. package/dist/components/Dropdown/index.js +2 -2
  23. package/dist/components/Dropdown/index.js.map +1 -1
  24. package/dist/components/Dropdown/list.d.ts +4 -1
  25. package/dist/components/Dropdown/list.d.ts.map +1 -1
  26. package/dist/components/Dropdown/list.js +3 -3
  27. package/dist/components/Dropdown/list.js.map +1 -1
  28. package/dist/components/Menu/item.d.ts +1 -0
  29. package/dist/components/Menu/item.d.ts.map +1 -1
  30. package/dist/components/Menu/item.js +14 -2
  31. package/dist/components/Menu/item.js.map +1 -1
  32. package/dist/components/MultiSelect/index.d.ts +1 -1
  33. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  34. package/dist/components/Paging/index.d.ts +30 -0
  35. package/dist/components/Paging/index.d.ts.map +1 -0
  36. package/dist/components/Paging/index.js +106 -0
  37. package/dist/components/Paging/index.js.map +1 -0
  38. package/dist/components/Paragraph/index.js +1 -1
  39. package/dist/components/Spinner/index.d.ts +3 -2
  40. package/dist/components/Spinner/index.d.ts.map +1 -1
  41. package/dist/components/Spinner/index.js +13 -2
  42. package/dist/components/Spinner/index.js.map +1 -1
  43. package/dist/components/Tag/index.d.ts +3 -2
  44. package/dist/components/Tag/index.d.ts.map +1 -1
  45. package/dist/components/Tag/index.js +10 -7
  46. package/dist/components/Tag/index.js.map +1 -1
  47. package/dist/constants/colors.d.ts +2 -9
  48. package/dist/constants/colors.d.ts.map +1 -1
  49. package/dist/constants/colors.js +3 -1
  50. package/dist/constants/colors.js.map +1 -1
  51. package/dist/constants/paging.d.ts +10 -0
  52. package/dist/constants/paging.d.ts.map +1 -0
  53. package/dist/constants/paging.js +41 -0
  54. package/dist/constants/paging.js.map +1 -0
  55. package/dist/constants/theme.d.ts.map +1 -1
  56. package/dist/constants/theme.js +8 -7
  57. package/dist/constants/theme.js.map +1 -1
  58. package/dist/containers/ReqoreProvider.d.ts.map +1 -1
  59. package/dist/containers/ReqoreProvider.js +2 -2
  60. package/dist/containers/ReqoreProvider.js.map +1 -1
  61. package/dist/containers/UIProvider.d.ts.map +1 -1
  62. package/dist/containers/UIProvider.js +9 -3
  63. package/dist/containers/UIProvider.js.map +1 -1
  64. package/dist/hooks/useCombinedRefs.d.ts +2 -2
  65. package/dist/hooks/useCombinedRefs.d.ts.map +1 -1
  66. package/dist/hooks/useCombinedRefs.js.map +1 -1
  67. package/dist/hooks/usePaging.d.ts +27 -0
  68. package/dist/hooks/usePaging.d.ts.map +1 -0
  69. package/dist/hooks/usePaging.js +83 -0
  70. package/dist/hooks/usePaging.js.map +1 -0
  71. package/dist/index.d.ts +3 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +8 -2
  74. package/dist/index.js.map +1 -1
  75. package/package.json +6 -4
  76. package/src/components/Button/index.tsx +18 -10
  77. package/src/components/Collection/index.tsx +96 -44
  78. package/src/components/ControlGroup/index.tsx +4 -2
  79. package/src/components/Dropdown/index.tsx +8 -2
  80. package/src/components/Dropdown/list.tsx +7 -1
  81. package/src/components/Menu/item.tsx +16 -2
  82. package/src/components/MultiSelect/index.tsx +1 -1
  83. package/src/components/Paging/index.tsx +232 -0
  84. package/src/components/Paragraph/index.tsx +1 -1
  85. package/src/components/Spinner/index.tsx +11 -3
  86. package/src/components/Tag/index.tsx +9 -7
  87. package/src/constants/colors.ts +5 -1
  88. package/src/constants/paging.ts +48 -0
  89. package/src/constants/theme.ts +8 -7
  90. package/src/containers/ReqoreProvider.tsx +3 -3
  91. package/src/containers/UIProvider.tsx +17 -4
  92. package/src/hooks/useCombinedRefs.ts +2 -2
  93. package/src/hooks/usePaging.ts +110 -0
  94. package/src/index.tsx +3 -0
  95. package/src/mock/collectionData.tsx +19 -0
  96. package/src/mock/tableData.ts +1 -0
  97. package/src/stories/Button/Button.stories.tsx +25 -8
  98. package/src/stories/Collection/Collection.stories.tsx +32 -42
  99. package/src/stories/Dropdown/Dropdown.stories.tsx +24 -1
  100. package/src/stories/Paging/Paging.stories.tsx +184 -0
  101. package/src/stories/Spinner/Spinner.stories.tsx +7 -2
  102. package/src/stories/Tag/Tag.stories.tsx +50 -0
  103. package/tests.json +1 -1
@@ -1,8 +1,9 @@
1
1
  import '@testing-library/jest-dom/extend-expect';
2
- import { fireEvent, render } from '@testing-library/react';
2
+ import { act, fireEvent, render, screen } from '@testing-library/react';
3
3
  import React from 'react';
4
+ import { mockAllIsIntersecting } from 'react-intersection-observer/test-utils';
4
5
  import { ReqoreCollection, ReqoreLayoutContent, ReqoreUIProvider } from '../src';
5
- import items from '../src/mock/collectionData';
6
+ import items, { bigCollection } from '../src/mock/collectionData';
6
7
 
7
8
  test('Renders basic <Collection /> properly', () => {
8
9
  render(
@@ -35,16 +36,21 @@ test('<Collection /> items can be filtered', () => {
35
36
 
36
37
  expect(fn).not.toHaveBeenCalled();
37
38
 
38
- jest.runAllTimers();
39
+ act(() => {
40
+ jest.advanceTimersByTime(500);
41
+ });
39
42
 
40
43
  expect(fn).toHaveBeenCalledWith('I have');
44
+
41
45
  expect(document.querySelectorAll('.reqore-collection-item').length).toBe(2);
42
46
 
43
47
  fireEvent.change(document.querySelector('.reqore-input')!, {
44
48
  target: { value: 'asg' },
45
49
  });
46
50
 
47
- jest.runAllTimers();
51
+ act(() => {
52
+ jest.runAllTimers();
53
+ });
48
54
 
49
55
  expect(document.querySelectorAll('.reqore-collection-item').length).toBe(0);
50
56
  expect(document.querySelectorAll('.reqore-message').length).toBe(1);
@@ -53,12 +59,49 @@ test('<Collection /> items can be filtered', () => {
53
59
  target: { value: 'secret' },
54
60
  });
55
61
 
56
- jest.runAllTimers();
62
+ act(() => {
63
+ jest.runAllTimers();
64
+ });
57
65
 
58
66
  expect(document.querySelectorAll('.reqore-collection-item').length).toBe(1);
59
67
  expect(document.querySelectorAll('.reqore-message').length).toBe(0);
60
68
  });
61
69
 
70
+ test('<Collection /> filter is properly removed by the clear button', () => {
71
+ const fn = jest.fn();
72
+ jest.useFakeTimers();
73
+
74
+ render(
75
+ <ReqoreUIProvider>
76
+ <ReqoreLayoutContent>
77
+ <ReqoreCollection items={items} filterable onQueryChange={fn} />
78
+ </ReqoreLayoutContent>
79
+ </ReqoreUIProvider>
80
+ );
81
+
82
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
83
+
84
+ fireEvent.change(document.querySelector('.reqore-input')!, {
85
+ target: { value: 'I have' },
86
+ });
87
+
88
+ expect(fn).not.toHaveBeenCalled();
89
+
90
+ act(() => {
91
+ jest.advanceTimersByTime(500);
92
+ });
93
+
94
+ expect(fn).toHaveBeenCalledWith('I have');
95
+
96
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(2);
97
+
98
+ fireEvent.click(document.querySelector('.reqore-clear-input-button')!);
99
+
100
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(9);
101
+ // Expect the input value to be empty
102
+ expect(document.querySelector('.reqore-input')?.getAttribute('value')).toBe('');
103
+ });
104
+
62
105
  test('<Collection /> shows no data message when empty', () => {
63
106
  render(
64
107
  <ReqoreUIProvider>
@@ -90,3 +133,78 @@ test('<Collection /> can be sorted', () => {
90
133
 
91
134
  expect(firstNewItem?.querySelector('h3')?.textContent).toBe('This item is not flat');
92
135
  });
136
+
137
+ test('<Collection /> has default paging', () => {
138
+ render(
139
+ <ReqoreUIProvider>
140
+ <ReqoreLayoutContent>
141
+ <ReqoreCollection items={bigCollection} paging />
142
+ </ReqoreLayoutContent>
143
+ </ReqoreUIProvider>
144
+ );
145
+
146
+ expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
147
+ });
148
+
149
+ test('<Collection /> has list paging', () => {
150
+ render(
151
+ <ReqoreUIProvider>
152
+ <ReqoreLayoutContent>
153
+ <ReqoreCollection items={bigCollection} paging='list' />
154
+ </ReqoreLayoutContent>
155
+ </ReqoreUIProvider>
156
+ );
157
+
158
+ expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
159
+ expect(document.querySelectorAll('.reqore-dropdown-control').length).toBe(1);
160
+ expect(screen.getAllByText('1 / 10')).toBeTruthy();
161
+ });
162
+
163
+ test('<Collection /> has infinite paging', () => {
164
+ render(
165
+ <ReqoreUIProvider>
166
+ <ReqoreLayoutContent>
167
+ <ReqoreCollection items={bigCollection} paging='infinite' />
168
+ </ReqoreLayoutContent>
169
+ </ReqoreUIProvider>
170
+ );
171
+
172
+ expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
173
+ expect(document.querySelectorAll('.reqore-button').length).toBe(2);
174
+ expect(screen.getAllByText('90')).toBeTruthy();
175
+
176
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(10);
177
+
178
+ fireEvent.click(document.querySelectorAll('.reqore-button')[1]);
179
+
180
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(20);
181
+ });
182
+
183
+ test('<Collection /> has custom paging', () => {
184
+ render(
185
+ <ReqoreUIProvider>
186
+ <ReqoreLayoutContent>
187
+ <ReqoreCollection
188
+ items={bigCollection}
189
+ paging={{
190
+ itemsPerPage: 50,
191
+ infinite: true,
192
+ autoLoadMore: true,
193
+ showLabels: true,
194
+ loadMoreLabel: 'Scroll to load more',
195
+ }}
196
+ />
197
+ </ReqoreLayoutContent>
198
+ </ReqoreUIProvider>
199
+ );
200
+
201
+ expect(document.querySelectorAll('.reqore-pagination-wrapper').length).toBe(1);
202
+ expect(document.querySelectorAll('.reqore-button').length).toBe(2);
203
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(50);
204
+ expect(screen.getAllByText('Scroll to load more')).toBeTruthy();
205
+ expect(screen.getAllByText('50')).toBeTruthy();
206
+
207
+ mockAllIsIntersecting(true);
208
+
209
+ expect(document.querySelectorAll('.reqore-collection-item').length).toBe(100);
210
+ });
@@ -0,0 +1,10 @@
1
+ import { renderHook } from '@testing-library/react';
2
+ import React from 'react';
3
+ import { ReqoreUIProvider, useLatestZIndex } from '../../src';
4
+
5
+ test('useLatestZIndex returns incremental z indexes', () => {
6
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
7
+ const { result } = renderHook(() => useLatestZIndex(), { wrapper });
8
+
9
+ expect(result.current).toEqual(9002);
10
+ });
@@ -0,0 +1,251 @@
1
+ import { renderHook } from '@testing-library/react';
2
+ import React from 'react';
3
+ import { act } from 'react-dom/test-utils';
4
+ import { ReqoreUIProvider, useReqorePaging } from '../../src';
5
+ import { IReqorePagingOptions } from '../../src/hooks/usePaging';
6
+ import { tableData as data } from '../../src/mock/tableData';
7
+
8
+ test('useReqorePaging returns all pages', () => {
9
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
10
+ const { result } = renderHook(
11
+ ({ items }) =>
12
+ useReqorePaging({
13
+ items,
14
+ }),
15
+ { wrapper, initialProps: { items: data } }
16
+ );
17
+
18
+ expect(result.current.pages.length).toEqual(100);
19
+ expect(result.current.pageCount).toEqual(100);
20
+ });
21
+
22
+ test('useReqorePaging with default start page', () => {
23
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
24
+ const { result } = renderHook(
25
+ ({ items }) =>
26
+ useReqorePaging({
27
+ items,
28
+ startPage: 11,
29
+ pagesToShow: 5,
30
+ }),
31
+ { wrapper, initialProps: { items: data } }
32
+ );
33
+
34
+ expect(result.current.pageCount).toEqual(100);
35
+ expect(result.current.currentPage).toEqual(11);
36
+ expect(result.current.pages.length).toEqual(7);
37
+ expect(result.current.pages[0]).toEqual(1);
38
+ expect(result.current.pages[1]).toEqual(9);
39
+ expect(result.current.pages[5]).toEqual(13);
40
+ expect(result.current.pages[6]).toEqual(100);
41
+ });
42
+
43
+ test('useReqorePaging specified number of pages', () => {
44
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
45
+ const { result } = renderHook(
46
+ ({ items }) =>
47
+ useReqorePaging({
48
+ items,
49
+ pagesToShow: 5,
50
+ }),
51
+ { wrapper, initialProps: { items: data } }
52
+ );
53
+
54
+ expect(result.current.allPages.length).toEqual(100);
55
+ expect(result.current.pages!.length).toEqual(6);
56
+ expect(result.current.pages![0]).toEqual(1);
57
+ expect(result.current.pages![4]).toEqual(5);
58
+
59
+ act(() => {
60
+ result.current.setPage(8);
61
+ });
62
+
63
+ expect(result.current.pages![1]).toEqual(6);
64
+ expect(result.current.pages![5]).toEqual(10);
65
+
66
+ act(() => {
67
+ result.current.last();
68
+ });
69
+
70
+ expect(result.current.pages![1]).toEqual(96);
71
+ expect(result.current.pages![5]).toEqual(100);
72
+ });
73
+
74
+ test('useReqorePaging returns 1 page when items are empty', () => {
75
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
76
+ const { result } = renderHook(
77
+ ({ items }) =>
78
+ useReqorePaging({
79
+ items,
80
+ }),
81
+ { wrapper, initialProps: { items: [] } }
82
+ );
83
+
84
+ expect(result.current.pages.length).toEqual(1);
85
+ });
86
+
87
+ test('useReqorePaging returns correct number of rounded pages', () => {
88
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
89
+ const { result } = renderHook(
90
+ ({ itemsPerPage, items }) =>
91
+ useReqorePaging({
92
+ items,
93
+ itemsPerPage,
94
+ }),
95
+ { wrapper, initialProps: { itemsPerPage: 13, items: data } }
96
+ );
97
+
98
+ expect(result.current.pages.length).toEqual(77);
99
+ });
100
+
101
+ test('useReqorePaging returns items per page', () => {
102
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
103
+ const { result } = renderHook(
104
+ ({ itemsPerPage, items }) =>
105
+ useReqorePaging({
106
+ items,
107
+ itemsPerPage,
108
+ }),
109
+ { wrapper, initialProps: { itemsPerPage: 10, items: data } }
110
+ );
111
+
112
+ expect(result.current.pages.length).toEqual(100);
113
+ expect(result.current.items.length).toEqual(10);
114
+ });
115
+
116
+ test('useReqorePaging returns new items and pages when size of data change, current page is set to 1', () => {
117
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
118
+ const { result, rerender } = renderHook(
119
+ ({ itemsPerPage, items }) =>
120
+ useReqorePaging({
121
+ items,
122
+ itemsPerPage,
123
+ }),
124
+ { wrapper, initialProps: { itemsPerPage: 10, items: data } }
125
+ );
126
+
127
+ expect(result.current.pages.length).toEqual(100);
128
+ expect(result.current.items.length).toEqual(10);
129
+
130
+ act(() => {
131
+ result.current.setPage(5);
132
+ });
133
+
134
+ expect(result.current.currentPage).toEqual(5);
135
+
136
+ rerender({ itemsPerPage: 15, items: data.slice(0, 30) });
137
+
138
+ expect(result.current.pages.length).toEqual(2);
139
+ expect(result.current.items.length).toEqual(15);
140
+ expect(result.current.currentPage).toEqual(1);
141
+ });
142
+
143
+ test('useReqorePaging does not return new items and pages when data change', () => {
144
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
145
+ const { result, rerender } = renderHook(
146
+ ({ itemsPerPage, items }: IReqorePagingOptions<any>) =>
147
+ useReqorePaging({
148
+ items,
149
+ itemsPerPage,
150
+ }),
151
+ { wrapper, initialProps: { itemsPerPage: 10, items: data } as IReqorePagingOptions<any> }
152
+ );
153
+
154
+ expect(result.current.pages.length).toEqual(100);
155
+ expect(result.current.items.length).toEqual(10);
156
+
157
+ act(() => {
158
+ result.current.setPage(5);
159
+ });
160
+
161
+ rerender({ items: [...data] });
162
+
163
+ expect(result.current.pages.length).toEqual(100);
164
+ expect(result.current.items.length).toEqual(10);
165
+ expect(result.current.currentPage).toEqual(5);
166
+ });
167
+
168
+ test('useReqorePaging page navigation works correctly', () => {
169
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
170
+ const { result } = renderHook(
171
+ ({ itemsPerPage, items }: IReqorePagingOptions<any>) =>
172
+ useReqorePaging({
173
+ items,
174
+ itemsPerPage,
175
+ infinite: true,
176
+ }),
177
+ { wrapper, initialProps: { itemsPerPage: 10, items: data } as IReqorePagingOptions<any> }
178
+ );
179
+
180
+ expect(result.current.pages.length).toEqual(100);
181
+ expect(result.current.items.length).toEqual(10);
182
+
183
+ act(() => {
184
+ result.current.setPage(2);
185
+ });
186
+
187
+ expect(result.current.currentPage).toEqual(2);
188
+
189
+ act(() => {
190
+ result.current.next();
191
+ });
192
+
193
+ expect(result.current.currentPage).toEqual(3);
194
+
195
+ act(() => {
196
+ result.current.last();
197
+ });
198
+
199
+ expect(result.current.isLastPage).toEqual(true);
200
+ expect(result.current.currentPage).toEqual(100);
201
+
202
+ act(() => {
203
+ result.current.back();
204
+ });
205
+
206
+ expect(result.current.currentPage).toEqual(99);
207
+
208
+ act(() => {
209
+ result.current.first();
210
+ });
211
+
212
+ expect(result.current.isFirstPage).toEqual(true);
213
+ expect(result.current.currentPage).toEqual(1);
214
+ });
215
+
216
+ test('useReqorePaging returns correct number of items with infinite loading', () => {
217
+ const wrapper = ({ children }: any) => <ReqoreUIProvider>{children}</ReqoreUIProvider>;
218
+ const { result } = renderHook(
219
+ ({ itemsPerPage, items }: IReqorePagingOptions<any>) =>
220
+ useReqorePaging({
221
+ items,
222
+ itemsPerPage,
223
+ infinite: true,
224
+ }),
225
+ { wrapper, initialProps: { itemsPerPage: 10, items: data } as IReqorePagingOptions<any> }
226
+ );
227
+
228
+ expect(result.current.pages.length).toEqual(100);
229
+ expect(result.current.items.length).toEqual(10);
230
+
231
+ act(() => {
232
+ result.current.setPage(2);
233
+ });
234
+
235
+ expect(result.current.pages.length).toEqual(100);
236
+ expect(result.current.items.length).toEqual(20);
237
+
238
+ act(() => {
239
+ result.current.setPage(5);
240
+ });
241
+
242
+ expect(result.current.items.length).toEqual(50);
243
+ expect(result.current.itemsLeft).toEqual(950);
244
+
245
+ act(() => {
246
+ result.current.last();
247
+ });
248
+
249
+ expect(result.current.items.length).toEqual(1000);
250
+ expect(result.current.itemsLeft).toEqual(0);
251
+ });
@@ -0,0 +1,31 @@
1
+ import { renderHook } from '@testing-library/react';
2
+ import { ReqoreColors } from '../../src';
3
+ import { DEFAULT_THEME } from '../../src/constants/theme';
4
+ import { useReqoreTheme } from '../../src/hooks/useTheme';
5
+
6
+ test('useReqoreTheme should return the default theme', () => {
7
+ const { result } = renderHook(() => useReqoreTheme());
8
+
9
+ expect(result.current).toEqual(DEFAULT_THEME);
10
+ });
11
+
12
+ test('useReqoreTheme should return modified main intent color, original color is preserved', () => {
13
+ const { result } = renderHook(() => useReqoreTheme('main', { main: 'info' }));
14
+
15
+ expect(result.current.main).toEqual(ReqoreColors.BLUE);
16
+ expect(result.current.originalMain).toEqual(ReqoreColors.DARK_THEME);
17
+ });
18
+
19
+ test('useReqoreTheme should return modified main custom color, original color is preserved', () => {
20
+ const { result } = renderHook(() => useReqoreTheme('main', { main: '#7fbb26' }));
21
+
22
+ expect(result.current.main).toEqual('#7fbb26');
23
+ expect(result.current.originalMain).toEqual(ReqoreColors.DARK_THEME);
24
+ });
25
+
26
+ test('useReqoreTheme should return modified main color if intent is passed, original color is preserved', () => {
27
+ const { result } = renderHook(() => useReqoreTheme('main', { main: '#7fbb26' }, 'info'));
28
+
29
+ expect(result.current.main).toEqual(ReqoreColors.BLUE);
30
+ expect(result.current.originalMain).toEqual(ReqoreColors.DARK_THEME);
31
+ });