@dxc-technology/halstack-react 0.0.0-eb2a4cc → 0.0.0-ebb089f

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 (229) hide show
  1. package/README.md +2 -2
  2. package/babel.config.js +5 -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/V3Select/index.d.ts +27 -0
  7. package/dist/V3Textarea/V3Textarea.js +264 -0
  8. package/dist/V3Textarea/index.d.ts +27 -0
  9. package/dist/accordion/Accordion.js +170 -81
  10. package/dist/accordion/index.d.ts +28 -0
  11. package/dist/accordion-group/AccordionGroup.js +186 -0
  12. package/dist/accordion-group/index.d.ts +16 -0
  13. package/dist/alert/Alert.js +184 -83
  14. package/dist/alert/index.d.ts +51 -0
  15. package/dist/badge/Badge.js +63 -0
  16. package/dist/box/Box.js +31 -23
  17. package/dist/box/index.d.ts +25 -0
  18. package/dist/button/Button.js +84 -29
  19. package/dist/button/Button.stories.js +14 -211
  20. package/dist/button/index.d.ts +24 -0
  21. package/dist/card/Card.js +72 -35
  22. package/dist/card/index.d.ts +22 -0
  23. package/dist/checkbox/Checkbox.js +107 -32
  24. package/dist/checkbox/index.d.ts +24 -0
  25. package/dist/chip/Chip.js +135 -40
  26. package/dist/chip/index.d.ts +22 -0
  27. package/dist/common/RequiredComponent.js +2 -8
  28. package/dist/common/utils.js +2 -22
  29. package/dist/common/variables.js +1472 -159
  30. package/dist/date/Date.js +81 -59
  31. package/dist/date/index.d.ts +27 -0
  32. package/dist/date-input/DateInput.js +400 -0
  33. package/dist/date-input/index.d.ts +95 -0
  34. package/dist/dialog/Dialog.js +61 -36
  35. package/dist/dialog/index.d.ts +18 -0
  36. package/dist/dropdown/Dropdown.js +226 -94
  37. package/dist/dropdown/index.d.ts +26 -0
  38. package/dist/file-input/FileInput.js +644 -0
  39. package/dist/file-input/FileItem.js +287 -0
  40. package/dist/file-input/index.d.ts +81 -0
  41. package/dist/footer/Footer.js +122 -47
  42. package/dist/footer/Icons.js +77 -0
  43. package/dist/footer/index.d.ts +25 -0
  44. package/dist/header/Header.js +211 -91
  45. package/dist/header/Icons.js +59 -0
  46. package/dist/header/index.d.ts +25 -0
  47. package/dist/heading/Heading.js +93 -22
  48. package/dist/heading/index.d.ts +17 -0
  49. package/dist/input-text/Icons.js +22 -0
  50. package/dist/input-text/InputText.js +290 -104
  51. package/dist/input-text/index.d.ts +36 -0
  52. package/dist/layout/ApplicationLayout.js +327 -0
  53. package/dist/layout/Icons.js +55 -0
  54. package/dist/link/Link.js +136 -35
  55. package/dist/link/index.d.ts +23 -0
  56. package/dist/main.d.ts +40 -0
  57. package/dist/main.js +112 -16
  58. package/dist/number-input/NumberInput.js +136 -0
  59. package/dist/number-input/NumberInputContext.js +16 -0
  60. package/dist/number-input/index.d.ts +113 -0
  61. package/dist/paginator/Icons.js +66 -0
  62. package/dist/paginator/Paginator.js +184 -57
  63. package/dist/paginator/index.d.ts +20 -0
  64. package/dist/password-input/PasswordInput.js +203 -0
  65. package/dist/password-input/index.d.ts +94 -0
  66. package/dist/progress-bar/ProgressBar.js +97 -44
  67. package/dist/progress-bar/index.d.ts +18 -0
  68. package/dist/radio/Radio.js +39 -21
  69. package/dist/radio/index.d.ts +23 -0
  70. package/dist/resultsetTable/ResultsetTable.js +93 -69
  71. package/dist/resultsetTable/index.d.ts +19 -0
  72. package/dist/select/Select.js +957 -262
  73. package/dist/select/index.d.ts +131 -0
  74. package/dist/sidenav/Sidenav.js +87 -125
  75. package/dist/sidenav/index.d.ts +13 -0
  76. package/dist/slider/Slider.js +219 -73
  77. package/dist/slider/index.d.ts +29 -0
  78. package/dist/spinner/Spinner.js +249 -64
  79. package/dist/spinner/index.d.ts +17 -0
  80. package/dist/switch/Switch.js +51 -26
  81. package/dist/switch/index.d.ts +24 -0
  82. package/dist/table/Table.js +63 -15
  83. package/dist/table/index.d.ts +13 -0
  84. package/dist/tabs/Tabs.js +208 -35
  85. package/dist/tabs/index.d.ts +19 -0
  86. package/dist/tag/Tag.js +100 -35
  87. package/dist/tag/index.d.ts +24 -0
  88. package/dist/text-input/TextInput.js +974 -0
  89. package/dist/text-input/index.d.ts +135 -0
  90. package/dist/textarea/Textarea.js +250 -107
  91. package/dist/textarea/index.d.ts +117 -0
  92. package/dist/toggle/Toggle.js +16 -19
  93. package/dist/toggle/index.d.ts +21 -0
  94. package/dist/toggle-group/ToggleGroup.js +327 -0
  95. package/dist/toggle-group/index.d.ts +21 -0
  96. package/dist/upload/Upload.js +13 -8
  97. package/dist/upload/buttons-upload/ButtonsUpload.js +35 -25
  98. package/dist/upload/buttons-upload/Icons.js +40 -0
  99. package/dist/upload/dragAndDropArea/DragAndDropArea.js +84 -37
  100. package/dist/upload/dragAndDropArea/Icons.js +39 -0
  101. package/dist/upload/file-upload/FileToUpload.js +64 -33
  102. package/dist/upload/file-upload/Icons.js +66 -0
  103. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  104. package/dist/upload/index.d.ts +15 -0
  105. package/dist/upload/transaction/Icons.js +160 -0
  106. package/dist/upload/transaction/Transaction.js +42 -49
  107. package/dist/upload/transactions/Transactions.js +38 -20
  108. package/dist/useTheme.js +22 -0
  109. package/dist/wizard/Icons.js +65 -0
  110. package/dist/wizard/Wizard.js +156 -61
  111. package/dist/wizard/index.d.ts +18 -0
  112. package/package.json +26 -14
  113. package/test/AccordionGroup.test.js +125 -0
  114. package/test/Date.test.js +15 -13
  115. package/test/DateInput.test.js +242 -0
  116. package/test/Dropdown.test.js +19 -4
  117. package/test/FileInput.test.js +201 -0
  118. package/test/Footer.test.js +2 -7
  119. package/test/Header.test.js +5 -10
  120. package/test/Heading.test.js +60 -12
  121. package/test/InputText.test.js +31 -28
  122. package/test/Link.test.js +25 -7
  123. package/test/NumberInput.test.js +259 -0
  124. package/test/Paginator.test.js +76 -60
  125. package/test/PasswordInput.test.js +83 -0
  126. package/test/ResultsetTable.test.js +65 -17
  127. package/test/Select.test.js +869 -132
  128. package/test/Sidenav.test.js +22 -64
  129. package/test/Slider.test.js +24 -15
  130. package/test/Spinner.test.js +5 -0
  131. package/test/Tabs.test.js +21 -0
  132. package/test/TextInput.test.js +731 -0
  133. package/test/Textarea.test.js +193 -0
  134. package/test/ToggleGroup.test.js +85 -0
  135. package/test/Upload.test.js +1 -1
  136. package/test/V3Select.test.js +212 -0
  137. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  138. package/dist/accordion/Accordion.stories.js +0 -207
  139. package/dist/accordion/readme.md +0 -96
  140. package/dist/alert/Alert.stories.js +0 -158
  141. package/dist/alert/close.svg +0 -4
  142. package/dist/alert/error.svg +0 -4
  143. package/dist/alert/info.svg +0 -4
  144. package/dist/alert/readme.md +0 -43
  145. package/dist/alert/success.svg +0 -4
  146. package/dist/alert/warning.svg +0 -4
  147. package/dist/button/readme.md +0 -93
  148. package/dist/checkbox/Checkbox.stories.js +0 -144
  149. package/dist/checkbox/readme.md +0 -116
  150. package/dist/common/services/example-service.js +0 -10
  151. package/dist/common/services/example-service.test.js +0 -12
  152. package/dist/date/Date.stories.js +0 -205
  153. package/dist/date/calendar.svg +0 -1
  154. package/dist/date/calendar_dark.svg +0 -1
  155. package/dist/date/readme.md +0 -73
  156. package/dist/dialog/Dialog.stories.js +0 -217
  157. package/dist/dialog/readme.md +0 -32
  158. package/dist/dropdown/Dropdown.stories.js +0 -249
  159. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  160. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  161. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  162. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  163. package/dist/dropdown/readme.md +0 -69
  164. package/dist/footer/Footer.stories.js +0 -94
  165. package/dist/footer/dxc_logo_wht.png +0 -0
  166. package/dist/footer/readme.md +0 -41
  167. package/dist/header/Header.stories.js +0 -176
  168. package/dist/header/close_icon.svg +0 -1
  169. package/dist/header/dxc_logo_black.png +0 -0
  170. package/dist/header/dxc_logo_white.png +0 -0
  171. package/dist/header/hamb_menu_black.svg +0 -1
  172. package/dist/header/hamb_menu_white.svg +0 -1
  173. package/dist/header/readme.md +0 -33
  174. package/dist/input-text/InputText.stories.js +0 -209
  175. package/dist/input-text/error.svg +0 -1
  176. package/dist/input-text/readme.md +0 -91
  177. package/dist/link/readme.md +0 -51
  178. package/dist/paginator/images/next.svg +0 -3
  179. package/dist/paginator/images/nextPage.svg +0 -3
  180. package/dist/paginator/images/previous.svg +0 -3
  181. package/dist/paginator/images/previousPage.svg +0 -3
  182. package/dist/paginator/readme.md +0 -50
  183. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  184. package/dist/progress-bar/readme.md +0 -63
  185. package/dist/radio/Radio.stories.js +0 -166
  186. package/dist/radio/readme.md +0 -70
  187. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  188. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  189. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  190. package/dist/select/Select.stories.js +0 -235
  191. package/dist/select/readme.md +0 -72
  192. package/dist/sidenav/arrow_icon.svg +0 -3
  193. package/dist/slider/Slider.stories.js +0 -241
  194. package/dist/slider/readme.md +0 -64
  195. package/dist/spinner/Spinner.stories.js +0 -183
  196. package/dist/spinner/readme.md +0 -65
  197. package/dist/switch/Switch.stories.js +0 -134
  198. package/dist/switch/readme.md +0 -133
  199. package/dist/tabs/Tabs.stories.js +0 -130
  200. package/dist/tabs/readme.md +0 -78
  201. package/dist/tabs-for-sections/TabsForSections.js +0 -107
  202. package/dist/tabs-for-sections/readme.md +0 -78
  203. package/dist/toggle/Toggle.stories.js +0 -297
  204. package/dist/toggle/readme.md +0 -80
  205. package/dist/upload/Upload.stories.js +0 -72
  206. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  207. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  208. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  209. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  210. package/dist/upload/file-upload/audio-icon.svg +0 -4
  211. package/dist/upload/file-upload/close.svg +0 -4
  212. package/dist/upload/file-upload/file-icon.svg +0 -4
  213. package/dist/upload/file-upload/video-icon.svg +0 -4
  214. package/dist/upload/readme.md +0 -37
  215. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  216. package/dist/upload/transaction/audio-icon.svg +0 -4
  217. package/dist/upload/transaction/error-icon.svg +0 -4
  218. package/dist/upload/transaction/file-icon-err.svg +0 -4
  219. package/dist/upload/transaction/file-icon.svg +0 -4
  220. package/dist/upload/transaction/image-icon-err.svg +0 -4
  221. package/dist/upload/transaction/image-icon.svg +0 -4
  222. package/dist/upload/transaction/success-icon.svg +0 -4
  223. package/dist/upload/transaction/video-icon-err.svg +0 -4
  224. package/dist/upload/transaction/video-icon.svg +0 -4
  225. package/dist/wizard/invalid_icon.svg +0 -6
  226. package/dist/wizard/valid_icon.svg +0 -6
  227. package/dist/wizard/validation-wrong.svg +0 -6
  228. package/test/TabsForSections.test.js +0 -34
  229. package/test/Toggle.test.js +0 -43
