@dxc-technology/halstack-react 0.0.0-acb1a24 → 0.0.0-adde6ce

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 (351) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +243 -0
  5. package/{dist/V3Select → V3Select}/V3Select.js +35 -129
  6. package/{dist/V3Select → V3Select}/index.d.ts +0 -0
  7. package/{dist/V3Textarea → V3Textarea}/V3Textarea.js +12 -16
  8. package/{dist/V3Textarea → V3Textarea}/index.d.ts +0 -0
  9. package/accordion/Accordion.d.ts +4 -0
  10. package/{dist/accordion → accordion}/Accordion.js +37 -132
  11. package/accordion/Accordion.stories.tsx +307 -0
  12. package/accordion/types.d.ts +68 -0
  13. package/accordion/types.js +5 -0
  14. package/accordion-group/AccordionGroup.d.ts +7 -0
  15. package/accordion-group/AccordionGroup.js +170 -0
  16. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  17. package/accordion-group/types.d.ts +72 -0
  18. package/accordion-group/types.js +5 -0
  19. package/alert/Alert.d.ts +4 -0
  20. package/{dist/alert → alert}/Alert.js +40 -153
  21. package/alert/Alert.stories.tsx +170 -0
  22. package/alert/types.d.ts +49 -0
  23. package/alert/types.js +5 -0
  24. package/badge/Badge.js +59 -0
  25. package/box/Box.d.ts +4 -0
  26. package/{dist/box → box}/Box.js +15 -45
  27. package/box/Box.stories.tsx +132 -0
  28. package/box/types.d.ts +43 -0
  29. package/box/types.js +5 -0
  30. package/button/Button.d.ts +4 -0
  31. package/{dist/button → button}/Button.js +24 -83
  32. package/button/Button.stories.tsx +276 -0
  33. package/button/types.d.ts +57 -0
  34. package/button/types.js +5 -0
  35. package/card/Card.d.ts +4 -0
  36. package/{dist/card → card}/Card.js +34 -124
  37. package/card/Card.stories.tsx +201 -0
  38. package/card/ice-cream.jpg +0 -0
  39. package/card/types.d.ts +67 -0
  40. package/card/types.js +5 -0
  41. package/checkbox/Checkbox.d.ts +4 -0
  42. package/{dist/checkbox → checkbox}/Checkbox.js +15 -61
  43. package/checkbox/Checkbox.stories.tsx +192 -0
  44. package/checkbox/types.d.ts +60 -0
  45. package/checkbox/types.js +5 -0
  46. package/chip/Chip.d.ts +4 -0
  47. package/{dist/chip → chip}/Chip.js +22 -88
  48. package/chip/Chip.stories.tsx +121 -0
  49. package/chip/types.d.ts +53 -0
  50. package/chip/types.js +5 -0
  51. package/{dist/common → common}/OpenSans.css +0 -0
  52. package/{dist/common → common}/RequiredComponent.js +3 -11
  53. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  54. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  55. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  56. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  57. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  58. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  59. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  60. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  61. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  62. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  63. package/{dist/common → common}/utils.js +0 -0
  64. package/{dist/common → common}/variables.js +126 -88
  65. package/{dist/date → date}/Date.js +17 -23
  66. package/{dist/date → date}/index.d.ts +0 -0
  67. package/date-input/DateInput.d.ts +4 -0
  68. package/{dist/date-input → date-input}/DateInput.js +26 -68
  69. package/date-input/DateInput.stories.tsx +138 -0
  70. package/date-input/types.d.ts +100 -0
  71. package/date-input/types.js +5 -0
  72. package/dialog/Dialog.d.ts +4 -0
  73. package/{dist/dialog → dialog}/Dialog.js +24 -76
  74. package/dialog/Dialog.stories.tsx +212 -0
  75. package/dialog/types.d.ts +43 -0
  76. package/dialog/types.js +5 -0
  77. package/dropdown/Dropdown.d.ts +4 -0
  78. package/{dist/dropdown → dropdown}/Dropdown.js +45 -172
  79. package/dropdown/Dropdown.stories.tsx +247 -0
  80. package/dropdown/types.d.ts +89 -0
  81. package/dropdown/types.js +5 -0
  82. package/file-input/FileInput.d.ts +4 -0
  83. package/file-input/FileInput.js +590 -0
  84. package/file-input/FileInput.stories.tsx +507 -0
  85. package/file-input/FileItem.d.ts +14 -0
  86. package/file-input/FileItem.js +184 -0
  87. package/file-input/types.d.ts +112 -0
  88. package/file-input/types.js +5 -0
  89. package/footer/Footer.d.ts +4 -0
  90. package/footer/Footer.js +260 -0
  91. package/footer/Footer.stories.tsx +130 -0
  92. package/footer/Icons.d.ts +2 -0
  93. package/{dist/footer → footer}/Icons.js +15 -15
  94. package/footer/types.d.ts +65 -0
  95. package/footer/types.js +5 -0
  96. package/header/Header.d.ts +7 -0
  97. package/{dist/header → header}/Header.js +58 -204
  98. package/header/Header.stories.tsx +162 -0
  99. package/header/Icons.d.ts +2 -0
  100. package/{dist/header → header}/Icons.js +7 -32
  101. package/header/types.d.ts +47 -0
  102. package/header/types.js +5 -0
  103. package/heading/Heading.d.ts +4 -0
  104. package/{dist/heading → heading}/Heading.js +25 -96
  105. package/heading/Heading.stories.tsx +54 -0
  106. package/heading/types.d.ts +33 -0
  107. package/heading/types.js +5 -0
  108. package/{dist/input-text → input-text}/Icons.js +2 -2
  109. package/{dist/input-text → input-text}/InputText.js +38 -132
  110. package/{dist/input-text → input-text}/index.d.ts +1 -1
  111. package/layout/ApplicationLayout.d.ts +10 -0
  112. package/{dist/layout → layout}/ApplicationLayout.js +39 -141
  113. package/layout/ApplicationLayout.stories.tsx +171 -0
  114. package/{dist/layout → layout}/Icons.js +7 -7
  115. package/layout/types.d.ts +57 -0
  116. package/layout/types.js +5 -0
  117. package/link/Link.d.ts +3 -0
  118. package/{dist/link → link}/Link.js +19 -95
  119. package/link/Link.stories.tsx +146 -0
  120. package/link/types.d.ts +74 -0
  121. package/link/types.js +5 -0
  122. package/list/List.d.ts +8 -0
  123. package/list/List.js +47 -0
  124. package/list/List.stories.tsx +95 -0
  125. package/main.d.ts +48 -0
  126. package/{dist/main.js → main.js} +118 -82
  127. package/number-input/NumberInput.d.ts +4 -0
  128. package/number-input/NumberInput.js +83 -0
  129. package/number-input/NumberInput.stories.tsx +115 -0
  130. package/number-input/NumberInputContext.d.ts +4 -0
  131. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  132. package/number-input/numberInputContextTypes.d.ts +19 -0
  133. package/number-input/numberInputContextTypes.js +5 -0
  134. package/number-input/types.d.ts +117 -0
  135. package/number-input/types.js +5 -0
  136. package/package.json +31 -18
  137. package/{dist/paginator → paginator}/Icons.js +9 -9
  138. package/paginator/Paginator.d.ts +4 -0
  139. package/paginator/Paginator.js +192 -0
  140. package/paginator/Paginator.stories.tsx +63 -0
  141. package/paginator/types.d.ts +38 -0
  142. package/paginator/types.js +5 -0
  143. package/password-input/PasswordInput.d.ts +4 -0
  144. package/{dist/password-input → password-input}/PasswordInput.js +37 -77
  145. package/password-input/PasswordInput.stories.tsx +131 -0
  146. package/password-input/types.d.ts +107 -0
  147. package/password-input/types.js +5 -0
  148. package/progress-bar/ProgressBar.d.ts +4 -0
  149. package/{dist/progress-bar → progress-bar}/ProgressBar.js +22 -94
  150. package/progress-bar/ProgressBar.stories.jsx +58 -0
  151. package/progress-bar/types.d.ts +37 -0
  152. package/progress-bar/types.js +5 -0
  153. package/radio/Radio.d.ts +4 -0
  154. package/{dist/radio → radio}/Radio.js +17 -52
  155. package/radio/Radio.stories.tsx +192 -0
  156. package/radio/types.d.ts +54 -0
  157. package/radio/types.js +5 -0
  158. package/radio-group/Radio.d.ts +4 -0
  159. package/radio-group/Radio.js +130 -0
  160. package/radio-group/RadioGroup.d.ts +4 -0
  161. package/radio-group/RadioGroup.js +268 -0
  162. package/radio-group/RadioGroup.stories.tsx +79 -0
  163. package/radio-group/types.d.ts +36 -0
  164. package/radio-group/types.js +5 -0
  165. package/resultsetTable/ResultsetTable.d.ts +4 -0
  166. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +39 -146
  167. package/resultsetTable/ResultsetTable.stories.tsx +277 -0
  168. package/resultsetTable/types.d.ts +67 -0
  169. package/resultsetTable/types.js +5 -0
  170. package/row/Row.d.ts +11 -0
  171. package/row/Row.js +127 -0
  172. package/row/Row.stories.tsx +239 -0
  173. package/select/Select.d.ts +4 -0
  174. package/{dist/select → select}/Select.js +258 -491
  175. package/select/Select.stories.tsx +572 -0
  176. package/select/types.d.ts +170 -0
  177. package/select/types.js +5 -0
  178. package/sidenav/Sidenav.d.ts +9 -0
  179. package/{dist/sidenav → sidenav}/Sidenav.js +21 -64
  180. package/sidenav/Sidenav.stories.tsx +182 -0
  181. package/sidenav/types.d.ts +50 -0
  182. package/sidenav/types.js +5 -0
  183. package/slider/Slider.d.ts +4 -0
  184. package/{dist/slider → slider}/Slider.js +74 -161
  185. package/slider/Slider.stories.tsx +177 -0
  186. package/slider/types.d.ts +78 -0
  187. package/slider/types.js +5 -0
  188. package/spinner/Spinner.d.ts +4 -0
  189. package/spinner/Spinner.js +250 -0
  190. package/spinner/Spinner.stories.jsx +103 -0
  191. package/spinner/types.d.ts +32 -0
  192. package/spinner/types.js +5 -0
  193. package/stack/Stack.d.ts +10 -0
  194. package/stack/Stack.js +97 -0
  195. package/stack/Stack.stories.tsx +166 -0
  196. package/switch/Switch.d.ts +4 -0
  197. package/{dist/switch → switch}/Switch.js +28 -71
  198. package/switch/Switch.stories.tsx +160 -0
  199. package/switch/types.d.ts +58 -0
  200. package/switch/types.js +5 -0
  201. package/table/Table.d.ts +4 -0
  202. package/{dist/table → table}/Table.js +12 -26
  203. package/table/Table.stories.jsx +277 -0
  204. package/table/types.d.ts +21 -0
  205. package/table/types.js +5 -0
  206. package/tabs/Tabs.d.ts +4 -0
  207. package/tabs/Tabs.js +213 -0
  208. package/tabs/Tabs.stories.tsx +122 -0
  209. package/tabs/types.d.ts +70 -0
  210. package/tabs/types.js +5 -0
  211. package/tag/Tag.d.ts +4 -0
  212. package/tag/Tag.js +193 -0
  213. package/tag/Tag.stories.tsx +145 -0
  214. package/tag/types.d.ts +60 -0
  215. package/tag/types.js +5 -0
  216. package/text/Text.d.ts +7 -0
  217. package/text/Text.js +30 -0
  218. package/text/Text.stories.tsx +19 -0
  219. package/text-input/TextInput.d.ts +4 -0
  220. package/{dist/text-input → text-input}/TextInput.js +269 -457
  221. package/text-input/TextInput.stories.tsx +456 -0
  222. package/text-input/types.d.ts +159 -0
  223. package/text-input/types.js +5 -0
  224. package/textarea/Textarea.d.ts +4 -0
  225. package/{dist/textarea → textarea}/Textarea.js +38 -123
  226. package/textarea/Textarea.stories.jsx +136 -0
  227. package/textarea/types.d.ts +130 -0
  228. package/textarea/types.js +5 -0
  229. package/{dist/toggle → toggle}/Toggle.js +16 -50
  230. package/{dist/toggle → toggle}/index.d.ts +0 -0
  231. package/toggle-group/ToggleGroup.d.ts +4 -0
  232. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +35 -148
  233. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  234. package/toggle-group/types.d.ts +97 -0
  235. package/toggle-group/types.js +5 -0
  236. package/{dist/upload → upload}/Upload.js +11 -15
  237. package/upload/buttons-upload/ButtonsUpload.js +111 -0
  238. package/{dist/upload → upload}/buttons-upload/Icons.js +7 -7
  239. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  240. package/{dist/upload → upload}/dragAndDropArea/Icons.js +6 -6
  241. package/upload/file-upload/FileToUpload.js +115 -0
  242. package/{dist/upload → upload}/file-upload/Icons.js +13 -13
  243. package/{dist/upload → upload}/files-upload/FilesToUpload.js +13 -27
  244. package/{dist/upload → upload}/index.d.ts +0 -0
  245. package/{dist/upload → upload}/transaction/Icons.js +31 -31
  246. package/upload/transaction/Transaction.js +104 -0
  247. package/upload/transactions/Transactions.js +94 -0
  248. package/useTheme.d.ts +2 -0
  249. package/{dist/useTheme.js → useTheme.js} +1 -1
  250. package/wizard/Wizard.d.ts +4 -0
  251. package/wizard/Wizard.js +281 -0
  252. package/wizard/Wizard.stories.tsx +224 -0
  253. package/wizard/types.d.ts +60 -0
  254. package/wizard/types.js +5 -0
  255. package/README.md +0 -66
  256. package/babel.config.js +0 -8
  257. package/dist/BackgroundColorContext.js +0 -46
  258. package/dist/ThemeContext.js +0 -250
  259. package/dist/accordion/index.d.ts +0 -28
  260. package/dist/accordion-group/AccordionGroup.js +0 -186
  261. package/dist/accordion-group/index.d.ts +0 -16
  262. package/dist/alert/index.d.ts +0 -51
  263. package/dist/badge/Badge.js +0 -63
  264. package/dist/box/index.d.ts +0 -25
  265. package/dist/button/index.d.ts +0 -24
  266. package/dist/card/index.d.ts +0 -22
  267. package/dist/checkbox/index.d.ts +0 -24
  268. package/dist/chip/index.d.ts +0 -22
  269. package/dist/date-input/index.d.ts +0 -95
  270. package/dist/dialog/index.d.ts +0 -18
  271. package/dist/dropdown/index.d.ts +0 -26
  272. package/dist/file-input/FileInput.js +0 -644
  273. package/dist/file-input/FileItem.js +0 -287
  274. package/dist/file-input/index.d.ts +0 -81
  275. package/dist/footer/Footer.js +0 -421
  276. package/dist/footer/index.d.ts +0 -25
  277. package/dist/header/index.d.ts +0 -25
  278. package/dist/heading/index.d.ts +0 -17
  279. package/dist/link/index.d.ts +0 -23
  280. package/dist/main.d.ts +0 -40
  281. package/dist/number-input/NumberInput.js +0 -136
  282. package/dist/number-input/index.d.ts +0 -113
  283. package/dist/paginator/Paginator.js +0 -305
  284. package/dist/paginator/index.d.ts +0 -20
  285. package/dist/password-input/index.d.ts +0 -94
  286. package/dist/progress-bar/index.d.ts +0 -18
  287. package/dist/radio/index.d.ts +0 -23
  288. package/dist/resultsetTable/index.d.ts +0 -19
  289. package/dist/select/index.d.ts +0 -53
  290. package/dist/sidenav/index.d.ts +0 -13
  291. package/dist/slider/index.d.ts +0 -29
  292. package/dist/spinner/Spinner.js +0 -381
  293. package/dist/spinner/index.d.ts +0 -17
  294. package/dist/switch/index.d.ts +0 -24
  295. package/dist/table/index.d.ts +0 -13
  296. package/dist/tabs/Tabs.js +0 -343
  297. package/dist/tabs/index.d.ts +0 -19
  298. package/dist/tag/Tag.js +0 -282
  299. package/dist/tag/index.d.ts +0 -24
  300. package/dist/text-input/index.d.ts +0 -135
  301. package/dist/textarea/index.d.ts +0 -117
  302. package/dist/toggle-group/index.d.ts +0 -21
  303. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  304. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  305. package/dist/upload/file-upload/FileToUpload.js +0 -189
  306. package/dist/upload/transaction/Transaction.js +0 -148
  307. package/dist/upload/transactions/Transactions.js +0 -138
  308. package/dist/wizard/Icons.js +0 -65
  309. package/dist/wizard/Wizard.js +0 -405
  310. package/dist/wizard/index.d.ts +0 -18
  311. package/test/Accordion.test.js +0 -33
  312. package/test/AccordionGroup.test.js +0 -125
  313. package/test/Alert.test.js +0 -53
  314. package/test/Box.test.js +0 -10
  315. package/test/Button.test.js +0 -18
  316. package/test/Card.test.js +0 -30
  317. package/test/Checkbox.test.js +0 -45
  318. package/test/Chip.test.js +0 -25
  319. package/test/Date.test.js +0 -395
  320. package/test/DateInput.test.js +0 -242
  321. package/test/Dialog.test.js +0 -23
  322. package/test/Dropdown.test.js +0 -145
  323. package/test/FileInput.test.js +0 -201
  324. package/test/Footer.test.js +0 -94
  325. package/test/Header.test.js +0 -34
  326. package/test/Heading.test.js +0 -83
  327. package/test/InputText.test.js +0 -240
  328. package/test/Link.test.js +0 -43
  329. package/test/NumberInput.test.js +0 -259
  330. package/test/Paginator.test.js +0 -181
  331. package/test/PasswordInput.test.js +0 -83
  332. package/test/ProgressBar.test.js +0 -35
  333. package/test/Radio.test.js +0 -37
  334. package/test/ResultsetTable.test.js +0 -330
  335. package/test/Select.test.js +0 -415
  336. package/test/Sidenav.test.js +0 -45
  337. package/test/Slider.test.js +0 -74
  338. package/test/Spinner.test.js +0 -32
  339. package/test/Switch.test.js +0 -45
  340. package/test/Table.test.js +0 -36
  341. package/test/Tabs.test.js +0 -109
  342. package/test/Tag.test.js +0 -32
  343. package/test/TextInput.test.js +0 -732
  344. package/test/Textarea.test.js +0 -193
  345. package/test/ToggleGroup.test.js +0 -85
  346. package/test/Upload.test.js +0 -60
  347. package/test/V3Select.test.js +0 -212
  348. package/test/V3TextArea.test.js +0 -51
  349. package/test/Wizard.test.js +0 -130
  350. package/test/mocks/pngMock.js +0 -1
  351. package/test/mocks/svgMock.js +0 -1
