@dxc-technology/halstack-react 0.0.0-e30cba6 → 0.0.0-e49dc66

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 (314) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/{dist/select/Select.js → V3Select/V3Select.js} +116 -246
  4. package/V3Select/index.d.ts +27 -0
  5. package/{dist/textarea/Textarea.js → V3Textarea/V3Textarea.js} +14 -18
  6. package/V3Textarea/index.d.ts +27 -0
  7. package/accordion/Accordion.d.ts +4 -0
  8. package/{dist/accordion → accordion}/Accordion.js +35 -130
  9. package/accordion/types.d.ts +68 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +170 -0
  13. package/accordion-group/types.d.ts +72 -0
  14. package/accordion-group/types.js +5 -0
  15. package/alert/Alert.d.ts +4 -0
  16. package/{dist/alert → alert}/Alert.js +42 -155
  17. package/alert/Alert.stories.tsx +170 -0
  18. package/alert/types.d.ts +49 -0
  19. package/alert/types.js +5 -0
  20. package/badge/Badge.js +59 -0
  21. package/box/Box.d.ts +4 -0
  22. package/{dist/box → box}/Box.js +18 -45
  23. package/box/Box.stories.tsx +132 -0
  24. package/box/types.d.ts +47 -0
  25. package/box/types.js +5 -0
  26. package/button/Button.d.ts +4 -0
  27. package/{dist/button → button}/Button.js +23 -84
  28. package/button/Button.stories.tsx +276 -0
  29. package/button/types.d.ts +57 -0
  30. package/button/types.js +5 -0
  31. package/card/Card.d.ts +4 -0
  32. package/{dist/card → card}/Card.js +32 -121
  33. package/card/types.d.ts +69 -0
  34. package/card/types.js +5 -0
  35. package/checkbox/Checkbox.d.ts +4 -0
  36. package/{dist/checkbox → checkbox}/Checkbox.js +16 -63
  37. package/checkbox/Checkbox.stories.tsx +192 -0
  38. package/checkbox/types.d.ts +60 -0
  39. package/checkbox/types.js +5 -0
  40. package/{dist/chip → chip}/Chip.js +17 -61
  41. package/chip/index.d.ts +22 -0
  42. package/{dist/common → common}/OpenSans.css +0 -0
  43. package/{dist/common → common}/RequiredComponent.js +3 -11
  44. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  45. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  46. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  47. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  49. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  50. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  51. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  52. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  53. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  54. package/{dist/common → common}/utils.js +0 -0
  55. package/{dist/common → common}/variables.js +380 -170
  56. package/{dist/date → date}/Date.js +20 -28
  57. package/date/index.d.ts +27 -0
  58. package/date-input/DateInput.d.ts +4 -0
  59. package/{dist/new-date/NewDate.js → date-input/DateInput.js} +88 -130
  60. package/date-input/DateInput.stories.tsx +138 -0
  61. package/date-input/types.d.ts +100 -0
  62. package/date-input/types.js +5 -0
  63. package/dialog/Dialog.d.ts +4 -0
  64. package/{dist/dialog → dialog}/Dialog.js +20 -73
  65. package/dialog/types.d.ts +43 -0
  66. package/dialog/types.js +5 -0
  67. package/dropdown/Dropdown.d.ts +4 -0
  68. package/{dist/dropdown → dropdown}/Dropdown.js +44 -171
  69. package/dropdown/types.d.ts +89 -0
  70. package/dropdown/types.js +5 -0
  71. package/file-input/FileInput.js +532 -0
  72. package/file-input/FileItem.js +193 -0
  73. package/file-input/index.d.ts +81 -0
  74. package/footer/Footer.d.ts +4 -0
  75. package/footer/Footer.js +266 -0
  76. package/footer/Footer.stories.jsx +151 -0
  77. package/footer/Icons.js +77 -0
  78. package/footer/types.d.ts +61 -0
  79. package/footer/types.js +5 -0
  80. package/header/Header.d.ts +7 -0
  81. package/header/Header.js +324 -0
  82. package/header/Icons.js +34 -0
  83. package/header/types.d.ts +45 -0
  84. package/header/types.js +5 -0
  85. package/{dist/heading → heading}/Heading.js +30 -72
  86. package/heading/index.d.ts +17 -0
  87. package/input-text/Icons.js +22 -0
  88. package/{dist/input-text → input-text}/InputText.js +37 -133
  89. package/input-text/index.d.ts +36 -0
  90. package/{dist/layout → layout}/ApplicationLayout.js +35 -131
  91. package/layout/Icons.js +55 -0
  92. package/link/Link.d.ts +3 -0
  93. package/{dist/link → link}/Link.js +20 -100
  94. package/link/Link.stories.tsx +70 -0
  95. package/link/types.d.ts +74 -0
  96. package/link/types.js +5 -0
  97. package/main.d.ts +44 -0
  98. package/{dist/main.js → main.js} +104 -92
  99. package/{dist/number/Number.js → number-input/NumberInput.js} +10 -20
  100. package/number-input/NumberInput.stories.jsx +115 -0
  101. package/{dist/number/NumberContext.js → number-input/NumberInputContext.js} +2 -2
  102. package/number-input/index.d.ts +113 -0
  103. package/package.json +32 -24
  104. package/paginator/Icons.js +66 -0
  105. package/paginator/Paginator.d.ts +4 -0
  106. package/paginator/Paginator.js +198 -0
  107. package/paginator/Paginator.stories.tsx +63 -0
  108. package/paginator/types.d.ts +38 -0
  109. package/paginator/types.js +5 -0
  110. package/password-input/PasswordInput.d.ts +4 -0
  111. package/{dist/password/Password.js → password-input/PasswordInput.js} +29 -67
  112. package/password-input/PasswordInput.stories.tsx +131 -0
  113. package/password-input/types.d.ts +100 -0
  114. package/password-input/types.js +5 -0
  115. package/progress-bar/ProgressBar.d.ts +4 -0
  116. package/{dist/progress-bar → progress-bar}/ProgressBar.js +20 -92
  117. package/progress-bar/ProgressBar.stories.jsx +58 -0
  118. package/progress-bar/types.d.ts +37 -0
  119. package/progress-bar/types.js +5 -0
  120. package/radio/Radio.d.ts +4 -0
  121. package/{dist/radio → radio}/Radio.js +15 -50
  122. package/radio/Radio.stories.tsx +192 -0
  123. package/radio/types.d.ts +54 -0
  124. package/radio/types.js +5 -0
  125. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -119
  126. package/resultsetTable/index.d.ts +19 -0
  127. package/select/Select.js +865 -0
  128. package/select/index.d.ts +131 -0
  129. package/{dist/sidenav → sidenav}/Sidenav.js +17 -49
  130. package/sidenav/index.d.ts +13 -0
  131. package/slider/Slider.d.ts +4 -0
  132. package/slider/Slider.js +317 -0
  133. package/slider/Slider.stories.tsx +172 -0
  134. package/slider/types.d.ts +78 -0
  135. package/slider/types.js +5 -0
  136. package/spinner/Spinner.d.ts +4 -0
  137. package/spinner/Spinner.js +250 -0
  138. package/spinner/Spinner.stories.jsx +102 -0
  139. package/spinner/types.d.ts +32 -0
  140. package/spinner/types.js +5 -0
  141. package/switch/Switch.d.ts +4 -0
  142. package/{dist/switch → switch}/Switch.js +26 -69
  143. package/switch/Switch.stories.tsx +160 -0
  144. package/switch/types.d.ts +58 -0
  145. package/switch/types.js +5 -0
  146. package/table/Table.d.ts +4 -0
  147. package/{dist/table → table}/Table.js +10 -24
  148. package/table/Table.stories.jsx +276 -0
  149. package/table/types.d.ts +21 -0
  150. package/table/types.js +5 -0
  151. package/tabs/Tabs.d.ts +4 -0
  152. package/tabs/Tabs.js +211 -0
  153. package/tabs/types.d.ts +71 -0
  154. package/tabs/types.js +5 -0
  155. package/tag/Tag.d.ts +4 -0
  156. package/tag/Tag.js +193 -0
  157. package/tag/Tag.stories.tsx +145 -0
  158. package/tag/types.d.ts +60 -0
  159. package/tag/types.js +5 -0
  160. package/text-input/TextInput.js +825 -0
  161. package/text-input/index.d.ts +135 -0
  162. package/{dist/new-textarea/NewTextarea.js → textarea/Textarea.js} +81 -110
  163. package/textarea/Textarea.stories.jsx +135 -0
  164. package/textarea/index.d.ts +117 -0
  165. package/{dist/toggle → toggle}/Toggle.js +15 -49
  166. package/toggle/index.d.ts +21 -0
  167. package/toggle-group/ToggleGroup.js +243 -0
  168. package/toggle-group/index.d.ts +21 -0
  169. package/{dist/upload → upload}/Upload.js +11 -15
  170. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  171. package/upload/buttons-upload/Icons.js +40 -0
  172. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  173. package/upload/dragAndDropArea/Icons.js +39 -0
  174. package/upload/file-upload/FileToUpload.js +115 -0
  175. package/upload/file-upload/Icons.js +66 -0
  176. package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
  177. package/upload/index.d.ts +15 -0
  178. package/upload/transaction/Icons.js +160 -0
  179. package/upload/transaction/Transaction.js +104 -0
  180. package/upload/transactions/Transactions.js +94 -0
  181. package/{dist/useTheme.js → useTheme.js} +0 -0
  182. package/wizard/Icons.js +65 -0
  183. package/{dist/wizard → wizard}/Wizard.js +32 -172
  184. package/wizard/index.d.ts +18 -0
  185. package/README.md +0 -66
  186. package/babel.config.js +0 -8
  187. package/dist/BackgroundColorContext.js +0 -46
  188. package/dist/ThemeContext.js +0 -240
  189. package/dist/accordion-group/AccordionGroup.js +0 -186
  190. package/dist/badge/Badge.js +0 -63
  191. package/dist/checkbox/Checkbox.stories.js +0 -144
  192. package/dist/checkbox/readme.md +0 -116
  193. package/dist/date/Date.stories.js +0 -205
  194. package/dist/date/readme.md +0 -73
  195. package/dist/footer/Footer.js +0 -395
  196. package/dist/footer/Footer.stories.js +0 -94
  197. package/dist/footer/dxc_logo.svg +0 -15
  198. package/dist/footer/readme.md +0 -41
  199. package/dist/header/Header.js +0 -403
  200. package/dist/header/Header.stories.js +0 -176
  201. package/dist/header/close_icon.svg +0 -1
  202. package/dist/header/dxc_logo_black.svg +0 -8
  203. package/dist/header/hamb_menu_black.svg +0 -1
  204. package/dist/header/hamb_menu_white.svg +0 -1
  205. package/dist/header/readme.md +0 -33
  206. package/dist/input-text/InputText.stories.js +0 -209
  207. package/dist/input-text/error.svg +0 -1
  208. package/dist/input-text/readme.md +0 -91
  209. package/dist/layout/facebook.svg +0 -45
  210. package/dist/layout/linkedin.svg +0 -50
  211. package/dist/layout/twitter.svg +0 -53
  212. package/dist/link/readme.md +0 -51
  213. package/dist/new-input-text/NewInputText.js +0 -961
  214. package/dist/paginator/Paginator.js +0 -289
  215. package/dist/paginator/images/next.svg +0 -3
  216. package/dist/paginator/images/nextPage.svg +0 -3
  217. package/dist/paginator/images/previous.svg +0 -3
  218. package/dist/paginator/images/previousPage.svg +0 -3
  219. package/dist/paginator/readme.md +0 -50
  220. package/dist/password/styles.css +0 -3
  221. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  222. package/dist/progress-bar/readme.md +0 -63
  223. package/dist/radio/Radio.stories.js +0 -166
  224. package/dist/radio/readme.md +0 -70
  225. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  226. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  227. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  228. package/dist/select/Select.stories.js +0 -235
  229. package/dist/select/readme.md +0 -72
  230. package/dist/slider/Slider.js +0 -319
  231. package/dist/slider/Slider.stories.js +0 -241
  232. package/dist/slider/readme.md +0 -64
  233. package/dist/spinner/Spinner.js +0 -218
  234. package/dist/spinner/Spinner.stories.js +0 -183
  235. package/dist/spinner/readme.md +0 -65
  236. package/dist/switch/Switch.stories.js +0 -134
  237. package/dist/switch/readme.md +0 -133
  238. package/dist/tabs/Tabs.js +0 -343
  239. package/dist/tabs/Tabs.stories.js +0 -130
  240. package/dist/tabs/readme.md +0 -78
  241. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  242. package/dist/tabs-for-sections/readme.md +0 -78
  243. package/dist/tag/Tag.js +0 -288
  244. package/dist/toggle/Toggle.stories.js +0 -297
  245. package/dist/toggle/readme.md +0 -80
  246. package/dist/toggle-group/ToggleGroup.js +0 -223
  247. package/dist/upload/Upload.stories.js +0 -72
  248. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -139
  249. package/dist/upload/buttons-upload/drag-drop-icon.svg +0 -4
  250. package/dist/upload/buttons-upload/upload-button.svg +0 -1
  251. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  252. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  253. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  254. package/dist/upload/file-upload/FileToUpload.js +0 -184
  255. package/dist/upload/file-upload/audio-icon.svg +0 -4
  256. package/dist/upload/file-upload/close.svg +0 -4
  257. package/dist/upload/file-upload/file-icon.svg +0 -4
  258. package/dist/upload/file-upload/video-icon.svg +0 -4
  259. package/dist/upload/readme.md +0 -37
  260. package/dist/upload/transaction/Transaction.js +0 -175
  261. package/dist/upload/transaction/audio-icon-err.svg +0 -4
  262. package/dist/upload/transaction/audio-icon.svg +0 -4
  263. package/dist/upload/transaction/error-icon.svg +0 -4
  264. package/dist/upload/transaction/file-icon-err.svg +0 -4
  265. package/dist/upload/transaction/file-icon.svg +0 -4
  266. package/dist/upload/transaction/image-icon-err.svg +0 -4
  267. package/dist/upload/transaction/image-icon.svg +0 -4
  268. package/dist/upload/transaction/success-icon.svg +0 -4
  269. package/dist/upload/transaction/video-icon-err.svg +0 -4
  270. package/dist/upload/transaction/video-icon.svg +0 -4
  271. package/dist/upload/transactions/Transactions.js +0 -138
  272. package/dist/wizard/invalid_icon.svg +0 -5
  273. package/dist/wizard/valid_icon.svg +0 -5
  274. package/dist/wizard/validation-wrong.svg +0 -6
  275. package/test/Accordion.test.js +0 -33
  276. package/test/AccordionGroup.test.js +0 -125
  277. package/test/Alert.test.js +0 -53
  278. package/test/Box.test.js +0 -10
  279. package/test/Button.test.js +0 -18
  280. package/test/Card.test.js +0 -30
  281. package/test/Checkbox.test.js +0 -45
  282. package/test/Chip.test.js +0 -25
  283. package/test/Date.test.js +0 -393
  284. package/test/Dialog.test.js +0 -23
  285. package/test/Dropdown.test.js +0 -145
  286. package/test/Footer.test.js +0 -99
  287. package/test/Header.test.js +0 -39
  288. package/test/Heading.test.js +0 -35
  289. package/test/InputText.test.js +0 -240
  290. package/test/Link.test.js +0 -43
  291. package/test/NewDate.test.js +0 -203
  292. package/test/NewInputText.test.js +0 -817
  293. package/test/NewTextarea.test.js +0 -201
  294. package/test/Number.test.js +0 -241
  295. package/test/Paginator.test.js +0 -177
  296. package/test/Password.test.js +0 -76
  297. package/test/ProgressBar.test.js +0 -35
  298. package/test/Radio.test.js +0 -37
  299. package/test/ResultsetTable.test.js +0 -330
  300. package/test/Select.test.js +0 -189
  301. package/test/Sidenav.test.js +0 -45
  302. package/test/Slider.test.js +0 -82
  303. package/test/Spinner.test.js +0 -27
  304. package/test/Switch.test.js +0 -45
  305. package/test/Table.test.js +0 -36
  306. package/test/Tabs.test.js +0 -109
  307. package/test/TabsForSections.test.js +0 -34
  308. package/test/Tag.test.js +0 -32
  309. package/test/TextArea.test.js +0 -52
  310. package/test/ToggleGroup.test.js +0 -81
  311. package/test/Upload.test.js +0 -60
  312. package/test/Wizard.test.js +0 -130
  313. package/test/mocks/pngMock.js +0 -1
  314. package/test/mocks/svgMock.js +0 -1
