@telus-uds/components-base 1.26.0 → 1.28.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 (74) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/component-docs.json +2 -1
  3. package/lib/Carousel/dictionary.js +6 -6
  4. package/lib-module/Carousel/dictionary.js +6 -6
  5. package/package.json +2 -2
  6. package/src/Carousel/dictionary.js +6 -6
  7. package/.eslintrc.js +0 -9
  8. package/__tests17__/A11yText/A11yText.test.jsx +0 -34
  9. package/__tests17__/ActivityIndicator/ActivityIndicator.test.jsx +0 -68
  10. package/__tests17__/ActivityIndicator/__snapshots__/ActivityIndicator.test.jsx.snap +0 -299
  11. package/__tests17__/Box/Box.test.jsx +0 -111
  12. package/__tests17__/Button/Button.test.jsx +0 -86
  13. package/__tests17__/Button/ButtonBase.test.jsx +0 -82
  14. package/__tests17__/Button/ButtonGroup.test.jsx +0 -347
  15. package/__tests17__/Button/ButtonLink.test.jsx +0 -61
  16. package/__tests17__/Card/Card.test.jsx +0 -63
  17. package/__tests17__/Carousel/Carousel.test.jsx +0 -128
  18. package/__tests17__/Carousel/CarouselTabs.test.jsx +0 -142
  19. package/__tests17__/Checkbox/Checkbox.test.jsx +0 -94
  20. package/__tests17__/Checkbox/CheckboxGroup.test.jsx +0 -246
  21. package/__tests17__/Divider/Divider.test.jsx +0 -91
  22. package/__tests17__/ExpandCollapse/ExpandCollapse.test.jsx +0 -109
  23. package/__tests17__/Feedback/Feedback.test.jsx +0 -42
  24. package/__tests17__/FlexGrid/Col.test.jsx +0 -261
  25. package/__tests17__/FlexGrid/FlexGrid.test.jsx +0 -136
  26. package/__tests17__/FlexGrid/Row.test.jsx +0 -273
  27. package/__tests17__/HorizontalScroll/HorizontalScroll.test.jsx +0 -165
  28. package/__tests17__/Icon/Icon.test.jsx +0 -61
  29. package/__tests17__/IconButton/IconButton.test.jsx +0 -52
  30. package/__tests17__/InputLabel/InputLabel.test.jsx +0 -28
  31. package/__tests17__/InputLabel/__snapshots__/InputLabel.test.jsx.snap +0 -3
  32. package/__tests17__/InputSupports/InputSupports.test.jsx +0 -60
  33. package/__tests17__/Link/Link.test.jsx +0 -63
  34. package/__tests17__/Link/TextButton.test.jsx +0 -35
  35. package/__tests17__/List/List.test.jsx +0 -82
  36. package/__tests17__/Modal/Modal.test.jsx +0 -47
  37. package/__tests17__/Notification/Notification.test.jsx +0 -20
  38. package/__tests17__/Pagination/Pagination.test.jsx +0 -160
  39. package/__tests17__/Progress/Progress.test.jsx +0 -79
  40. package/__tests17__/Radio/Radio.test.jsx +0 -87
  41. package/__tests17__/Radio/RadioGroup.test.jsx +0 -220
  42. package/__tests17__/RadioCard/RadioCard.test.jsx +0 -87
  43. package/__tests17__/RadioCard/RadioCardGroup.test.jsx +0 -246
  44. package/__tests17__/Search/Search.test.jsx +0 -87
  45. package/__tests17__/Select/Select.test.jsx +0 -94
  46. package/__tests17__/SideNav/SideNav.test.jsx +0 -110
  47. package/__tests17__/Skeleton/Skeleton.test.jsx +0 -61
  48. package/__tests17__/SkipLink/SkipLink.test.jsx +0 -61
  49. package/__tests17__/Spacer/Spacer.test.jsx +0 -63
  50. package/__tests17__/StackView/StackView.test.jsx +0 -211
  51. package/__tests17__/StackView/StackWrap.test.jsx +0 -47
  52. package/__tests17__/StackView/getStackedContent.test.jsx +0 -295
  53. package/__tests17__/StepTracker/StepTracker.test.jsx +0 -108
  54. package/__tests17__/Tabs/Tabs.test.jsx +0 -49
  55. package/__tests17__/Tags/Tags.test.jsx +0 -327
  56. package/__tests17__/TextInput/TextArea.test.jsx +0 -35
  57. package/__tests17__/TextInput/TextInputBase.test.jsx +0 -125
  58. package/__tests17__/ThemeProvider/ThemeProvider.test.jsx +0 -82
  59. package/__tests17__/ThemeProvider/useThemeTokens.test.jsx +0 -514
  60. package/__tests17__/ThemeProvider/utils/theme-tokens.test.js +0 -41
  61. package/__tests17__/ToggleSwitch/ToggleSwitch.test.jsx +0 -82
  62. package/__tests17__/ToggleSwitch/ToggleSwitchGroup.test.jsx +0 -192
  63. package/__tests17__/Tooltip/Tooltip.test.jsx +0 -65
  64. package/__tests17__/Tooltip/getTooltipPosition.test.js +0 -79
  65. package/__tests17__/Typography/typography.test.jsx +0 -90
  66. package/__tests17__/utils/children.test.jsx +0 -128
  67. package/__tests17__/utils/containUniqueFields.test.js +0 -25
  68. package/__tests17__/utils/input.test.js +0 -375
  69. package/__tests17__/utils/props.test.js +0 -36
  70. package/__tests17__/utils/semantics.test.jsx +0 -34
  71. package/__tests17__/utils/useCopy.test.js +0 -42
  72. package/__tests17__/utils/useResponsiveProp.test.jsx +0 -202
  73. package/__tests17__/utils/useSpacingScale.test.jsx +0 -273
  74. package/__tests17__/utils/useUniqueId.test.js +0 -31
