@dxc-technology/halstack-react 0.0.0-2d619b4 → 0.0.0-2f08981

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 (172) hide show
  1. package/README.md +1 -1
  2. package/dist/ThemeContext.js +74 -64
  3. package/dist/V3Select/V3Select.js +549 -0
  4. package/dist/V3Select/index.d.ts +27 -0
  5. package/dist/V3Textarea/V3Textarea.js +264 -0
  6. package/dist/V3Textarea/index.d.ts +27 -0
  7. package/dist/accordion/index.d.ts +28 -0
  8. package/dist/accordion-group/index.d.ts +16 -0
  9. package/dist/alert/Alert.js +5 -5
  10. package/dist/box/index.d.ts +25 -0
  11. package/dist/button/Button.js +3 -3
  12. package/dist/button/index.d.ts +24 -0
  13. package/dist/card/index.d.ts +22 -0
  14. package/dist/checkbox/Checkbox.js +4 -5
  15. package/dist/checkbox/index.d.ts +24 -0
  16. package/dist/chip/index.d.ts +22 -0
  17. package/dist/common/variables.js +231 -91
  18. package/dist/date/index.d.ts +27 -0
  19. package/dist/{new-date/NewDate.js → date-input/DateInput.js} +62 -62
  20. package/dist/{new-date → date-input}/index.d.ts +25 -16
  21. package/dist/dialog/index.d.ts +18 -0
  22. package/dist/dropdown/index.d.ts +26 -0
  23. package/dist/file-input/FileInput.js +13 -10
  24. package/dist/file-input/FileItem.js +33 -9
  25. package/dist/file-input/index.d.ts +81 -0
  26. package/dist/footer/Footer.js +44 -18
  27. package/dist/footer/Icons.js +77 -0
  28. package/dist/footer/index.d.ts +25 -0
  29. package/dist/header/Header.js +122 -55
  30. package/dist/header/Icons.js +59 -0
  31. package/dist/header/index.d.ts +25 -0
  32. package/dist/heading/Heading.js +12 -0
  33. package/dist/heading/index.d.ts +17 -0
  34. package/dist/input-text/Icons.js +22 -0
  35. package/dist/input-text/InputText.js +4 -6
  36. package/dist/input-text/index.d.ts +36 -0
  37. package/dist/layout/ApplicationLayout.js +4 -8
  38. package/dist/layout/Icons.js +55 -0
  39. package/dist/link/index.d.ts +23 -0
  40. package/dist/main.d.ts +39 -5
  41. package/dist/main.js +30 -30
  42. package/dist/{number/Number.js → number-input/NumberInput.js} +9 -11
  43. package/dist/{number/NumberContext.js → number-input/NumberInputContext.js} +2 -2
  44. package/dist/{number → number-input}/index.d.ts +27 -9
  45. package/dist/paginator/Icons.js +66 -0
  46. package/dist/paginator/Paginator.js +53 -37
  47. package/dist/paginator/index.d.ts +20 -0
  48. package/dist/{password/Password.js → password-input/PasswordInput.js} +14 -11
  49. package/dist/{password → password-input}/index.d.ts +30 -16
  50. package/dist/progress-bar/index.d.ts +18 -0
  51. package/dist/radio/index.d.ts +23 -0
  52. package/dist/resultsetTable/index.d.ts +19 -0
  53. package/dist/select/Select.js +848 -301
  54. package/dist/select/index.d.ts +53 -0
  55. package/dist/sidenav/index.d.ts +13 -0
  56. package/dist/slider/Slider.js +104 -19
  57. package/dist/slider/index.d.ts +29 -0
  58. package/dist/spinner/index.d.ts +17 -0
  59. package/dist/switch/index.d.ts +24 -0
  60. package/dist/table/index.d.ts +13 -0
  61. package/dist/tabs/index.d.ts +19 -0
  62. package/dist/tag/index.d.ts +24 -0
  63. package/dist/{new-input-text/NewInputText.js → text-input/TextInput.js} +132 -135
  64. package/dist/{new-input-text → text-input}/index.d.ts +31 -16
  65. package/dist/textarea/Textarea.js +227 -122
  66. package/dist/{new-textarea → textarea}/index.d.ts +34 -18
  67. package/dist/toggle/index.d.ts +21 -0
  68. package/dist/toggle-group/ToggleGroup.js +132 -28
  69. package/dist/toggle-group/index.d.ts +21 -0
  70. package/dist/upload/buttons-upload/ButtonsUpload.js +7 -11
  71. package/dist/upload/buttons-upload/Icons.js +40 -0
  72. package/dist/upload/dragAndDropArea/DragAndDropArea.js +14 -14
  73. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  74. package/dist/upload/file-upload/FileToUpload.js +26 -21
  75. package/dist/upload/file-upload/Icons.js +66 -0
  76. package/dist/upload/index.d.ts +15 -0
  77. package/dist/upload/transaction/Icons.js +160 -0
  78. package/dist/upload/transaction/Transaction.js +11 -38
  79. package/dist/wizard/Icons.js +65 -0
  80. package/dist/wizard/Wizard.js +3 -9
  81. package/dist/wizard/index.d.ts +18 -0
  82. package/package.json +5 -9
  83. package/test/Date.test.js +13 -11
  84. package/test/{NewDate.test.js → DateInput.test.js} +66 -27
  85. package/test/FileInput.test.js +164 -2
  86. package/test/Footer.test.js +2 -7
  87. package/test/Header.test.js +5 -10
  88. package/test/Heading.test.js +60 -12
  89. package/test/{Number.test.js → NumberInput.test.js} +84 -66
  90. package/test/Paginator.test.js +5 -1
  91. package/test/PasswordInput.test.js +83 -0
  92. package/test/ResultsetTable.test.js +5 -4
  93. package/test/Select.test.js +374 -171
  94. package/test/Slider.test.js +9 -17
  95. package/test/{NewInputText.test.js → TextInput.test.js} +138 -272
  96. package/test/Textarea.test.js +193 -0
  97. package/test/ToggleGroup.test.js +5 -1
  98. package/test/Upload.test.js +1 -1
  99. package/test/V3Select.test.js +212 -0
  100. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  101. package/dist/checkbox/Checkbox.stories.js +0 -144
  102. package/dist/checkbox/readme.md +0 -116
  103. package/dist/date/Date.stories.js +0 -205
  104. package/dist/date/readme.md +0 -73
  105. package/dist/footer/Footer.stories.js +0 -94
  106. package/dist/footer/dxc_logo.svg +0 -15
  107. package/dist/footer/readme.md +0 -41
  108. package/dist/header/Header.stories.js +0 -176
  109. package/dist/header/close_icon.svg +0 -1
  110. package/dist/header/dxc_logo_black.svg +0 -8
  111. package/dist/header/hamb_menu_black.svg +0 -1
  112. package/dist/header/hamb_menu_white.svg +0 -1
  113. package/dist/header/readme.md +0 -33
  114. package/dist/input-text/InputText.stories.js +0 -209
  115. package/dist/input-text/error.svg +0 -1
  116. package/dist/input-text/readme.md +0 -91
  117. package/dist/layout/facebook.svg +0 -45
  118. package/dist/layout/linkedin.svg +0 -50
  119. package/dist/layout/twitter.svg +0 -53
  120. package/dist/link/readme.md +0 -51
  121. package/dist/new-textarea/NewTextarea.js +0 -365
  122. package/dist/paginator/images/next.svg +0 -3
  123. package/dist/paginator/images/nextPage.svg +0 -3
  124. package/dist/paginator/images/previous.svg +0 -3
  125. package/dist/paginator/images/previousPage.svg +0 -3
  126. package/dist/paginator/readme.md +0 -50
  127. package/dist/password/styles.css +0 -3
  128. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  129. package/dist/progress-bar/readme.md +0 -63
  130. package/dist/radio/Radio.stories.js +0 -166
  131. package/dist/radio/readme.md +0 -70
  132. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  133. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  134. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  135. package/dist/slider/Slider.stories.js +0 -241
  136. package/dist/slider/readme.md +0 -64
  137. package/dist/spinner/Spinner.stories.js +0 -183
  138. package/dist/spinner/readme.md +0 -65
  139. package/dist/switch/Switch.stories.js +0 -134
  140. package/dist/switch/readme.md +0 -133
  141. package/dist/tabs/Tabs.stories.js +0 -130
  142. package/dist/tabs/readme.md +0 -78
  143. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  144. package/dist/tabs-for-sections/readme.md +0 -78
  145. package/dist/toggle/Toggle.stories.js +0 -297
  146. package/dist/toggle/readme.md +0 -80
  147. package/dist/upload/Upload.stories.js +0 -72
  148. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  149. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  150. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  151. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  152. package/dist/upload/file-upload/audio-icon.svg +0 -4
  153. package/dist/upload/file-upload/close.svg +0 -4
  154. package/dist/upload/file-upload/file-icon.svg +0 -4
  155. package/dist/upload/file-upload/video-icon.svg +0 -4
  156. package/dist/upload/readme.md +0 -37
  157. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  158. package/dist/upload/transaction/audio-icon.svg +0 -4
  159. package/dist/upload/transaction/error-icon.svg +0 -4
  160. package/dist/upload/transaction/file-icon-err.svg +0 -4
  161. package/dist/upload/transaction/file-icon.svg +0 -4
  162. package/dist/upload/transaction/image-icon-err.svg +0 -4
  163. package/dist/upload/transaction/image-icon.svg +0 -4
  164. package/dist/upload/transaction/success-icon.svg +0 -4
  165. package/dist/upload/transaction/video-icon-err.svg +0 -4
  166. package/dist/upload/transaction/video-icon.svg +0 -4
  167. package/dist/wizard/invalid_icon.svg +0 -5
  168. package/dist/wizard/valid_icon.svg +0 -5
  169. package/dist/wizard/validation-wrong.svg +0 -6
  170. package/test/NewTextarea.test.js +0 -252
  171. package/test/Password.test.js +0 -76
  172. package/test/TabsForSections.test.js +0 -34