@@ -1,45 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcSidenav from "../src/sidenav/Sidenav";
4
-
5
- const navContent = <p>nav-content-test</p>;
6
-
7
- describe("Sidenav component tests", () => {
8
- test("Sidenav renders nav content", () => {
9
- const { getByText } = render(<DxcSidenav>{navContent}</DxcSidenav>);
10
- expect(getByText("nav-content-test")).toBeTruthy();
11
- });
12
-
13
- test("Sidenav renders nav and page content in mobile version", () => {
14
- //425 is mobile width
15
- Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
16
- const { getByText } = render(<DxcSidenav>{navContent}</DxcSidenav>);
17
- expect(getByText("nav-content-test")).toBeTruthy();
18
- });
19
-
20
- test("Sidenav renders compound components", () => {
21
- const { getByText } = render(
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>
27
- );
28
- expect(getByText("test-title")).toBeTruthy();
29
- expect(getByText("test-subtitle")).toBeTruthy();
30
- expect(getByText("test-link")).toBeTruthy();
31
- });
32
-
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>
39
- );
40
-
41
- const link = getByText("test-link");
42
- fireEvent.click(link);
43
- expect(onClick).toHaveBeenCalled();
44
- });
45
- });
@@ -1,82 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent, act } from "@testing-library/react";
3
- import DxcSlider from "../src/slider/Slider";
4
-
5
- describe("Slider component tests", () => {
6
- test("Slider renders with correct text", () => {
7
- const { getByText } = render(<DxcSlider minValue={0} maxValue={100} showLimitsValues></DxcSlider>);
8
- expect(getByText("0")).toBeTruthy();
9
- expect(getByText("100")).toBeTruthy();
10
- });
11
-
12
- test("Calls correct function onChange in controlled slider", () => {
13
- const onChange = jest.fn();
14
- const { getByRole } = render(
15
- <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues value={13} showInput></DxcSlider>
16
- );
17
- act(() => {
18
- fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
19
- });
20
- expect(onChange).toHaveBeenCalledWith("25");
21
- });
22
-
23
- test("Calls correct function onChange in uncontrolled slider", () => {
24
- const onChange = jest.fn();
25
- const { getByRole } = render(
26
- <DxcSlider minValue={0} maxValue={100} onChange={onChange} showLimitsValues showInput></DxcSlider>
27
- );
28
- act(() => {
29
- fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
30
- });
31
- expect(onChange).toHaveBeenCalledWith("25");
32
- });
33
-
34
- test("Disabled slider have disabled input", () => {
35
- const onChange = jest.fn();
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>
46
- );
47
- act(() => {
48
- fireEvent.change(getByRole("textbox"), { target: { value: 25 } });
49
- });
50
- expect(getByRole("textbox").hasAttribute("disabled")).toBeTruthy();
51
- expect(getByRole("textbox").value).toBe("13");
52
- });
53
-
54
- test("Calls correct function onDragEnd", () => {
55
- const onDragEnd = jest.fn();
56
- const { getByRole } = render(
57
- <DxcSlider minValue={0} maxValue={100} showLimitsValues showInput onDragEnd={onDragEnd} value={25}></DxcSlider>
58
- );
59
- act(() => {
60
- fireEvent.mouseDown(getByRole("slider"));
61
- fireEvent.mouseUp(getByRole("slider"));
62
- });
63
- expect(onDragEnd).toHaveBeenCalled();
64
- });
65
-
66
- test("Calls correct function labelFormatCallback", () => {
67
- const labelFormatCallback = jest.fn(x => `${x}$`);
68
- const { getByText } = render(
69
- <DxcSlider
70
- minValue={0}
71
- maxValue={100}
72
- showLimitsValues
73
- showInput
74
- value={25}
75
- labelFormatCallback={labelFormatCallback}
76
- ></DxcSlider>
77
- );
78
- expect(getByText("0$")).toBeTruthy();
79
- expect(getByText("100$")).toBeTruthy();
80
- expect(labelFormatCallback).toHaveBeenCalledTimes(2);
81
- });
82
- });
@@ -1,27 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import DxcSpinner from "../src/spinner/Spinner";
4
-
5
- describe("Spinner component tests", () => {
6
- test("Spinner renders with correct label", () => {
7
- const { getByText } = render(<DxcSpinner label="test-loading"></DxcSpinner>);
8
- expect(getByText("test-loading")).toBeTruthy();
9
- });
10
-
11
- test("Spinner shows value correctly", () => {
12
- const { getByText } = render(<DxcSpinner label="test-loading" value={75} showValue></DxcSpinner>);
13
- expect(getByText("75%")).toBeTruthy();
14
- });
15
-
16
- test("Small spinner hides value and label correctly", () => {
17
- const { queryByText } = render(<DxcSpinner mode="small" label="test-loading" value={75} showValue></DxcSpinner>);
18
- expect(queryByText("test-loading")).toBeFalsy();
19
- expect(queryByText("75%")).toBeFalsy();
20
- });
21
-
22
- test("Overlay spinner shows value and label correctly", () => {
23
- const { getByText } = render(<DxcSpinner mode="overlay" label="test-loading" value={75} showValue></DxcSpinner>);
24
- expect(getByText("test-loading")).toBeTruthy();
25
- expect(getByText("75%")).toBeTruthy();
26
- });
27
- });
@@ -1,45 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcSwitch from "../src/switch/Switch";
4
-
5
- describe("Switch component tests", () => {
6
- test("Switch renders with correct text", () => {
7
- const onChange = jest.fn((returnedValue) => {
8
- expect(returnedValue).toBe(true);
9
- });
10
-
11
- const { getByText } = render(<DxcSwitch label={"SwitchComponent"} checked={false} onChange={onChange} />);
12
- expect(getByText("SwitchComponent")).toBeTruthy();
13
- });
14
-
15
- test("Calls correct function on click", () => {
16
- const onChange = jest.fn();
17
- const { getByText } = render(<DxcSwitch label={"SwitchComponent"} checked={false} onChange={onChange} />);
18
-
19
- fireEvent.click(getByText("SwitchComponent"));
20
- expect(onChange).toHaveBeenCalled();
21
- });
22
-
23
- test("Everytime the user clicks the component the onchange function is called with the correct value CONTROLLED COMPONENT", () => {
24
- const onChange = jest.fn();
25
-
26
- const { getByText } = render(<DxcSwitch label={"SwitchComponent"} checked={false} onChange={onChange} />);
27
-
28
- fireEvent.click(getByText("SwitchComponent"));
29
- fireEvent.click(getByText("SwitchComponent"));
30
- expect(onChange.mock.calls[0][0]).toBe(true);
31
- expect(onChange.mock.calls[1][0]).toBe(true);
32
- });
33
-
34
-
35
- test("Everytime the user clicks the component the onchange function is called with the correct value UNCONTROLLED COMPONENT", () => {
36
- const onChange = jest.fn();
37
-
38
- const { getByText } = render(<DxcSwitch label={"SwitchComponent"} onChange={onChange} />);
39
-
40
- fireEvent.click(getByText("SwitchComponent"));
41
- fireEvent.click(getByText("SwitchComponent"));
42
- expect(onChange.mock.calls[0][0]).toBe(true);
43
- expect(onChange.mock.calls[1][0]).toBe(false);
44
- });
45
- });
@@ -1,36 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcTable from "../src/table/Table";
4
-
5
- describe("Table component tests", () => {
6
- test("Table renders with correct content", () => {
7
- const { getByText } = render(
8
- <DxcTable>
9
- <tr>
10
- <th>header-1</th>
11
- <th>header-2</th>
12
- <th>header-3</th>
13
- </tr>
14
- <tr>
15
- <td>cell-1</td>
16
- <td>cell-2</td>
17
- <td>cell-3</td>
18
- </tr>
19
- <tr>
20
- <td>cell-4</td>
21
- <td>cell-5</td>
22
- <td>cell-6</td>
23
- </tr>
24
- </DxcTable>
25
- );
26
- expect(getByText("header-1")).toBeTruthy();
27
- expect(getByText("header-2")).toBeTruthy();
28
- expect(getByText("header-3")).toBeTruthy();
29
- expect(getByText("cell-1")).toBeTruthy();
30
- expect(getByText("cell-2")).toBeTruthy();
31
- expect(getByText("cell-3")).toBeTruthy();
32
- expect(getByText("cell-4")).toBeTruthy();
33
- expect(getByText("cell-5")).toBeTruthy();
34
- expect(getByText("cell-6")).toBeTruthy();
35
- });
36
- });
package/test/Tabs.test.js DELETED
@@ -1,109 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcTabs from "../src/tabs/Tabs";
4
-
5
- const sampleTabs = [
6
- {
7
- label: "Tab-1",
8
- },
9
- {
10
- label: "Tab-2",
11
- },
12
- {
13
- label: "Tab-3",
14
- },
15
- ];
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
-
32
- describe("Tabs component tests", () => {
33
- test("Tabs render with correct labels", () => {
34
- const { getByText } = render(<DxcTabs tabs={sampleTabs}></DxcTabs>);
35
- expect(getByText("Tab-1")).toBeTruthy();
36
- expect(getByText("Tab-2")).toBeTruthy();
37
- expect(getByText("Tab-3")).toBeTruthy();
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
- });
45
-
46
- test("Tabs render with correct icons", () => {
47
- const { getAllByRole } = render(
48
- <DxcTabs
49
- tabs={[
50
- {
51
- label: "Tab-1",
52
- iconSrc: "/testIcon1.png",
53
- },
54
- {
55
- label: "Tab-2",
56
- iconSrc: "/testIcon2.png",
57
- },
58
- {
59
- label: "Tab-3",
60
- iconSrc: "/testIcon3.png",
61
- },
62
- ]}
63
- ></DxcTabs>
64
- );
65
- expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
66
- expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
67
- expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
68
- });
69
-
70
- test("Tabs render with disabled tab", () => {
71
- const { getAllByRole } = render(
72
- <DxcTabs
73
- tabs={[
74
- {
75
- label: "Tab-1",
76
- isDisabled: true,
77
- },
78
- {
79
- label: "Tab-2",
80
- },
81
- ]}
82
- ></DxcTabs>
83
- );
84
- expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
85
- expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
86
- });
87
-
88
- test("Uncontrolled tabs", () => {
89
- const onTabClick = jest.fn();
90
- const { getByText } = render(<DxcTabs tabs={sampleTabs} onTabClick={onTabClick}></DxcTabs>);
91
- const tab1 = getByText("Tab-1");
92
- const tab2 = getByText("Tab-2");
93
- fireEvent.click(tab2);
94
- expect(onTabClick).toHaveBeenCalledWith(1);
95
- fireEvent.click(tab1);
96
- expect(onTabClick).toHaveBeenCalledWith(0);
97
- });
98
-
99
- test("Controlled tabs", () => {
100
- const onTabClick = jest.fn();
101
- const { getByText } = render(<DxcTabs tabs={sampleTabs} onTabClick={onTabClick} activeTabIndex={0}></DxcTabs>);
102
- const tab2 = getByText("Tab-2");
103
- const tab3 = getByText("Tab-3");
104
- fireEvent.click(tab2);
105
- expect(onTabClick).toHaveBeenCalledWith(1);
106
- fireEvent.click(tab3);
107
- expect(onTabClick).toHaveBeenCalledWith(2);
108
- });
109
- });
@@ -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
- });
package/test/Tag.test.js DELETED
@@ -1,32 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcTag from "../src/tag/Tag";
4
-
5
- describe("Tag component tests", () => {
6
- test("Tag renders with correct label", () => {
7
- const { getByText } = render(<DxcTag label="tag-test"></DxcTag>);
8
- expect(getByText("tag-test")).toBeTruthy();
9
- });
10
-
11
- test("Tag renders with correct label before", () => {
12
- const { getByText } = render(<DxcTag label="tag-test" labelPosition="before"></DxcTag>);
13
- expect(getByText("tag-test")).toBeTruthy();
14
- });
15
-
16
- test("Tag renders with correct icon", () => {
17
- const { getByRole } = render(<DxcTag label="tag-test" iconSrc="/test-icon.jpg"></DxcTag>);
18
- expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
19
- });
20
-
21
- test("Tag renders with link href", () => {
22
- const { getByRole } = render(<DxcTag label="tag-test" linkHref="/test/page"></DxcTag>);
23
- expect(getByRole("link").getAttribute("href")).toBe("/test/page");
24
- });
25
-
26
- test("Call correct function on click", () => {
27
- const onClick = jest.fn();
28
- const { getByText } = render(<DxcTag label="tag-test" onClick={onClick}></DxcTag>);
29
- fireEvent.click(getByText("tag-test"));
30
- expect(onClick).toHaveBeenCalled();
31
- });
32
- });
@@ -1,52 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcTextarea from "../src/textarea/Textarea";
4
-
5
- describe("TextArea component tests", () => {
6
- test("TextArea renders with correct text", () => {
7
- const { getByText } = render(<DxcTextarea label="TextArea label" />);
8
- expect(getByText("TextArea label")).toBeTruthy();
9
- });
10
-
11
- test("onChange function is called correctly", () => {
12
- const onChange = jest.fn();
13
-
14
- const { getByRole } = render(<DxcTextarea label="TextArea label" onChange={onChange} />);
15
- const input = getByRole("textbox");
16
- fireEvent.change(input, { target: { value: "Testing..." } });
17
- expect(onChange).toHaveBeenCalled();
18
- expect(onChange).toHaveBeenCalledWith("Testing...");
19
- });
20
-
21
- test("onBlur function is called correctly", () => {
22
- const onBlur = jest.fn();
23
-
24
- const { getByRole } = render(<DxcTextarea label="TextArea label" onBlur={onBlur} />);
25
- const input = getByRole("textbox");
26
- fireEvent.change(input, { target: { value: "Testing..." } });
27
- fireEvent.blur(input);
28
- expect(onBlur).toHaveBeenCalled();
29
- expect(onBlur).toHaveBeenCalledWith("Testing...");
30
- });
31
-
32
- test("Controlled component", () => {
33
- const onChange = jest.fn();
34
- const { getByRole } = render(<DxcTextarea label="TextArea label" value="TextArea Value" onChange={onChange} />);
35
- const input = getByRole("textbox");
36
- fireEvent.change(input, { target: { value: "Tests" } });
37
- expect(onChange).toHaveBeenCalled();
38
- expect(onChange).toHaveBeenCalledWith("Tests");
39
- expect(input.value).toBe("TextArea Value");
40
- });
41
-
42
- test("Uncontrolled component", () => {
43
- const onChange = jest.fn();
44
- const { getByRole } = render(<DxcTextarea label="TextArea label" onChange={onChange} />);
45
- const input = getByRole("textbox");
46
- fireEvent.change(input, { target: { value: "Tests" } });
47
- expect(onChange).toHaveBeenCalled();
48
- expect(onChange).toHaveBeenCalledWith("Tests");
49
- expect(input.value).toBe("Tests");
50
- });
51
-
52
- });
@@ -1,81 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcToggleGroup from "../src/toggle-group/ToggleGroup";
4
-
5
- const options = [
6
- {
7
- value: 1,
8
- label: "Amazon",
9
- },
10
- {
11
- value: 2,
12
- label: "Ebay",
13
- },
14
- {
15
- value: 3,
16
- label: "Apple",
17
- },
18
- {
19
- value: 4,
20
- label: "Google",
21
- },
22
- ];
23
-
24
- describe("Toggle group component tests", () => {
25
- test("Toggle group renders with correct labels", () => {
26
- const { getByText } = render(<DxcToggleGroup options={options} />);
27
- expect(getByText("Amazon")).toBeTruthy();
28
- expect(getByText("Ebay")).toBeTruthy();
29
- expect(getByText("Apple")).toBeTruthy();
30
- expect(getByText("Google")).toBeTruthy();
31
- });
32
-
33
- test("Uncontrolled toggle group calls correct function on change with value", () => {
34
- const onChange = jest.fn();
35
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} />);
36
-
37
- const option = getByText("Ebay");
38
- fireEvent.click(option);
39
- expect(onChange).toHaveBeenCalledWith(2);
40
- });
41
-
42
- test("Controlled toggle group calls correct function on change with value", () => {
43
- const onChange = jest.fn();
44
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} value={1} />);
45
-
46
- const option = getByText("Ebay");
47
- fireEvent.click(option);
48
- expect(onChange).toHaveBeenCalledWith(2);
49
- });
50
-
51
- test("Function on change is not called when disable", () => {
52
- const onChange = jest.fn();
53
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} disabled />);
54
-
55
- const option = getByText("Ebay");
56
- fireEvent.click(option);
57
- expect(onChange).toHaveBeenCalledTimes(0);
58
- });
59
-
60
- test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", () => {
61
- const onChange = jest.fn();
62
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} multiple />);
63
-
64
- const option = getByText("Ebay");
65
- fireEvent.click(option);
66
- expect(onChange).toHaveBeenCalledWith([2]);
67
- });
68
-
69
- test("Controlled multiple toggle returns always same values", () => {
70
- const onChange = jest.fn();
71
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} value={[1]} multiple />);
72
-
73
- const option = getByText("Ebay");
74
- fireEvent.click(option);
75
- expect(onChange).toHaveBeenCalledWith([1, 2]);
76
-
77
- const option2 = getByText("Google");
78
- fireEvent.click(option2);
79
- expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
80
- });
81
- });
@@ -1,60 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent, act, createEvent } from "@testing-library/react";
3
- import DxcUpload from "../src/upload/Upload";
4
-
5
- describe("Upload component tests", () => {
6
- test("Upload renders with correct text", () => {
7
- const { getByText } = render(<DxcUpload margin="small"></DxcUpload>);
8
- expect(getByText("There are no files to upload")).toBeTruthy();
9
- expect(getByText("Drag and drop your files here or choose one from your computer")).toBeTruthy();
10
- expect(getByText("CHOOSE FILES")).toBeTruthy();
11
- });
12
-
13
- test("Upload shows file information", () => {
14
- const myfunction = jest.fn();
15
- const { getByText } = render(<DxcUpload margin="small"></DxcUpload>);
16
-
17
- const dropZone = getByText("There are no files to upload");
18
- const dropEvent = createEvent.drop(dropZone);
19
- const fileList = [new File(["(⌐□_□)"], "test.png", { type: "image/png" })];
20
-
21
- Object.defineProperty(dropEvent, "dataTransfer", {
22
- value: {
23
- files: fileList,
24
- clearData: myfunction,
25
- },
26
- });
27
-
28
- act(() => {
29
- fireEvent(dropZone, dropEvent);
30
- });
31
- expect(getByText("test.png")).toBeTruthy();
32
- expect(getByText("image/png")).toBeTruthy();
33
- expect(getByText("UPLOAD")).toBeTruthy();
34
- });
35
-
36
- test("Calls correct function callbackUpload", () => {
37
- const onCallbackUpload = jest.fn(() => new Promise(resolve => setTimeout(resolve, 1000)));
38
- const myfunction = jest.fn();
39
- const { getByText } = render(<DxcUpload margin="small" callbackUpload={onCallbackUpload}></DxcUpload>);
40
-
41
- const dropZone = getByText("There are no files to upload");
42
- const dropEvent = createEvent.drop(dropZone);
43
- const fileList = [new File(["(⌐□_□)"], "test.png", { type: "image/png" })];
44
-
45
- Object.defineProperty(dropEvent, "dataTransfer", {
46
- value: {
47
- files: fileList,
48
- clearData: myfunction,
49
- },
50
- });
51
-
52
- act(() => {
53
- fireEvent(dropZone, dropEvent);
54
- });
55
- act(() => {
56
- fireEvent.click(getByText("UPLOAD"));
57
- });
58
- expect(onCallbackUpload).toHaveBeenCalled();
59
- });
60
- });