@dxc-technology/halstack-react 0.0.0-58aa579 → 0.0.0-5b84635

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 (199) hide show
  1. package/README.md +1 -1
  2. package/babel.config.js +6 -2
  3. package/dist/BackgroundColorContext.js +46 -0
  4. package/dist/ThemeContext.js +237 -2
  5. package/dist/V3Select/V3Select.js +549 -0
  6. package/dist/V3Textarea/V3Textarea.js +264 -0
  7. package/dist/accordion/Accordion.js +168 -63
  8. package/dist/accordion-group/AccordionGroup.js +186 -0
  9. package/dist/alert/Alert.js +183 -84
  10. package/dist/alert/index.d.ts +51 -0
  11. package/dist/badge/Badge.js +63 -0
  12. package/dist/box/Box.js +31 -23
  13. package/dist/button/Button.js +85 -28
  14. package/dist/card/Card.js +72 -35
  15. package/dist/checkbox/Checkbox.js +99 -40
  16. package/dist/chip/Chip.js +128 -36
  17. package/dist/common/RequiredComponent.js +2 -8
  18. package/dist/common/utils.js +2 -22
  19. package/dist/common/variables.js +1448 -304
  20. package/dist/date/Date.js +80 -57
  21. package/dist/date-input/DateInput.js +400 -0
  22. package/dist/date-input/index.d.ts +95 -0
  23. package/dist/dialog/Dialog.js +58 -37
  24. package/dist/dropdown/Dropdown.js +199 -71
  25. package/dist/file-input/FileInput.js +644 -0
  26. package/dist/file-input/FileItem.js +280 -0
  27. package/dist/file-input/index.d.ts +81 -0
  28. package/dist/footer/Footer.js +121 -46
  29. package/dist/footer/Icons.js +77 -0
  30. package/dist/header/Header.js +192 -95
  31. package/dist/header/Icons.js +59 -0
  32. package/dist/heading/Heading.js +93 -16
  33. package/dist/input-text/Icons.js +22 -0
  34. package/dist/input-text/InputText.js +292 -106
  35. package/dist/layout/ApplicationLayout.js +19 -26
  36. package/dist/layout/Icons.js +55 -0
  37. package/dist/link/Link.js +107 -41
  38. package/dist/main.d.ts +8 -0
  39. package/dist/main.js +98 -18
  40. package/dist/number-input/NumberInput.js +136 -0
  41. package/dist/number-input/NumberInputContext.js +16 -0
  42. package/dist/number-input/index.d.ts +113 -0
  43. package/dist/paginator/Icons.js +66 -0
  44. package/dist/paginator/Paginator.js +150 -63
  45. package/dist/password-input/PasswordInput.js +198 -0
  46. package/dist/password-input/index.d.ts +94 -0
  47. package/dist/progress-bar/ProgressBar.js +95 -38
  48. package/dist/radio/Radio.js +31 -17
  49. package/dist/resultsetTable/ResultsetTable.js +90 -65
  50. package/dist/select/Select.js +907 -275
  51. package/dist/select/index.d.ts +53 -0
  52. package/dist/sidenav/Sidenav.js +66 -15
  53. package/dist/slider/Slider.js +211 -73
  54. package/dist/spinner/Spinner.js +247 -59
  55. package/dist/switch/Switch.js +50 -27
  56. package/dist/table/Table.js +51 -24
  57. package/dist/tabs/Tabs.js +206 -35
  58. package/dist/tag/Tag.js +85 -37
  59. package/dist/text-input/TextInput.js +971 -0
  60. package/dist/text-input/index.d.ts +135 -0
  61. package/dist/textarea/Textarea.js +248 -106
  62. package/dist/textarea/index.d.ts +117 -0
  63. package/dist/toggle/Toggle.js +16 -19
  64. package/dist/toggle-group/ToggleGroup.js +156 -43
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +32 -19
  67. package/dist/upload/buttons-upload/Icons.js +40 -0
  68. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -34
  69. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  70. package/dist/upload/file-upload/FileToUpload.js +64 -33
  71. package/dist/upload/file-upload/Icons.js +66 -0
  72. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  73. package/dist/upload/transaction/Icons.js +160 -0
  74. package/dist/upload/transaction/Transaction.js +42 -49
  75. package/dist/upload/transactions/Transactions.js +38 -20
  76. package/dist/useTheme.js +22 -0
  77. package/dist/wizard/Icons.js +65 -0
  78. package/dist/wizard/Wizard.js +138 -60
  79. package/package.json +14 -11
  80. package/test/AccordionGroup.test.js +125 -0
  81. package/test/Date.test.js +49 -45
  82. package/test/DateInput.test.js +242 -0
  83. package/test/Dropdown.test.js +15 -0
  84. package/test/FileInput.test.js +201 -0
  85. package/test/Footer.test.js +2 -7
  86. package/test/Header.test.js +5 -10
  87. package/test/Heading.test.js +60 -12
  88. package/test/InputText.test.js +53 -41
  89. package/test/Link.test.js +12 -2
  90. package/test/NumberInput.test.js +259 -0
  91. package/test/Paginator.test.js +72 -60
  92. package/test/PasswordInput.test.js +83 -0
  93. package/test/ResultsetTable.test.js +66 -19
  94. package/test/Slider.test.js +9 -17
  95. package/test/Spinner.test.js +5 -0
  96. package/test/Tabs.test.js +21 -0
  97. package/test/TextInput.test.js +732 -0
  98. package/test/Textarea.test.js +193 -0
  99. package/test/ToggleGroup.test.js +5 -1
  100. package/test/Upload.test.js +5 -5
  101. package/test/{Select.test.js → V3Select.test.js} +67 -46
  102. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  103. package/dist/accordion/Accordion.stories.js +0 -207
  104. package/dist/accordion/readme.md +0 -96
  105. package/dist/alert/Alert.stories.js +0 -158
  106. package/dist/alert/close.svg +0 -4
  107. package/dist/alert/error.svg +0 -4
  108. package/dist/alert/info.svg +0 -4
  109. package/dist/alert/readme.md +0 -43
  110. package/dist/alert/success.svg +0 -4
  111. package/dist/alert/warning.svg +0 -4
  112. package/dist/button/Button.stories.js +0 -224
  113. package/dist/button/readme.md +0 -93
  114. package/dist/checkbox/Checkbox.stories.js +0 -144
  115. package/dist/checkbox/readme.md +0 -116
  116. package/dist/common/services/example-service.js +0 -10
  117. package/dist/common/services/example-service.test.js +0 -12
  118. package/dist/date/Date.stories.js +0 -205
  119. package/dist/date/calendar.svg +0 -1
  120. package/dist/date/calendar_dark.svg +0 -1
  121. package/dist/date/readme.md +0 -73
  122. package/dist/dialog/Dialog.stories.js +0 -217
  123. package/dist/dialog/readme.md +0 -32
  124. package/dist/dropdown/Dropdown.stories.js +0 -249
  125. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  126. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  127. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  128. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  129. package/dist/dropdown/readme.md +0 -69
  130. package/dist/footer/Footer.stories.js +0 -94
  131. package/dist/footer/dxc_logo_wht.png +0 -0
  132. package/dist/footer/readme.md +0 -41
  133. package/dist/header/Header.stories.js +0 -176
  134. package/dist/header/close_icon.svg +0 -1
  135. package/dist/header/dxc_logo_black.png +0 -0
  136. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  137. package/dist/header/dxc_logo_white.png +0 -0
  138. package/dist/header/hamb_menu_black.svg +0 -1
  139. package/dist/header/hamb_menu_white.svg +0 -1
  140. package/dist/header/readme.md +0 -33
  141. package/dist/input-text/InputText.stories.js +0 -209
  142. package/dist/input-text/error.svg +0 -1
  143. package/dist/input-text/readme.md +0 -91
  144. package/dist/layout/facebook.svg +0 -45
  145. package/dist/layout/linkedin.svg +0 -50
  146. package/dist/layout/twitter.svg +0 -53
  147. package/dist/link/readme.md +0 -51
  148. package/dist/paginator/images/next.svg +0 -3
  149. package/dist/paginator/images/nextPage.svg +0 -3
  150. package/dist/paginator/images/previous.svg +0 -3
  151. package/dist/paginator/images/previousPage.svg +0 -3
  152. package/dist/paginator/readme.md +0 -50
  153. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  154. package/dist/progress-bar/readme.md +0 -63
  155. package/dist/radio/Radio.stories.js +0 -166
  156. package/dist/radio/readme.md +0 -70
  157. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  158. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  159. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  160. package/dist/select/Select.stories.js +0 -235
  161. package/dist/select/readme.md +0 -72
  162. package/dist/slider/Slider.stories.js +0 -241
  163. package/dist/slider/readme.md +0 -64
  164. package/dist/spinner/Spinner.stories.js +0 -183
  165. package/dist/spinner/readme.md +0 -65
  166. package/dist/switch/Switch.stories.js +0 -134
  167. package/dist/switch/readme.md +0 -133
  168. package/dist/tabs/Tabs.stories.js +0 -130
  169. package/dist/tabs/readme.md +0 -78
  170. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  171. package/dist/tabs-for-sections/readme.md +0 -78
  172. package/dist/toggle/Toggle.stories.js +0 -297
  173. package/dist/toggle/readme.md +0 -80
  174. package/dist/toggle-group/readme.md +0 -82
  175. package/dist/upload/Upload.stories.js +0 -72
  176. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  177. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  178. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  179. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  180. package/dist/upload/file-upload/audio-icon.svg +0 -4
  181. package/dist/upload/file-upload/close.svg +0 -4
  182. package/dist/upload/file-upload/file-icon.svg +0 -4
  183. package/dist/upload/file-upload/video-icon.svg +0 -4
  184. package/dist/upload/readme.md +0 -37
  185. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  186. package/dist/upload/transaction/audio-icon.svg +0 -4
  187. package/dist/upload/transaction/error-icon.svg +0 -4
  188. package/dist/upload/transaction/file-icon-err.svg +0 -4
  189. package/dist/upload/transaction/file-icon.svg +0 -4
  190. package/dist/upload/transaction/image-icon-err.svg +0 -4
  191. package/dist/upload/transaction/image-icon.svg +0 -4
  192. package/dist/upload/transaction/success-icon.svg +0 -4
  193. package/dist/upload/transaction/video-icon-err.svg +0 -4
  194. package/dist/upload/transaction/video-icon.svg +0 -4
  195. package/dist/wizard/invalid_icon.svg +0 -6
  196. package/dist/wizard/valid_icon.svg +0 -6
  197. package/dist/wizard/validation-wrong.svg +0 -6
  198. package/test/TabsForSections.test.js +0 -34
  199. package/test/Toggle.test.js +0 -43
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
2
+ import { render, fireEvent, act } from "@testing-library/react";
3
+ import userEvent from "@testing-library/user-event";
4
+
3
5
  import DxcResultsetTable from "../src/resultsetTable/ResultsetTable";