@@ -1,181 +0,0 @@
1
- import React from "react";
2
- import { render, act } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import DxcPaginator from "../src/paginator/Paginator";
5
-
6
- describe("Paginator component tests", () => {
7
- test("Paginator renders with default values", () => {
8
- const { getByText } = render(<DxcPaginator></DxcPaginator>);
9
- expect(getByText("1 to 1 of 1")).toBeTruthy();
10
- expect(getByText("Page: 1 of 1")).toBeTruthy();
11
- });
12
-
13
- test("Paginator renders with currentPage", () => {
14
- const { getByText } = render(<DxcPaginator currentPage={2}></DxcPaginator>);
15
- expect(getByText("Page: 2 of 1")).toBeTruthy();
16
- });
17
-
18
- test("Paginator renders with itemsPerPageOptions", () => {
19
- const { getByText } = render(
20
- <DxcPaginator currentPage={1} itemsPerPage={10} itemsPerPageOptions={[10, 15]} totalItems={20}></DxcPaginator>
21
- );
22
- expect(getByText("Items per page")).toBeTruthy();
23
- });
24
-
25
- test("Paginator renders with itemsPerPageOptions", () => {
26
- const { getByText } = render(<DxcPaginator currentPage={1} itemsPerPage={10} totalItems={20}></DxcPaginator>);
27
- expect(getByText("1 to 10 of 20")).toBeTruthy();
28
- expect(getByText("Page: 1 of 2")).toBeTruthy();
29
- });
30
-
31
- test("Paginator renders with totalItems", () => {
32
- const { getByText } = render(<DxcPaginator totalItems={20}></DxcPaginator>);
33
- expect(getByText("1 to 5 of 20")).toBeTruthy();
34
- expect(getByText("Page: 1 of 4")).toBeTruthy();
35
- });
36
-
37
- test("Paginator renders with correct text in second page", () => {
38
- const { getByText } = render(<DxcPaginator currentPage={2} itemsPerPage={10} totalItems={20}></DxcPaginator>);
39
- expect(getByText("11 to 20 of 20")).toBeTruthy();
40
- expect(getByText("Page: 2 of 2")).toBeTruthy();
41
- });
42
-
43
- test("Paginator renders goToPage select", () => {
44
- const { getByText } = render(
45
- <DxcPaginator currentPage={2} showGoToPage={true} itemsPerPage={10} totalItems={20}></DxcPaginator>
46
- );
47
- expect(getByText("Go to page:")).toBeTruthy();
48
- });
49
-
50
- test("Paginator goToPage call correct function", () => {
51
- const onClick = jest.fn();
52
- window.HTMLElement.prototype.scrollIntoView = () => {};
53
- window.HTMLElement.prototype.scrollTo = () => {};
54
- const { getByText, getAllByRole, getByRole } = render(
55
- <DxcPaginator
56
- currentPage={1}
57
- itemsPerPage={10}
58
- totalItems={27}
59
- showGoToPage={true}
60
- onPageChange={onClick}
61
- ></DxcPaginator>
62
- );
63
- const goToPageSelect = getAllByRole("combobox")[0];
64
- act(() => {
65
- userEvent.click(goToPageSelect);
66
- });
67
- const goToPageOption = getByText("2");
68
- act(() => {
69
- userEvent.click(goToPageOption);
70
- });
71
- expect(onClick).toHaveBeenCalledWith(2);
72
- });
73
-
74
- test("Call correct goToPageFunction", () => {
75
- const onClick = jest.fn();
76
- const { getAllByRole } = render(
77
- <DxcPaginator onPageChange={onClick} currentPage={1} itemsPerPage={10} totalItems={20}></DxcPaginator>
78
- );
79
- const nextButton = getAllByRole("button")[2];
80
- userEvent.click(nextButton);
81
- expect(onClick).toHaveBeenCalled();
82
- });
83
-
84
- test("Call correct itemsPerPageFunction", () => {
85
- const onClick = jest.fn();
86
- window.HTMLElement.prototype.scrollIntoView = () => {};
87
- window.HTMLElement.prototype.scrollTo = () => {};
88
- const { getAllByText, getByText } = render(
89
- <DxcPaginator
90
- currentPage={1}
91
- itemsPerPage={10}
92
- itemsPerPageOptions={[10, 15]}
93
- itemsPerPageFunction={onClick}
94
- totalItems={20}
95
- ></DxcPaginator>
96
- );
97
- const select = getAllByText("10")[0];
98
- act(() => {
99
- userEvent.click(select);
100
- });
101
- const itemPerPageOption = getByText("15");
102
- act(() => {
103
- userEvent.click(itemPerPageOption);
104
- });
105
- expect(onClick).toHaveBeenCalledWith(15);
106
- });
107
-
108
- test("Next button is disable in last page", () => {
109
- const onClick = jest.fn();
110
- const { getAllByRole } = render(
111
- <DxcPaginator onPageChange={onClick} currentPage={2} itemsPerPage={10} totalItems={20}></DxcPaginator>
112
- );
113
- const nextButton = getAllByRole("button")[2];
114
- expect(nextButton.hasAttribute("disabled")).toBeTruthy();
115
- userEvent.click(nextButton);
116
- expect(onClick).toHaveBeenCalledTimes(0);
117
- });
118
-
119
- test("Last button is disable in last page", () => {
120
- const onClick = jest.fn();
121
- const { getAllByRole } = render(
122
- <DxcPaginator onPageChange={onClick} currentPage={2} itemsPerPage={10} totalItems={20}></DxcPaginator>
123
- );
124
- const lastButton = getAllByRole("button")[3];
125
- expect(lastButton.hasAttribute("disabled")).toBeTruthy();
126
- userEvent.click(lastButton);
127
- expect(onClick).toHaveBeenCalledTimes(0);
128
- });
129
-
130
- test("First button is disable in first page", () => {
131
- const onClick = jest.fn();
132
- const { getAllByRole } = render(
133
- <DxcPaginator onPageChange={onClick} currentPage={1} itemsPerPage={10} totalItems={20}></DxcPaginator>
134
- );
135
- const lastButton = getAllByRole("button")[0];
136
- expect(lastButton.hasAttribute("disabled")).toBeTruthy();
137
- userEvent.click(lastButton);
138
- expect(onClick).toHaveBeenCalledTimes(0);
139
- });
140
-
141
- test("Previous button is disable in first page", () => {
142
- const onClick = jest.fn();
143
- const { getAllByRole } = render(
144
- <DxcPaginator onPageChange={onClick} currentPage={1} itemsPerPage={10} totalItems={20}></DxcPaginator>
145
- );
146
- const lastButton = getAllByRole("button")[1];
147
- expect(lastButton.hasAttribute("disabled")).toBeTruthy();
148
- userEvent.click(lastButton);
149
- expect(onClick).toHaveBeenCalledTimes(0);
150
- });
151
-
152
- test("Last and next buttons are disable in last page", () => {
153
- const onClick = jest.fn();
154
- const { getAllByRole } = render(
155
- <DxcPaginator onPageChange={onClick} currentPage={2} itemsPerPage={10} totalItems={20}></DxcPaginator>
156
- );
157
- const firstButton = getAllByRole("button")[0];
158
- const prevButton = getAllByRole("button")[1];
159
- const nextButton = getAllByRole("button")[2];
160
- const lastButton = getAllByRole("button")[3];
161
- expect(firstButton.hasAttribute("disabled")).toBeFalsy();
162
- expect(prevButton.hasAttribute("disabled")).toBeFalsy();
163
- expect(nextButton.hasAttribute("disabled")).toBeTruthy();
164
- expect(lastButton.hasAttribute("disabled")).toBeTruthy();
165
- });
166
-
167
- test("First and previous buttons are disable in first page", () => {
168
- const onClick = jest.fn();
169
- const { getAllByRole } = render(
170
- <DxcPaginator onPageChange={onClick} currentPage={1} itemsPerPage={10} totalItems={20}></DxcPaginator>
171
- );
172
- const firstButton = getAllByRole("button")[0];
173
- const prevButton = getAllByRole("button")[1];
174
- const nextButton = getAllByRole("button")[2];
175
- const lastButton = getAllByRole("button")[3];
176
- expect(firstButton.hasAttribute("disabled")).toBeTruthy();
177
- expect(prevButton.hasAttribute("disabled")).toBeTruthy();
178
- expect(nextButton.hasAttribute("disabled")).toBeFalsy();
179
- expect(lastButton.hasAttribute("disabled")).toBeFalsy();
180
- });
181
- });
@@ -1,83 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
- import DxcPasswordInput from "../src/password-input/PasswordInput";
5
-
6
- describe("Password input component tests", () => {
7
- test("Password input renders with label", () => {
8
- const { getByText } = render(<DxcPasswordInput label="Password input label" />);
9
- expect(getByText("Password input label")).toBeTruthy();
10
- });
11
-
12
- test("Password input renders with helper text", () => {
13
- const { getByText } = render(<DxcPasswordInput helperText="Helper text" />);
14
- expect(getByText("Helper text")).toBeTruthy();
15
- });
16
-
17
- test("Password input renders error", () => {
18
- const { getByText } = render(<DxcPasswordInput 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(<DxcPasswordInput label="Password input" onChange={onChange} />);
25
- const passwordInput = getByRole("textbox");
26
- userEvent.type(passwordInput, "Pa$$w0rd");
27
- expect(onChange).toHaveBeenCalledWith({ value: "P", error: null });
28
- expect(passwordInput.value).toBe("Pa$$w0rd");
29
- });
30
-
31
- test("onBlur function is called correctly", () => {
32
- const onBlur = jest.fn();
33
- const { getByRole } = render(<DxcPasswordInput label="Password input" onBlur={onBlur} />);
34
- const passwordInput = getByRole("textbox");
35
- userEvent.type(passwordInput, "Pa$$w0rd");
36
- fireEvent.blur(passwordInput);
37
- expect(onBlur).toHaveBeenCalledWith({ value: "Pa$$w0rd", error: null });
38
- expect(passwordInput.value).toBe("Pa$$w0rd");
39
- });
40
-
41
- test("Clear password input value", () => {
42
- const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" clearable />);
43
- const passwordInput = getByRole("textbox");
44
- userEvent.type(passwordInput, "Pa$$w0rd");
45
- expect(passwordInput.value).toBe("Pa$$w0rd");
46
- const clearButton = getAllByRole("button")[0];
47
- userEvent.click(clearButton);
48
- expect(passwordInput.value).toBe("");
49
- });
50
-
51
- test("Non clearable password input has no clear icon", () => {
52
- const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" />);
53
- const passwordInput = getByRole("textbox");
54
- userEvent.type(passwordInput, "Pa$$w0rd");
55
- expect(passwordInput.value).toBe("Pa$$w0rd");
56
- const buttons = getAllByRole("button");
57
- expect(buttons.length).toBe(1);
58
- });
59
-
60
- test("Show/hide password input button works correctly", () => {
61
- const { getAllByRole, getByRole } = render(<DxcPasswordInput label="Password input" clearable />);
62
- const passwordInput = getByRole("textbox");
63
- userEvent.type(passwordInput, "Pa$$w0rd");
64
- expect(passwordInput.value).toBe("Pa$$w0rd");
65
- expect(passwordInput.type).toBe("password");
66
- const showButton = getAllByRole("button")[1];
67
- userEvent.click(showButton);
68
- expect(passwordInput.type).toBe("text");
69
- });
70
-
71
- test("Password input has correct accesibility attributes", () => {
72
- const { getByRole } = render(<DxcPasswordInput label="Password input" />);
73
- const passwordInput = getByRole("textbox");
74
- expect(passwordInput.getAttribute("aria-autocomplete")).toBeNull();
75
- expect(passwordInput.getAttribute("aria-controls")).toBeNull();
76
- const showButton = getByRole("button");
77
- expect(showButton.getAttribute("aria-expanded")).toBe("false");
78
- expect(showButton.getAttribute("aria-label")).toBe("Show");
79
- userEvent.click(showButton);
80
- expect(showButton.getAttribute("aria-expanded")).toBe("true");
81
- expect(showButton.getAttribute("aria-label")).toBe("Hide");
82
- });
83
- });
@@ -1,35 +0,0 @@
1
- import React from "react";
2
- import { render } from "@testing-library/react";
3
- import DxcProgressBar from "../src/progress-bar/ProgressBar";
4
-
5
- describe("ProgressBar component tests", () => {
6
- test("ProgressBar renders with label", () => {
7
- const { getByText } = render(<DxcProgressBar label="test-label"></DxcProgressBar>);
8
- expect(getByText("test-label")).toBeTruthy();
9
- });
10
-
11
- test("Overlay progressBar renders with label", () => {
12
- const { getByText } = render(<DxcProgressBar label="test-label" overlay></DxcProgressBar>);
13
- expect(getByText("test-label")).toBeTruthy();
14
- });
15
-
16
- test("ProgressBar renders with default value", () => {
17
- const { getByText } = render(<DxcProgressBar showValue></DxcProgressBar>);
18
- expect(getByText("100 %")).toBeTruthy();
19
- });
20
-
21
- test("Overlay progressBar renders with default value", () => {
22
- const { getByText } = render(<DxcProgressBar showValue overlay></DxcProgressBar>);
23
- expect(getByText("100 %")).toBeTruthy();
24
- });
25
-
26
- test("ProgressBar renders with value", () => {
27
- const { getByText } = render(<DxcProgressBar showValue value={25}></DxcProgressBar>);
28
- expect(getByText("25 %")).toBeTruthy();
29
- });
30
-
31
- test("Overlay progressBar renders with value", () => {
32
- const { getByText } = render(<DxcProgressBar showValue value={25} overlay></DxcProgressBar>);
33
- expect(getByText("25 %")).toBeTruthy();
34
- });
35
- });
@@ -1,37 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcRadio from "../src/radio/Radio";
4
-
5
- describe("Radio component tests", () => {
6
- test("Radio renders correctly", () => {
7
- const { getByText } = render(<DxcRadio label="Radio button" />);
8
- expect(getByText("Radio button")).toBeTruthy();
9
- });
10
- test("Calls correct function on click", () => {
11
- const onClick = jest.fn();
12
- const { getByText} = render(<DxcRadio label="Radio button" onClick={onClick} />);
13
- fireEvent.click(getByText("Radio button"));
14
-
15
- expect(onClick).toHaveBeenCalled();
16
- expect(onClick).toHaveBeenCalledWith(true);
17
- });
18
- test("Controlled Radio", () => {
19
- const onClick = jest.fn();
20
- const { getByText, getByRole } = render(<DxcRadio label="Radio button" checked={false} onClick={onClick} />);
21
- expect(getByRole("radio").checked).toBe(false);
22
- fireEvent.click(getByText("Radio button"));
23
- expect(onClick).toHaveBeenCalled();
24
- expect(onClick).toHaveBeenCalledWith(true);
25
- expect(getByRole("radio").checked).toBe(false);
26
- });
27
- test("Uncontrolled Radio", () => {
28
- const onClick = jest.fn();
29
- const { getByText, getByRole } = render(<DxcRadio label="Radio button" onClick={onClick} />);
30
- expect(getByRole("radio").checked).toBe(false);
31
- fireEvent.click(getByText("Radio button"));
32
- expect(onClick).toHaveBeenCalled();
33
- expect(onClick).toHaveBeenCalledWith(true);
34
- expect(getByRole("radio").checked).toBe(false);
35
- });
36
-
37
- });
@@ -1,330 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent, act } from "@testing-library/react";
3
- import userEvent from "@testing-library/user-event";
4
-
5
- import DxcResultsetTable from "../src/resultsetTable/ResultsetTable";
6
-
7
- const columns = [
8
- {
9
- displayValue: "Id",
10
- isSortable: false,
11
- },
12
- {
13
- displayValue: "Name",
14
- isSortable: true,
15
- },
16
- {
17
- displayValue: "City",
18
- isSortable: false,
19
- },
20
- ];
21
-
22
- const rows = [
23
- [
24
- {
25
- displayValue: "001",
26
- sortValue: "001",
27
- },
28
- {
29
- displayValue: "Peter",
30
- sortValue: "Peter",
31
- },
32
- {
33
- displayValue: "Oviedo",
34
- sortValue: "Oviedo",
35
- },
36
- ],
37
- [
38
- {
39
- displayValue: "002",
40
- sortValue: "002",
41
- },
42
- {
43
- displayValue: "Louis",
44
- sortValue: "Louis",
45
- },
46
- {
47
- displayValue: "Oviedo",
48
- sortValue: "Oviedo",
49
- },
50
- {
51
- displayValue: "",
52
- },
53
- ],
54
- [
55
- {
56
- displayValue: "003",
57
- sortValue: "003",
58
- },
59
- {
60
- displayValue: "Lana",
61
- sortValue: "Lana",
62
- },
63
- {
64
- displayValue: "Albacete",
65
- sortValue: "Albacete",
66
- },
67
- ],
68
- [
69
- {
70
- displayValue: "004",
71
- sortValue: "004",
72
- },
73
- {
74
- displayValue: "Rick",
75
- sortValue: "Rick",
76
- },
77
- {
78
- displayValue: "Albacete",
79
- sortValue: "Albacete",
80
- },
81
- ],
82
- [
83
- {
84
- displayValue: "005",
85
- sortValue: "005",
86
- },
87
- {
88
- displayValue: "Mark",
89
- sortValue: "Mark",
90
- },
91
- {
92
- displayValue: "Madrid",
93
- sortValue: "Madrid",
94
- },
95
- ],
96
- [
97
- {
98
- displayValue: "006",
99
- sortValue: "006",
100
- },
101
- {
102
- displayValue: "Cris",
103
- sortValue: "Cris",
104
- },
105
- {
106
- displayValue: "Barcelona",
107
- sortValue: "Barcelona",
108
- },
109
- {
110
- displayValue: "",
111
- },
112
- ],
113
- [
114
- {
115
- displayValue: "007",
116
- sortValue: "007",
117
- },
118
- {
119
- displayValue: "Susan",
120
- sortValue: "Susan",
121
- },
122
- {
123
- displayValue: "Madrid",
124
- sortValue: "Madrid",
125
- },
126
- ],
127
- [
128
- {
129
- displayValue: "008",
130
- sortValue: "008",
131
- },
132
- {
133
- displayValue: "Tina",
134
- sortValue: "Tina",
135
- },
136
- {
137
- displayValue: "Barcelona",
138
- sortValue: "Barcelona",
139
- },
140
- ],
141
- [
142
- {
143
- displayValue: "009",
144
- sortValue: "009",
145
- },
146
- {
147
- displayValue: "Kevin",
148
- sortValue: "Kevin",
149
- },
150
- {
151
- displayValue: "Oviedo",
152
- sortValue: "Oviedo",
153
- },
154
- {
155
- displayValue: "",
156
- },
157
- ],
158
- [
159
- {
160
- displayValue: "010",
161
- sortValue: "010",
162
- },
163
- {
164
- displayValue: "Cosmin",
165
- sortValue: "Cosmin",
166
- },
167
- {
168
- displayValue: "Barcelona",
169
- sortValue: "Barcelona",
170
- },
171
- {
172
- displayValue: "",
173
- },
174
- ],
175
- ];
176
-
177
- const rows2 = [
178
- [
179
- {
180
- displayValue: "546",
181
- sortValue: "465",
182
- },
183
- {
184
- displayValue: "OtherValue",
185
- sortValue: "OtherValue",
186
- },
187
- {
188
- displayValue: "OtherValue",
189
- sortValue: "OtherValue",
190
- },
191
- ],
192
- [
193
- {
194
- displayValue: "978",
195
- sortValue: "465",
196
- },
197
- {
198
- displayValue: "OtherValue",
199
- sortValue: "OtherValue",
200
- },
201
- {
202
- displayValue: "OtherValue",
203
- sortValue: "OtherValue",
204
- },
205
- {
206
- displayValue: "",
207
- },
208
- ],
209
- [
210
- {
211
- displayValue: "678",
212
- sortValue: "344",
213
- },
214
- {
215
- displayValue: "OtherValue",
216
- sortValue: "OtherValue",
217
- },
218
- {
219
- displayValue: "OtherValue",
220
- sortValue: "OtherValue",
221
- },
222
- ],
223
- ];
224
-
225
- describe("ResultsetTable component tests", () => {
226
- test("ResultsetTable rendered correctly", () => {
227
- const { getByText } = render(
228
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
229
- );
230
- expect(getByText("Peter")).toBeTruthy();
231
- });
232
- test("Resultsettable shows as many rows as itemsPerPage", () => {
233
- const { getAllByRole } = render(
234
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
235
- );
236
- expect(getAllByRole("row").length - 1).toEqual(3);
237
- });
238
-
239
- test("Resultsettable shows rows on second page", () => {
240
- const { getByText, getAllByRole } = render(
241
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
242
- );
243
- expect(getByText("Peter")).toBeTruthy();
244
- expect(getByText("Louis")).toBeTruthy();
245
- expect(getByText("Lana")).toBeTruthy();
246
- expect(getAllByRole("row").length - 1).toEqual(3);
247
- const nextButton = getAllByRole("button")[2];
248
- fireEvent.click(nextButton);
249
- expect(getByText("4 to 6 of 10")).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
- window.HTMLElement.prototype.scrollIntoView = () => {};
259
- window.HTMLElement.prototype.scrollTo = () => {};
260
- const { getByText, getAllByRole, getByRole } = render(
261
- <DxcResultsetTable columns={columns} showGoToPage={true} rows={rows} itemsPerPage={3}></DxcResultsetTable>
262
- );
263
- expect(getByText("Peter")).toBeTruthy();
264
- expect(getByText("Louis")).toBeTruthy();
265
- expect(getByText("Lana")).toBeTruthy();
266
- expect(getAllByRole("row").length - 1).toEqual(3);
267
- const goToPageSelect = getAllByRole("button")[2];
268
- act(() => {
269
- userEvent.click(goToPageSelect);
270
- });
271
- const goToPageOption = getByText("2");
272
- act(() => {
273
- userEvent.click(goToPageOption);
274
- });
275
-
276
- expect(getByText("4 to 6 of 10")).toBeTruthy();
277
- expect(getByText("Rick")).toBeTruthy();
278
- expect(getByText("Mark")).toBeTruthy();
279
- expect(getByText("Cris")).toBeTruthy();
280
- expect(getAllByRole("row").length - 1).toEqual(3);
281
- });
282
-
283
- test("Resultsettable going to the last page shows only one row", () => {
284
- const { getByText, getAllByRole } = render(
285
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
286
- );
287
- const lastButton = getAllByRole("button")[3];
288
- fireEvent.click(lastButton);
289
- expect(getByText("10 to 10 of 10")).toBeTruthy();
290
- expect(getAllByRole("row")).toHaveLength(2);
291
- expect(getByText("Cosmin")).toBeTruthy();
292
- });
293
-
294
- test("Resultsettable sort rows by column", () => {
295
- const component = render(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>);
296
- expect(component.queryByText("Peter")).toBeTruthy();
297
- fireEvent.click(component.queryByText("Name"));
298
- expect(component.queryByText("Tina")).not.toBeTruthy();
299
- expect(component.queryByText("Cosmin")).toBeTruthy();
300
-
301
- fireEvent.click(component.queryByText("Name"));
302
- expect(component.queryByText("Tina")).toBeTruthy();
303
- expect(component.queryByText("Cosmin")).not.toBeTruthy();
304
- });
305
- test("Resultsettable change rows should go to first page", () => {
306
- const { queryByText, rerender } = render(
307
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={3}></DxcResultsetTable>
308
- );
309
- expect(queryByText("Peter")).toBeTruthy();
310
- rerender(<DxcResultsetTable columns={columns} rows={rows2} itemsPerPage={3}></DxcResultsetTable>);
311
- expect(queryByText("1 to 3 of 3")).toBeTruthy();
312
- });
313
-
314
- test("Resultsettable change itemsPerPage should go to first page", () => {
315
- const { getAllByRole, queryByText, rerender } = render(
316
- <DxcResultsetTable
317
- columns={columns}
318
- rows={rows}
319
- itemsPerPage={3}
320
- itemsPerPageOptions={[2, 3]}
321
- ></DxcResultsetTable>
322
- );
323
- const lastButton = getAllByRole("button")[3];
324
- fireEvent.click(lastButton);
325
- expect(getAllByRole("row").length - 1).toEqual(1);
326
- rerender(<DxcResultsetTable columns={columns} rows={rows} itemsPerPage={6}></DxcResultsetTable>);
327
- expect(getAllByRole("row").length - 1).toEqual(6);
328
- expect(queryByText("Peter")).toBeTruthy();
329
- });
330
- });