@@ -1,252 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
-
4
- import DxcNewTextarea from "../src/new-textarea/NewTextarea";
5
-
6
- describe("NewTextarea component tests", () => {
7
- test("Renders with correct label", () => {
8
- const { getByText } = render(<DxcNewTextarea label="Example label" />);
9
- expect(getByText("Example label")).toBeTruthy();
10
- });
11
- test("Renders with correct label and helper text", () => {
12
- const { getByText } = render(<DxcNewTextarea label="Example label" helperText="Example helper text" />);
13
- expect(getByText("Example label")).toBeTruthy();
14
- expect(getByText("Example helper text")).toBeTruthy();
15
- });
16
- test("Renders with correct label and optional", () => {
17
- const { getByText, getByRole } = render(<DxcNewTextarea label="Example label" helperText="Example helper text" optional />);
18
- const textarea = getByRole("textbox");
19
- expect(getByText("Example label")).toBeTruthy();
20
- expect(getByText("(Optional)")).toBeTruthy();
21
- expect(getByText("Example helper text")).toBeTruthy();
22
- expect(textarea.getAttribute("aria-required")).toBe("false");
23
- });
24
- test("Renders with correct placeholder", () => {
25
- const { getByRole } = render(<DxcNewTextarea placeholder="Placeholder" />);
26
- const textarea = getByRole("textbox");
27
- expect(textarea.getAttribute("placeholder")).toBe("Placeholder");
28
- });
29
- test("Renders with error message", () => {
30
- const { getByText, getByRole } = render(<DxcNewTextarea error="Error message." />);
31
- const textarea = getByRole("textbox");
32
- expect(getByText("Error message.")).toBeTruthy();
33
- expect(textarea.getAttribute("aria-invalid")).toBe("true");
34
- expect(textarea.getAttribute("aria-describedBy")).not.toBeNull();
35
- });
36
- test("Renders with correct default rows", () => {
37
- const { getByLabelText } = render(<DxcNewTextarea label="Example label" rows={10} />);
38
- const textarea = getByLabelText("Example label");
39
- expect(textarea.rows).toBe(10);
40
- });
41
- test("Renders with correct accesibility attributes", () => {
42
- const { getByLabelText } = render(<DxcNewTextarea label="Example label" />);
43
- const textarea = getByLabelText("Example label");
44
- expect(textarea.getAttribute("aria-invalid")).toBe("false");
45
- expect(textarea.getAttribute("aria-describedBy")).toBeNull();
46
- expect(textarea.getAttribute("aria-required")).toBe("true");
47
- });
48
- test("Strict mode - Not optional constraint", () => {
49
- const onChange = jest.fn();
50
- const onBlur = jest.fn();
51
- const { getByLabelText, getByText, queryByText } = render(
52
- <DxcNewTextarea
53
- label="Example label"
54
- placeholder="Placeholder"
55
- onChange={onChange}
56
- onBlur={onBlur}
57
- />
58
- );
59
- const textarea = getByLabelText("Example label");
60
- fireEvent.focus(textarea);
61
- fireEvent.blur(textarea);
62
- expect(getByText("This field is required. Please, enter a value.")).toBeTruthy();
63
- fireEvent.change(textarea, { target: { value: "Test" } });
64
- fireEvent.blur(textarea);
65
- expect(queryByText("This field is required. Please, enter a value.")).toBeFalsy();
66
- });
67
- test("Strict mode - Pattern constraint", () => {
68
- const onChange = jest.fn();
69
- const onBlur = jest.fn();
70
- const { getByLabelText, getByText, queryByText } = render(
71
- <DxcNewTextarea
72
- label="Example label"
73
- placeholder="Placeholder"
74
- onChange={onChange}
75
- onBlur={onBlur}
76
- margin={{ left: "medium", right: "medium" }}
77
- pattern='^.*(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$'
78
- />
79
- );
80
- const textarea = getByLabelText("Example label");
81
- fireEvent.change(textarea, { target: { value: "pattern test" } });
82
- fireEvent.blur(textarea);
83
- expect(getByText("Please match the format requested.")).toBeTruthy();
84
- fireEvent.change(textarea, { target: { value: "pattern4&" } });
85
- fireEvent.blur(textarea);
86
- expect(queryByText("Please match the format requested.")).toBeFalsy();
87
- });
88
- test("Strict mode - Length constraint", () => {
89
- const onChange = jest.fn();
90
- const onBlur = jest.fn();
91
- const { getByLabelText, getByText, queryByText } = render(
92
- <DxcNewTextarea
93
- label="Example label"
94
- placeholder="Placeholder"
95
- onChange={onChange}
96
- onBlur={onBlur}
97
- margin={{ left: "medium", right: "medium" }}
98
- length={{ min: 5, max: 10 }}
99
- />
100
- );
101
- const textarea = getByLabelText("Example label");
102
- fireEvent.change(textarea, { target: { value: "test" } });
103
- fireEvent.blur(textarea);
104
- expect(getByText("Min length 5, max length 10.")).toBeTruthy();
105
- fireEvent.change(textarea, { target: { value: "test " } });
106
- fireEvent.blur(textarea);
107
- expect(queryByText(/Min length /)).toBeFalsy();
108
- });
109
- test("Strict mode - Pattern and length constraints", () => {
110
- const onChange = jest.fn();
111
- const onBlur = jest.fn();
112
- const { getByLabelText, getByText, queryByText } = render(
113
- <DxcNewTextarea
114
- label="Example label"
115
- placeholder="Placeholder"
116
- onChange={onChange}
117
- onBlur={onBlur}
118
- margin={{ left: "medium", right: "medium" }}
119
- pattern='^.*(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$'
120
- length={{ min: 5, max: 10 }}
121
- />
122
- );
123
- const textarea = getByLabelText("Example label");
124
- fireEvent.change(textarea, { target: { value: "test" } });
125
- fireEvent.blur(textarea);
126
- expect(getByText("Min length 5, max length 10.")).toBeTruthy();
127
- fireEvent.change(textarea, { target: { value: "test " } });
128
- fireEvent.blur(textarea);
129
- expect(getByText("Please match the format requested.")).toBeTruthy();
130
- fireEvent.change(textarea, { target: { value: "test 4" } });
131
- fireEvent.blur(textarea);
132
- expect(queryByText("Please match the format requested.")).toBeFalsy();
133
- });
134
- test("Non Strict mode - Not optional constraint", () => {
135
- const onChange = jest.fn((value) => {
136
- expect(value).toBe("");
137
- });
138
- const onBlur = jest.fn(({ value, error }) => {
139
- expect(value).toBe("");
140
- expect(error).toBe("This field is required. Please, enter a value.");
141
- });
142
- const { getByLabelText } = render(
143
- <DxcNewTextarea
144
- label="Example label"
145
- placeholder="Placeholder"
146
- onChange={onChange}
147
- onBlur={onBlur}
148
- />
149
- );
150
- const textarea = getByLabelText("Example label");
151
- fireEvent.focus(textarea);
152
- fireEvent.blur(textarea);
153
- });
154
- test("Non Strict mode - Pattern constraint", () => {
155
- const onChange = jest.fn((value) => {
156
- expect(value).toBe("Example value");
157
- });
158
- const onBlur = jest.fn(({ value, error }) => {
159
- expect(value).toBe("Example value");
160
- expect(error).toBe("Please match the format requested.");
161
- });
162
- const { getByLabelText } = render(
163
- <DxcNewTextarea
164
- label="Example label"
165
- placeholder="Placeholder"
166
- onChange={onChange}
167
- onBlur={onBlur}
168
- margin={{ left: "medium", right: "medium" }}
169
- pattern='^.*(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$'
170
- />
171
- );
172
- const textarea = getByLabelText("Example label");
173
- fireEvent.change(textarea, { target: { value: "Example value" } });
174
- fireEvent.blur(textarea);
175
- });
176
- test("Non Strict mode - Length constraint", () => {
177
- const onChange = jest.fn((value) => {
178
- expect(value).toBe("Example value");
179
- });
180
- const onBlur = jest.fn(({ value, error }) => {
181
- expect(value).toBe("Example value");
182
- expect(error).toBe("Min length 5, max length 10.");
183
- });
184
- const { getByLabelText } = render(
185
- <DxcNewTextarea
186
- label="Example label"
187
- placeholder="Placeholder"
188
- onChange={onChange}
189
- onBlur={onBlur}
190
- margin={{ left: "medium", right: "medium" }}
191
- length={{ min: 5, max: 10 }}
192
- />
193
- );
194
- const textarea = getByLabelText("Example label");
195
- fireEvent.change(textarea, { target: { value: "Example value" } });
196
- fireEvent.blur(textarea);
197
- });
198
- test("Non Strict mode - Pattern and length constraints", () => {
199
- const onChange = jest.fn((value) => {
200
- expect(value).toBe("Example value");
201
- });
202
- const onBlur = jest.fn(({ value, error }) => {
203
- expect(value).toBe("Example value");
204
- expect(error).toBe("Min length 5, max length 10.");
205
- });
206
- const { getByLabelText } = render(
207
- <DxcNewTextarea
208
- label="Example label"
209
- placeholder="Placeholder"
210
- onChange={onChange}
211
- onBlur={onBlur}
212
- margin={{ left: "medium", right: "medium" }}
213
- length={{ min: 5, max: 10 }}
214
- />
215
- );
216
- const textarea = getByLabelText("Example label");
217
- fireEvent.change(textarea, { target: { value: "Example value" } });
218
- fireEvent.blur(textarea);
219
- });
220
- test("onBlur function is called correctly", () => {
221
- const onBlur = jest.fn();
222
- const { getByLabelText } = render(<DxcNewTextarea label="Example label" onBlur={onBlur} />);
223
- const textarea = getByLabelText("Example label");
224
- fireEvent.change(textarea, { target: { value: "Blur test" } });
225
- fireEvent.blur(textarea);
226
- expect(onBlur).toHaveBeenCalled();
227
- expect(onBlur).toHaveBeenCalledWith({ value: "Blur test", error: null });
228
- });
229
- test("Controlled textarea", () => {
230
- const onChange = jest.fn();
231
- const onBlur = jest.fn();
232
- const { getByLabelText } = render(
233
- <DxcNewTextarea label="Example label" value="Test value" onChange={onChange} onBlur={onBlur} />
234
- );
235
- const textarea = getByLabelText("Example label");
236
- fireEvent.change(textarea, { target: { value: "Controlled test" } });
237
- expect(onChange).toHaveBeenCalled();
238
- expect(textarea.value).toBe("Test value");
239
- fireEvent.blur(textarea);
240
- expect(onBlur).toHaveBeenCalled();
241
- expect(onBlur).toHaveBeenCalledWith({ value: "Test value", error: null });
242
- });
243
- test("Uncontrolled textarea", () => {
244
- const onChange = jest.fn();
245
- const { getByLabelText } = render(<DxcNewTextarea label="Example label" onChange={onChange} />);
246
- const textarea = getByLabelText("Example label");
247
- fireEvent.change(textarea, { target: { value: "Uncontrolled test" } });
248
- expect(onChange).toHaveBeenCalled();
249
- expect(onChange).toHaveBeenCalledWith("Uncontrolled test");
250
- expect(textarea.value).toBe("Uncontrolled test");
251
- });
252
- });
@@ -1,76 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import DxcPassword from "../src/password/Password";
5
-
6
- describe("Password component tests", () => {
7
- test("Password renders with label", () => {
8
- const { getByText } = render(<DxcPassword label="Password label" />);
9
- expect(getByText("Password label")).toBeTruthy();
10
- });
11
-
12
- test("Password renders with helper text", () => {
13
- const { getByText } = render(<DxcPassword helperText="Helper text" />);
14
- expect(getByText("Helper text")).toBeTruthy();
15
- });
16
-
17
- test("Password renders error", () => {
18
- const { getByText } = render(<DxcPassword error="Error message." />);
19
- expect(getByText("Error message.")).toBeTruthy();
20
- });
21
-
22
- test("onChange function is called correctly", () => {
23
- const onChange = jest.fn();
24
- const { getByRole } = render(<DxcPassword label="Password" onChange={onChange} />);
25
- const password = getByRole("textbox");
26
- userEvent.type(password, "Pa$$w0rd");
27
- expect(onChange).toHaveBeenCalledWith("P");
28
- expect(password.value).toBe("Pa$$w0rd");
29
- });
30
-
31
- test("Clear password value", () => {
32
- const onChange = jest.fn();
33
- const { getAllByRole, getByRole } = render(<DxcPassword label="Password" onChange={onChange} clearable />);
34
- const password = getByRole("textbox");
35
- userEvent.type(password, "Pa$$w0rd");
36
- expect(password.value).toBe("Pa$$w0rd");
37
- const clearButton = getAllByRole("button")[0];
38
- userEvent.click(clearButton);
39
- expect(password.value).toBe("");
40
- });
41
-
42
- test("Non clearable password has no clear icon", () => {
43
- const onChange = jest.fn();
44
- const { getAllByRole, getByRole } = render(<DxcPassword label="Password" onChange={onChange} />);
45
- const password = getByRole("textbox");
46
- userEvent.type(password, "Pa$$w0rd");
47
- expect(password.value).toBe("Pa$$w0rd");
48
- const buttons = getAllByRole("button");
49
- expect(buttons.length).toBe(1);
50
- });
51
-
52
- test("Show/hide password button works correctly", () => {
53
- const onChange = jest.fn();
54
- const { getAllByRole, getByRole } = render(<DxcPassword label="Password" clearable onChange={onChange} />);
55
- const password = getByRole("textbox");
56
- userEvent.type(password, "Pa$$w0rd");
57
- expect(password.value).toBe("Pa$$w0rd");
58
- expect(password.type).toBe("password");
59
- const showButton = getAllByRole("button")[1];
60
- userEvent.click(showButton);
61
- expect(password.type).toBe("text");
62
- });
63
-
64
- test("Password has correct accesibility attributes", () => {
65
- const { getByRole } = render(<DxcPassword label="Password" />);
66
- const password = getByRole("textbox");
67
- expect(password.getAttribute("aria-autocomplete")).toBeNull();
68
- expect(password.getAttribute("aria-controls")).toBeNull();
69
- const showButton = getByRole("button");
70
- expect(showButton.getAttribute("aria-expanded")).toBe("false");
71
- expect(showButton.getAttribute("aria-label")).toBe("Show");
72
- userEvent.click(showButton);
73
- expect(showButton.getAttribute("aria-expanded")).toBe("true");
74
- expect(showButton.getAttribute("aria-label")).toBe("Hide");
75
- });
76
- });
@@ -1,34 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import DxcTabsForSections from "../src/tabs-for-sections/TabsForSections";
4
-
5
- const sections = [
6
- {
7
- tabLabel: "S1",
8
- section: () => <div>test-section-1</div>,
9
- },
10
- {
11
- tabLabel: "S2",
12
- section: () => <div>test-section-2</div>,
13
- },
14
- {
15
- tabLabel: "S3",
16
- section: () => <div>test-section-3</div>,
17
- },
18
- ];
19
-
20
- describe("TabsForSections component tests", () => {
21
- test("TabsForSections renders with correct sections label", () => {
22
- const { getByText } = render(<DxcTabsForSections sections={sections}></DxcTabsForSections>);
23
- expect(getByText("S1")).toBeTruthy();
24
- expect(getByText("S2")).toBeTruthy();
25
- expect(getByText("S3")).toBeTruthy();
26
- });
27
-
28
- test("TabsForSections renders with correct sections content", () => {
29
- const { getByText } = render(<DxcTabsForSections sections={sections}></DxcTabsForSections>);
30
- expect(getByText("test-section-1")).toBeTruthy();
31
- expect(getByText("test-section-2")).toBeTruthy();
32
- expect(getByText("test-section-3")).toBeTruthy();
33
- });
34
- });