@@ -3,85 +3,43 @@ import { render, fireEvent } from "@testing-library/react";
3
3
  import DxcSidenav from "../src/sidenav/Sidenav";
4
4
 
5
5
  const navContent = <p>nav-content-test</p>;
6
- const pageContent = <p>page-content-test</p>;
7
6
 
8
7
  describe("Sidenav component tests", () => {
9
- test("Sidenav in overlay mode renders nav and page content, and arrow", () => {
10
- const { getByText, getByRole } = render(
11
- <DxcSidenav navContent={navContent} pageContent={pageContent}></DxcSidenav>
12
- );
13
- expect(getByText("nav-content-test")).toBeTruthy();
14
- expect(getByText("page-content-test")).toBeTruthy();
15
- expect(getByRole("img")).toBeTruthy();
16
- });
17
-
18
- test("Sidenav in push mode renders nav and page content, and arrow", () => {
19
- const { getByText, getByRole } = render(
20
- <DxcSidenav navContent={navContent} pageContent={pageContent} mode="push"></DxcSidenav>
21
- );
8
+ test("Sidenav renders nav content", () => {
9
+ const { getByText } = render(<DxcSidenav>{navContent}</DxcSidenav>);
22
10
  expect(getByText("nav-content-test")).toBeTruthy();
23
- expect(getByText("page-content-test")).toBeTruthy();
24
- expect(getByRole("img")).toBeTruthy();
25
11
  });
26
12
 
27
- test("Sidenav in overlay mode renders nav and page content in mobile version", () => {
13
+ test("Sidenav renders nav and page content in mobile version", () => {
28
14
  //425 is mobile width
29
15
  Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
30
- const { getByText } = render(<DxcSidenav navContent={navContent} pageContent={pageContent}></DxcSidenav>);
16
+ const { getByText } = render(<DxcSidenav>{navContent}</DxcSidenav>);
31
17
  expect(getByText("nav-content-test")).toBeTruthy();
32
- expect(getByText("page-content-test")).toBeTruthy();
33
18
  });
34
19
 
35
- test("Sidenav in push mode renders nav and page content in mobile version", () => {
36
- //425 is mobile width
37
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
20
+ test("Sidenav renders compound components", () => {
38
21
  const { getByText } = render(
39
- <DxcSidenav navContent={navContent} pageContent={pageContent} mode="push"></DxcSidenav>
40
- );
41
- expect(getByText("nav-content-test")).toBeTruthy();
42
- expect(getByText("page-content-test")).toBeTruthy();
43
- });
44
-
45
- test("Sidenav in overlay mode not renders arrow", () => {
46
- //We need to force the offsetWidth value to detect that is not responsive
47
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 1024 });
48
- const { queryByRole } = render(
49
- <DxcSidenav navContent={navContent} pageContent={pageContent} displayArrow={false}></DxcSidenav>
50
- );
51
- expect(queryByRole("img")).toBeFalsy();
52
- });
53
-
54
- test("Sidenav in push mode not renders arrow", () => {
55
- //We need to force the offsetWidth value to detect that is not responsive
56
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 1024 });
57
- const { queryByRole } = render(
58
- <DxcSidenav navContent={navContent} pageContent={pageContent} displayArrow={false} mode="push"></DxcSidenav>
59
- );
60
- expect(queryByRole("img")).toBeFalsy();
61
- });
62
-
63
- test("Sidenav renders arrow with arrow distance", () => {
64
- const { getByRole } = render(
65
- <DxcSidenav navContent={navContent} pageContent={pageContent} arrowDistance="10px"></DxcSidenav>
22
+ <DxcSidenav>
23
+ <DxcSidenav.Title>test-title</DxcSidenav.Title>
24
+ <DxcSidenav.Subtitle>test-subtitle</DxcSidenav.Subtitle>
25
+ <DxcSidenav.Link href="#">test-link</DxcSidenav.Link>
26
+ </DxcSidenav>
66
27
  );
67
- expect(getByRole("img")).toBeTruthy();
28
+ expect(getByText("test-title")).toBeTruthy();
29
+ expect(getByText("test-subtitle")).toBeTruthy();
30
+ expect(getByText("test-link")).toBeTruthy();
68
31
  });
69
32
 
70
- test("Sidenav in overlay mode always renders arrow in mobile version", () => {
71
- //425 is mobile width
72
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
73
- const { getByRole } = render(
74
- <DxcSidenav navContent={navContent} pageContent={pageContent} displayArrow={false}></DxcSidenav>
33
+ test("Sidenav link onClick", () => {
34
+ const onClick = jest.fn();
35
+ const { getByText } = render(
36
+ <DxcSidenav>
37
+ <DxcSidenav.Link onClick={onClick}>test-link</DxcSidenav.Link>
38
+ </DxcSidenav>
75
39
  );
76
- expect(getByRole("img")).toBeTruthy();
77
- });
78
40
 
79
- test("Sidenav in push mode always renders arrow in mobile version", () => {
80
- //425 is mobile width
81
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
82
- const { getByRole } = render(
83
- <DxcSidenav navContent={navContent} pageContent={pageContent} displayArrow={false} mode="push"></DxcSidenav>
84
- );
85
- expect(getByRole("img")).toBeTruthy();
41
+ const link = getByText("test-link");
42
+ fireEvent.click(link);
43
+ expect(onClick).toHaveBeenCalled();
86
44
  });
87
45
  });
@@ -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"));
@@ -62,4 +54,21 @@ describe("Slider component tests", () => {
62
54
  });
63
55
  expect(onDragEnd).toHaveBeenCalled();
64
56
  });
57
+
58
+ test("Calls correct function labelFormatCallback", () => {
59
+ const labelFormatCallback = jest.fn((x) => `${x}$`);
60
+ const { getByText } = render(
61
+ <DxcSlider
62
+ minValue={0}
63
+ maxValue={100}
64
+ showLimitsValues
65
+ showInput
66
+ value={25}
67
+ labelFormatCallback={labelFormatCallback}
68
+ />
69
+ );
70
+ expect(getByText("0$")).toBeTruthy();
71
+ expect(getByText("100$")).toBeTruthy();
72
+ expect(labelFormatCallback).toHaveBeenCalledTimes(2);
73
+ });
65
74
  });
@@ -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(