4
6
 
5
7
  const columns = [
@@ -14,7 +16,7 @@ const columns = [
14
16
  {
15
17
  displayValue: "City",
16
18
  isSortable: false,
17
- }
19
+ },
18
20
  ];
19
21
 
20
22
  const rows = [
@@ -30,7 +32,7 @@ const rows = [
30
32
  {
31
33
  displayValue: "Oviedo",
32
34
  sortValue: "Oviedo",
33
- }
35
+ },
34
36
  ],
35
37
  [
36
38
  {
@@ -61,7 +63,7 @@ const rows = [
61
63
  {
62
64
  displayValue: "Albacete",
63
65
  sortValue: "Albacete",
64
- }
66
+ },
65
67
  ],
66
68
  [
67
69
  {
@@ -75,7 +77,7 @@ const rows = [
75
77
  {
76
78
  displayValue: "Albacete",
77
79
  sortValue: "Albacete",
78
- }
80
+ },
79
81
  ],
80
82
  [
81
83
  {
@@ -89,7 +91,7 @@ const rows = [
89
91
  {
90
92
  displayValue: "Madrid",
91
93
  sortValue: "Madrid",
92
- }
94
+ },
93
95
  ],
94
96
  [
95
97
  {
@@ -120,7 +122,7 @@ const rows = [
120
122
  {
121
123
  displayValue: "Madrid",
122
124
  sortValue: "Madrid",
123
- }
125
+ },
124
126
  ],
125
127
  [
126
128
  {
@@ -134,7 +136,7 @@ const rows = [
134
136
  {
135
137
  displayValue: "Barcelona",
136
138
  sortValue: "Barcelona",
137
- }
139
+ },
138
140
  ],
139
141
  [
140
142
  {
@@ -185,7 +187,7 @@ const rows2 = [
185
187
  {
186
188
  displayValue: "OtherValue",
187
189
  sortValue: "OtherValue",
188
- }
190
+ },
189
191
  ],
190
192
  [
191
193
  {
@@ -216,21 +218,22 @@ const rows2 = [
216
218
  {
217
219
  displayValue: "OtherValue",
218
220
  sortValue: "OtherValue",
219
- }
221
+ },
220
222
  ],
221
223
  ];
222
224
 
223
225
  describe("ResultsetTable component tests", () => {
224
226
  test("ResultsetTable rendered correctly", () => {
225
- const { getByText } = render(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>);
227
+ const { getByText } = render(
228
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
229
+ );
226
230
  expect(getByText("Peter")).toBeTruthy();
227
231
  });
228
232
  test("Resultsettable shows as many rows as itemsPerPage", () => {
229
- const { getByText, queryByText } = render(
233
+ const { getAllByRole } = render(
230
234
  <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
231
235
  );
232
- expect(getByText("Peter")).toBeTruthy();
233
- expect(queryByText("Rick")).toBeFalsy();
236
+ expect(getAllByRole("row").length - 1).toEqual(3);
234
237
  });
235
238
 
236
239
  test("Resultsettable shows rows on second page", () => {
@@ -240,23 +243,49 @@ describe("ResultsetTable component tests", () => {
240
243
  expect(getByText("Peter")).toBeTruthy();
241
244
  expect(getByText("Louis")).toBeTruthy();
242
245
  expect(getByText("Lana")).toBeTruthy();
243
- const nextButton = getAllByRole("button")[2];
246
+ expect(getAllByRole("row").length - 1).toEqual(3);
247
+ const nextButton = getAllByRole("button")[3];
244
248
  fireEvent.click(nextButton);
245
249
  expect(getByText("4 to 6 of 10")).toBeTruthy();
246
- expect(getByText("Page: 2 of 4")).toBeTruthy();
250
+ // expect(getByText("Page: 2 of 4")).toBeTruthy();
251
+ expect(getByText("Rick")).toBeTruthy();
252
+ expect(getByText("Mark")).toBeTruthy();
253
+ expect(getByText("Cris")).toBeTruthy();
254
+ expect(getAllByRole("row").length - 1).toEqual(3);
255
+ });
256
+
257
+ test("Resultsettable goToPage works as expected", () => {
258
+ const { getByText, getAllByRole, getByRole } = render(
259
+ <DxcResultsetTable columns={columns} showGoToPage={true} rows={rows} itemsPerPage={3}></DxcResultsetTable>
260
+ );
261
+ expect(getByText("Peter")).toBeTruthy();
262
+ expect(getByText("Louis")).toBeTruthy();
263
+ expect(getByText("Lana")).toBeTruthy();
264
+ expect(getAllByRole("row").length - 1).toEqual(3);
265
+ const goToPageSelect = getAllByRole("button")[2];
266
+ act(() => {
267
+ userEvent.click(goToPageSelect);
268
+ });
269
+ const goToPageOption = getByText("2");
270
+ act(() => {
271
+ userEvent.click(goToPageOption);
272
+ });
273
+
274
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
247
275
  expect(getByText("Rick")).toBeTruthy();
248
276
  expect(getByText("Mark")).toBeTruthy();
249
277
  expect(getByText("Cris")).toBeTruthy();
278
+ expect(getAllByRole("row").length - 1).toEqual(3);
250
279
  });
251
280
 
252
281
  test("Resultsettable going to the last page shows only one row", () => {
253
282
  const { getByText, getAllByRole } = render(
254
283
  <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
255
284
  );
256
- const lastButton = getAllByRole("button")[3];
285
+ debugger;
286
+ const lastButton = getAllByRole("button")[4];
257
287
  fireEvent.click(lastButton);
258
288
  expect(getByText("10 to 10 of 10")).toBeTruthy();
259
- expect(getByText("Page: 4 of 4")).toBeTruthy();
260
289
  expect(getAllByRole("row")).toHaveLength(2);
261
290
  expect(getByText("Cosmin")).toBeTruthy();
262
291
  });
@@ -273,10 +302,28 @@ describe("ResultsetTable component tests", () => {
273
302
  expect(component.queryByText("Cosmin")).not.toBeTruthy();
274
303
  });
275
304
  test("Resultsettable change rows should go to first page", () => {
276
- const {queryByText, rerender} = render(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>);
305
+ const { queryByText, rerender } = render(
306
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
307
+ );
277
308
  expect(queryByText("Peter")).toBeTruthy();
278
309
  rerender(<DxcResultsetTable columns={columns} rows={rows2} itemsPerPage={3}></DxcResultsetTable>);
279
310
  expect(queryByText("1 to 3 of 3")).toBeTruthy();
280
311
  });
281
312
 
313
+ test("Resultsettable change itemsPerPage should go to first page", () => {
314
+ const { getAllByRole, queryByText, rerender } = render(
315
+ <DxcResultsetTable
316
+ columns={columns}
317
+ rows={rows}
318
+ itemsPerPage={3}
319
+ itemsPerPageOptions={[2, 3]}
320
+ ></DxcResultsetTable>
321
+ );
322
+ const lastButton = getAllByRole("button")[5];
323
+ fireEvent.click(lastButton);
324
+ expect(getAllByRole("row").length - 1).toEqual(1);
325
+ rerender(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={6}></DxcResultsetTable>);
326
+ expect(getAllByRole("row").length - 1).toEqual(6);
327
+ expect(queryByText("Peter")).toBeTruthy();
328
+ });
282
329
  });
@@ -4,7 +4,7 @@ import DxcSlider from "../src/slider/Slider";
4
4
 
5
5
  describe("Slider component tests", () => {
6
6
  test("Slider renders with correct text", () => {
7
- const { getByText } = render(<DxcSlider minValue={0} maxValue={100} showLimitsValues></DxcSlider>);
7
+ const { getByText } = render(<DxcSlider minValue={0} maxValue={100} showLimitsValues />);
8
8
  expect(getByText("0")).toBeTruthy();
9
9
  expect(getByText("100")).toBeTruthy();
10
10
  });
@@ -12,37 +12,29 @@ describe("Slider component tests", () => {
12
12
  test("Calls correct function onChange in controlled slider", () => {
13
13
  const onChange = jest.fn();
14
14
  const { getByRole } = render(
15
- <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues value={13} showInput></DxcSlider>
15
+ <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues value={13} showInput />
16
16
  );
17
17
  act(() => {
18
18
  fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
19
19
  });
20
- expect(onChange).toHaveBeenCalledWith("25");
20
+ expect(onChange).toHaveBeenCalledWith(25);
21
21
  });
22
22
 
23
23
  test("Calls correct function onChange in uncontrolled slider", () => {
24
24
  const onChange = jest.fn();
25
25
  const { getByRole } = render(
26
- <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues showInput></DxcSlider>
26
+ <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues showInput />
27
27
  );
28
28
  act(() => {
29
29
  fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
30
30
  });
31
- expect(onChange).toHaveBeenCalledWith("25");
31
+ expect(onChange).toHaveBeenCalledWith(25);
32
32
  });
33
33
 
34
34
  test("Disabled slider have disabled input", () => {
35
35
  const onChange = jest.fn();
36
36
  const { getByRole } = render(
37
- <DxcSlider
38
- minValue={0}
39
- maxValue={100}
40
- onChange={onChange}
41
- showLimitsValues
42
- disabled
43
- showInput
44
- value={13}
45
- ></DxcSlider>
37
+ <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues disabled showInput value={13} />
46
38
  );
47
39
  act(() => {
48
40
  fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
@@ -54,7 +46,7 @@ describe("Slider component tests", () => {
54
46
  test("Calls correct function onDragEnd", () => {
55
47
  const onDragEnd = jest.fn();
56
48
  const { getByRole } = render(
57
- <DxcSlider minValue={0} maxValue={100} showLimitsValues showInput onDragEnd={onDragEnd} value={25}></DxcSlider>
49
+ <DxcSlider minValue={0} maxValue={100} showLimitsValues showInput onDragEnd={onDragEnd} value={25} />
58
50
  );
59
51
  act(() => {
60
52
  fireEvent.mouseDown(getByRole("slider"));
@@ -64,7 +56,7 @@ describe("Slider component tests", () => {
64
56
  });
65
57
 
66
58
  test("Calls correct function labelFormatCallback", () => {
67
- const labelFormatCallback = jest.fn(x => `${x}$`);
59
+ const labelFormatCallback = jest.fn((x) => `${x}$`);
68
60
  const { getByText } = render(
69
61
  <DxcSlider
70
62
  minValue={0}
@@ -73,7 +65,7 @@ describe("Slider component tests", () => {
73
65
  showInput
74
66
  value={25}
75
67
  labelFormatCallback={labelFormatCallback}
76
- ></DxcSlider>
68
+ />
77
69
  );
78
70
  expect(getByText("0$")).toBeTruthy();
79
71
  expect(getByText("100$")).toBeTruthy();
@@ -24,4 +24,9 @@ describe("Spinner component tests", () => {
24
24
  expect(getByText("test-loading")).toBeTruthy();
25
25
  expect(getByText("75%")).toBeTruthy();
26
26
  });
27
+
28
+ test("Get spinner by role", () => {
29
+ const { getByRole } = render(<DxcSpinner label="test-loading" value={75} showValue></DxcSpinner>);
30
+ expect(getByRole("progressbar")).toBeTruthy();
31
+ });
27
32
  });
package/test/Tabs.test.js CHANGED
@@ -14,6 +14,21 @@ const sampleTabs = [
14
14
  },
15
15
  ];
16
16
 
17
+ const sampleTabsWithBadge = [
18
+ {
19
+ label: "Tab-1",
20
+ notificationNumber: "10",
21
+ },
22
+ {
23
+ label: "Tab-2",
24
+ notificationNumber: "20",
25
+ },
26
+ {
27
+ label: "Tab-3",
28
+ notificationNumber: "101",
29
+ },
30
+ ];
31
+
17
32
  describe("Tabs component tests", () => {
18
33
  test("Tabs render with correct labels", () => {
19
34
  const { getByText } = render(<DxcTabs tabs={sampleTabs}></DxcTabs>);
@@ -21,6 +36,12 @@ describe("Tabs component tests", () => {
21
36
  expect(getByText("Tab-2")).toBeTruthy();
22
37
  expect(getByText("Tab-3")).toBeTruthy();
23
38
  });
39
+ test("Tabs render with correct labels and badges", () => {
40
+ const { getByText } = render(<DxcTabs tabs={sampleTabsWithBadge}></DxcTabs>);
41
+ expect(getByText("10")).toBeTruthy();
42
+ expect(getByText("20")).toBeTruthy();
43
+ expect(getByText("+99")).toBeTruthy();
44
+ });
24
45
 
25
46
  test("Tabs render with correct icons", () => {
26
47
  const { getAllByRole } = render(