@@ -1,273 +0,0 @@
1
- import React from 'react'
2
- import { renderHook } from '@testing-library/react-hooks'
3
- import { useSpacingScale } from '../../src/utils'
4
- import Theme from '../../__fixtures__/Theme'
5
- import Viewport from '../../__fixtures__/Viewport'
6
-
7
- describe('useSpacingScale', () => {
8
- // values from testTheme.js
9
- const expectedDefaultScale = [0, 4, 8, 16, 24, 32, 36]
10
- const expectedCompactScale = [0, 2, 4, 6, 8, 10, 12]
11
- const expectedResponsiveScale = {
12
- xs: [0, 1, 2, 3, 4, 5, 6],
13
- sm: [0, 3, 4, 5, 6, 7, 8],
14
- md: [0, 3, 4, 5, 6, 7, 8],
15
- lg: [0, 7, 8, 9, 10, 11, 12],
16
- xl: [0, 7, 8, 9, 10, 11, 12]
17
- }
18
-
19
- const wrapper = ({ children, viewport }) => (
20
- <Viewport viewport={viewport}>
21
- <Theme>{children}</Theme>
22
- </Viewport>
23
- )
24
-
25
- it.each(expectedDefaultScale.map((item, index) => [item, index]))(
26
- 'returns the expected size index %# from the theme spacing scale',
27
- (expectedSize, index) => {
28
- const { result } = renderHook(() => useSpacingScale(index), {
29
- wrapper
30
- })
31
- expect(result.current).toBe(expectedSize)
32
- }
33
- )
34
- it.each(expectedCompactScale.map((item, index) => [item, index]))(
35
- 'returns the expected size index %# from the theme spacing scale in a variant',
36
- (expectedSize, index) => {
37
- const { result } = renderHook(
38
- () => useSpacingScale({ space: index, options: { variant: { compact: true } } }),
39
- {
40
- wrapper
41
- }
42
- )
43
- expect(result.current).toBe(expectedSize)
44
- }
45
- )
46
- it.each(Object.entries(expectedResponsiveScale))(
47
- 'returns appropriate sizes from a responsive theme variant at %p viewport',
48
- (viewport, expectedValues) => {
49
- const { result, rerender } = renderHook(({ spacingValue }) => useSpacingScale(spacingValue), {
50
- wrapper
51
- })
52
- expectedValues.forEach((expectedSize, index) => {
53
- rerender({
54
- viewport,
55
- spacingValue: { space: index, options: { variant: { responsive: true } } }
56
- })
57
- expect(result.current).toBe(expectedSize)
58
- })
59
- }
60
- )
61
-
62
- it('returns the 0 index when passed a nullish spacing value', () => {
63
- const { result, rerender } = renderHook((spacingValue) => useSpacingScale(spacingValue), {
64
- wrapper
65
- })
66
- // implicit undefined
67
- expect(result.current).toBe(expectedDefaultScale[0])
68
- // explicit undefined
69
- rerender(undefined)
70
- expect(result.current).toBe(expectedDefaultScale[0])
71
- rerender(null)
72
- expect(result.current).toBe(expectedDefaultScale[0])
73
-
74
- // confim this test isn't a false positive misuing rerender etc
75
- rerender(1)
76
- expect(result.current).toBe(expectedDefaultScale[1])
77
- })
78
- it('returns the 0 index when passed a nullish spacing value in a variant', () => {
79
- const { result, rerender } = renderHook((spacingValue) => useSpacingScale(spacingValue), {
80
- wrapper,
81
- initialProps: { options: { variant: { compact: true } } }
82
- })
83
- // implicit undefined
84
- expect(result.current).toBe(expectedCompactScale[0])
85
- // explicit undefined
86
- rerender({ space: undefined, options: { variant: { compact: true } } })
87
- expect(result.current).toBe(expectedCompactScale[0])
88
- rerender({ space: null, options: { variant: { compact: true } } })
89
- expect(result.current).toBe(expectedCompactScale[0])
90
-
91
- // confim this test isn't a false positive misuing rerender etc
92
- rerender({ space: 1, options: { variant: { compact: true } } })
93
- expect(result.current).toBe(expectedCompactScale[1])
94
- })
95
-
96
- it('returns the highest index when passed an out-of-bounds spacing index', () => {
97
- const { result } = renderHook(() => useSpacingScale(99), {
98
- wrapper
99
- })
100
- expect(result.current).toBe(expectedDefaultScale[expectedDefaultScale.length - 1])
101
- })
102
- it('returns the highest index when passed an out-of-bounds spacing index in a variant', () => {
103
- const { result } = renderHook(
104
- () => useSpacingScale({ space: 99, options: { variant: { compact: true } } }),
105
- {
106
- wrapper
107
- }
108
- )
109
- expect(result.current).toBe(expectedCompactScale[expectedDefaultScale.length - 1])
110
- })
111
-
112
- it('returns viewport indexes that explicitly match current viewport', () => {
113
- const spacingValue = { xs: 1, sm: 2, md: 3, lg: 4, xl: 5 }
114
- const { rerender, result } = renderHook((args) => useSpacingScale(args.spacingValue), {
115
- wrapper,
116
- initialProps: { viewport: 'xs', spacingValue }
117
- })
118
- expect(result.current).toBe(expectedDefaultScale[1])
119
- rerender({ viewport: 'sm', spacingValue })
120
- expect(result.current).toBe(expectedDefaultScale[2])
121
- rerender({ viewport: 'md', spacingValue })
122
- expect(result.current).toBe(expectedDefaultScale[3])
123
- rerender({ viewport: 'lg', spacingValue })
124
- expect(result.current).toBe(expectedDefaultScale[4])
125
- rerender({ viewport: 'xl', spacingValue })
126
- expect(result.current).toBe(expectedDefaultScale[5])
127
- })
128
- it('returns viewport indexes that explicitly match current viewport in a variant', () => {
129
- const spacingValue = {
130
- xs: 1,
131
- sm: 2,
132
- md: 3,
133
- lg: 4,
134
- xl: 5,
135
- options: { variant: { compact: true } }
136
- }
137
- const { rerender, result } = renderHook((args) => useSpacingScale(args.spacingValue), {
138
- wrapper,
139
- initialProps: { viewport: 'xs', spacingValue }
140
- })
141
- expect(result.current).toBe(expectedCompactScale[1])
142
- rerender({ viewport: 'sm', spacingValue })
143
- expect(result.current).toBe(expectedCompactScale[2])
144
- rerender({ viewport: 'md', spacingValue })
145
- expect(result.current).toBe(expectedCompactScale[3])
146
- rerender({ viewport: 'lg', spacingValue })
147
- expect(result.current).toBe(expectedCompactScale[4])
148
- rerender({ viewport: 'xl', spacingValue })
149
- expect(result.current).toBe(expectedCompactScale[5])
150
- })
151
-
152
- it('returns viewport indexes that implicitly match current viewport', () => {
153
- const spacingValue = { xs: 1, md: 3 }
154
- const { rerender, result } = renderHook((args) => useSpacingScale(args.spacingValue), {
155
- wrapper,
156
- initialProps: { viewport: 'xs', spacingValue }
157
- })
158
- expect(result.current).toBe(expectedDefaultScale[1])
159
- rerender({ viewport: 'sm', spacingValue })
160
- expect(result.current).toBe(expectedDefaultScale[1])
161
- rerender({ viewport: 'md', spacingValue })
162
- expect(result.current).toBe(expectedDefaultScale[3])
163
- rerender({ viewport: 'lg', spacingValue })
164
- expect(result.current).toBe(expectedDefaultScale[3])
165
- rerender({ viewport: 'xl', spacingValue })
166
- expect(result.current).toBe(expectedDefaultScale[3])
167
- })
168
- it('returns viewport indexes that implicitly match current viewport in a variant', () => {
169
- const spacingValue = { xs: 1, md: 3, options: { variant: { compact: true } } }
170
- const { rerender, result } = renderHook((args) => useSpacingScale(args.spacingValue), {
171
- wrapper,
172
- initialProps: { viewport: 'xs', spacingValue }
173
- })
174
- expect(result.current).toBe(expectedCompactScale[1])
175
- rerender({ viewport: 'sm', spacingValue })
176
- expect(result.current).toBe(expectedCompactScale[1])
177
- rerender({ viewport: 'md', spacingValue })
178
- expect(result.current).toBe(expectedCompactScale[3])
179
- rerender({ viewport: 'lg', spacingValue })
180
- expect(result.current).toBe(expectedCompactScale[3])
181
- rerender({ viewport: 'xl', spacingValue })
182
- expect(result.current).toBe(expectedCompactScale[3])
183
- })
184
-
185
- it('chooses smallest provided viewport index if viewport is unavailable', () => {
186
- const spacingValue = { xs: 1, sm: 2, md: 3, lg: 4, xl: 5 }
187
- const { result } = renderHook((args) => useSpacingScale(args.spacingValue), {
188
- wrapper,
189
- initialProps: { viewport: null, spacingValue }
190
- })
191
- expect(result.current).toBe(expectedDefaultScale[1])
192
- })
193
- it('chooses 0 index if current viewport matches no provided index', () => {
194
- const spacingValue = { lg: 4 }
195
- const { result, rerender } = renderHook((args) => useSpacingScale(args.spacingValue), {
196
- wrapper,
197
- initialProps: { viewport: 'xs', spacingValue }
198
- })
199
- expect(result.current).toBe(expectedDefaultScale[0])
200
- rerender({ viewport: 'sm', spacingValue })
201
- expect(result.current).toBe(expectedDefaultScale[0])
202
- rerender({ viewport: 'md', spacingValue })
203
- expect(result.current).toBe(expectedDefaultScale[0])
204
- rerender({ viewport: 'lg', spacingValue })
205
- expect(result.current).toBe(expectedDefaultScale[4])
206
- rerender({ viewport: 'xl', spacingValue })
207
- expect(result.current).toBe(expectedDefaultScale[4])
208
- })
209
-
210
- it('subtracts a provided value from a spacing scale value', () => {
211
- const spacingValue = { viewport: 'xs', space: 2, options: { subtract: 3 } }
212
- const { result } = renderHook(() => useSpacingScale(spacingValue), {
213
- wrapper
214
- })
215
- expect(result.current).toBe(expectedDefaultScale[2] - 3)
216
- })
217
- it('subtracts a provided value from a spacing scale value in a variant', () => {
218
- const spacingValue = {
219
- space: 4,
220
- options: { subtract: 3, variant: { compact: true } }
221
- }
222
- const { result } = renderHook(() => useSpacingScale(spacingValue), {
223
- wrapper
224
- })
225
- expect(result.current).toBe(expectedCompactScale[4] - 3)
226
- })
227
- it('returns 0 if a subtraction would result in a negative number', () => {
228
- const spacingValue = { space: 2, options: { subtract: 999 } }
229
- const { result } = renderHook((args) => useSpacingScale(args.spacingValue), {
230
- wrapper,
231
- initialProps: { spacingValue }
232
- })
233
- expect(result.current).toBe(0)
234
- })
235
-
236
- it('gives an exact amount if `size` option is passed', () => {
237
- const size = 123456
238
- const spacingValue = { xs: 1, sm: 2, md: 3, lg: 4, xl: 5, options: { size } }
239
- const compactSpacingValue = { ...spacingValue, options: { size, variant: { compact: true } } }
240
- const { result, rerender } = renderHook((args) => useSpacingScale(args.spacingValue), {
241
- wrapper,
242
- initialProps: { viewport: 'xs', spacingValue }
243
- })
244
- expect(result.current).toBe(size)
245
- rerender({ viewport: 'sm', spacingValue })
246
- expect(result.current).toBe(size)
247
- rerender({ viewport: 'md', spacingValue })
248
- expect(result.current).toBe(size)
249
- rerender({ viewport: 'lg', spacingValue })
250
- expect(result.current).toBe(size)
251
- rerender({ viewport: 'xl', spacingValue })
252
- expect(result.current).toBe(size)
253
- rerender({ viewport: 'xs', spacingValue: compactSpacingValue })
254
- expect(result.current).toBe(size)
255
- rerender({ viewport: 'sm', spacingValue: compactSpacingValue })
256
- expect(result.current).toBe(size)
257
- rerender({ viewport: 'md', spacingValue: compactSpacingValue })
258
- expect(result.current).toBe(size)
259
- rerender({ viewport: 'lg', spacingValue: compactSpacingValue })
260
- expect(result.current).toBe(size)
261
- rerender({ viewport: 'xl', spacingValue: compactSpacingValue })
262
- expect(result.current).toBe(size)
263
- })
264
- it('subtracts from size if `subtract` and `size` options are provided', () => {
265
- const size = 123456
266
- const subtract = 12345
267
- const spacingValue = { options: { size, subtract } }
268
- const { result } = renderHook(() => useSpacingScale(spacingValue), {
269
- wrapper
270
- })
271
- expect(result.current).toBe(size - subtract)
272
- })
273
- })
@@ -1,31 +0,0 @@
1
- import { renderHook } from '@testing-library/react-hooks'
2
- import useUniqueId from '../../lib/utils/useUniqueId'
3
-
4
- describe('useUniqueId hook', () => {
5
- it('returns the same id for each re-render, but a different id for a new instance', () => {
6
- const { result, rerender } = renderHook(() => useUniqueId('prefix'))
7
-
8
- expect(result.current).toBe('prefix-1')
9
-
10
- rerender()
11
-
12
- expect(result.current).toBe('prefix-1')
13
-
14
- // has to be done within the same test case, as we can't ensure order in which tests are being run in parallel
15
- const { result: result2, rerender: rerender2 } = renderHook(() => useUniqueId('prefix'))
16
-
17
- expect(result.current).toBe('prefix-1')
18
- expect(result2.current).toBe('prefix-2')
19
-
20
- // ensure that instances' rerendering doesn't affect one another
21
- rerender2()
22
-
23
- expect(result.current).toBe('prefix-1')
24
- expect(result2.current).toBe('prefix-2')
25
-
26
- rerender()
27
-
28
- expect(result.current).toBe('prefix-1')
29
- expect(result2.current).toBe('prefix-2')
30
- })
31
- })