@dxc-technology/halstack-react 0.0.0-4bb73b0 → 0.0.0-4c4e1d8

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 (223) hide show
  1. package/BackgroundColorContext.js +50 -0
  2. package/ThemeContext.js +246 -0
  3. package/{dist/V3Select → V3Select}/V3Select.js +33 -127
  4. package/{dist/V3Select → V3Select}/index.d.ts +0 -0
  5. package/{dist/V3Textarea → V3Textarea}/V3Textarea.js +10 -14
  6. package/{dist/V3Textarea → V3Textarea}/index.d.ts +0 -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 +38 -151
  17. package/alert/types.d.ts +49 -0
  18. package/alert/types.js +5 -0
  19. package/badge/Badge.js +59 -0
  20. package/{dist/box → box}/Box.js +9 -13
  21. package/{dist/box → box}/index.d.ts +0 -0
  22. package/button/Button.d.ts +4 -0
  23. package/{dist/button → button}/Button.js +15 -71
  24. package/button/Button.stories.tsx +293 -0
  25. package/button/types.d.ts +57 -0
  26. package/button/types.js +5 -0
  27. package/card/Card.d.ts +4 -0
  28. package/{dist/card → card}/Card.js +32 -121
  29. package/card/types.d.ts +69 -0
  30. package/card/types.js +5 -0
  31. package/checkbox/Checkbox.d.ts +4 -0
  32. package/{dist/checkbox → checkbox}/Checkbox.js +13 -59
  33. package/checkbox/types.d.ts +60 -0
  34. package/checkbox/types.js +5 -0
  35. package/{dist/chip → chip}/Chip.js +17 -61
  36. package/{dist/chip → chip}/index.d.ts +0 -0
  37. package/{dist/common → common}/OpenSans.css +0 -0
  38. package/{dist/common → common}/RequiredComponent.js +3 -11
  39. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  40. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  41. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  42. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  43. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  44. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  45. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  46. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  47. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  48. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  49. package/{dist/common → common}/utils.js +0 -0
  50. package/{dist/common → common}/variables.js +40 -45
  51. package/{dist/date → date}/Date.js +16 -22
  52. package/{dist/date → date}/index.d.ts +0 -0
  53. package/date-input/DateInput.d.ts +4 -0
  54. package/{dist/date-input → date-input}/DateInput.js +22 -61
  55. package/date-input/types.d.ts +100 -0
  56. package/date-input/types.js +5 -0
  57. package/{dist/dialog → dialog}/Dialog.js +16 -50
  58. package/{dist/dialog → dialog}/index.d.ts +0 -0
  59. package/{dist/dropdown → dropdown}/Dropdown.js +37 -131
  60. package/{dist/dropdown → dropdown}/index.d.ts +0 -0
  61. package/{dist/file-input → file-input}/FileInput.js +49 -161
  62. package/{dist/file-input → file-input}/FileItem.js +29 -123
  63. package/{dist/file-input → file-input}/index.d.ts +0 -0
  64. package/{dist/footer → footer}/Footer.js +34 -158
  65. package/{dist/footer → footer}/Icons.js +13 -13
  66. package/{dist/footer → footer}/index.d.ts +0 -0
  67. package/{dist/header → header}/Header.js +35 -179
  68. package/{dist/header → header}/Icons.js +11 -11
  69. package/{dist/header → header}/index.d.ts +0 -0
  70. package/{dist/heading → heading}/Heading.js +18 -72
  71. package/{dist/heading → heading}/index.d.ts +0 -0
  72. package/{dist/input-text → input-text}/Icons.js +2 -2
  73. package/{dist/input-text → input-text}/InputText.js +36 -130
  74. package/{dist/input-text → input-text}/index.d.ts +1 -1
  75. package/{dist/layout → layout}/ApplicationLayout.js +31 -123
  76. package/{dist/layout → layout}/Icons.js +7 -7
  77. package/{dist/link → link}/Link.js +18 -72
  78. package/{dist/link → link}/index.d.ts +0 -0
  79. package/main.d.ts +44 -0
  80. package/{dist/main.js → main.js} +91 -87
  81. package/{dist/number-input → number-input}/NumberInput.js +5 -13
  82. package/{dist/number-input → number-input}/NumberInputContext.js +1 -1
  83. package/{dist/number-input → number-input}/index.d.ts +0 -0
  84. package/package.json +20 -17
  85. package/{dist/paginator → paginator}/Icons.js +9 -9
  86. package/paginator/Paginator.d.ts +4 -0
  87. package/{dist/paginator → paginator}/Paginator.js +24 -131
  88. package/paginator/types.d.ts +38 -0
  89. package/paginator/types.js +5 -0
  90. package/{dist/password-input → password-input}/PasswordInput.js +17 -21
  91. package/password-input/PasswordInput.stories.jsx +131 -0
  92. package/{dist/password-input → password-input}/index.d.ts +0 -0
  93. package/{dist/progress-bar → progress-bar}/ProgressBar.js +18 -72
  94. package/{dist/progress-bar → progress-bar}/index.d.ts +0 -0
  95. package/radio/Radio.d.ts +4 -0
  96. package/{dist/radio → radio}/Radio.js +15 -50
  97. package/radio/types.d.ts +54 -0
  98. package/radio/types.js +5 -0
  99. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -119
  100. package/{dist/resultsetTable → resultsetTable}/index.d.ts +0 -0
  101. package/{dist/select → select}/Select.js +248 -479
  102. package/select/index.d.ts +131 -0
  103. package/{dist/sidenav → sidenav}/Sidenav.js +15 -49
  104. package/{dist/sidenav → sidenav}/index.d.ts +0 -0
  105. package/{dist/slider → slider}/Slider.js +19 -83
  106. package/{dist/slider → slider}/index.d.ts +0 -0
  107. package/{dist/spinner → spinner}/Spinner.js +38 -152
  108. package/{dist/spinner → spinner}/index.d.ts +0 -0
  109. package/switch/Switch.d.ts +4 -0
  110. package/{dist/switch → switch}/Switch.js +26 -69
  111. package/switch/types.d.ts +58 -0
  112. package/switch/types.js +5 -0
  113. package/{dist/table → table}/Table.js +10 -24
  114. package/{dist/table → table}/index.d.ts +0 -0
  115. package/{dist/tabs → tabs}/Tabs.js +26 -110
  116. package/{dist/tabs → tabs}/index.d.ts +0 -0
  117. package/{dist/tag → tag}/Tag.js +22 -96
  118. package/{dist/tag → tag}/index.d.ts +0 -0
  119. package/{dist/text-input → text-input}/TextInput.js +241 -390
  120. package/{dist/text-input → text-input}/index.d.ts +0 -0
  121. package/{dist/textarea → textarea}/Textarea.js +20 -72
  122. package/{dist/textarea → textarea}/index.d.ts +0 -0
  123. package/{dist/toggle → toggle}/Toggle.js +15 -49
  124. package/{dist/toggle → toggle}/index.d.ts +0 -0
  125. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +23 -107
  126. package/{dist/toggle-group → toggle-group}/index.d.ts +0 -0
  127. package/{dist/upload → upload}/Upload.js +11 -15
  128. package/{dist/upload → upload}/buttons-upload/ButtonsUpload.js +13 -37
  129. package/{dist/upload → upload}/buttons-upload/Icons.js +7 -7
  130. package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
  131. package/{dist/upload → upload}/dragAndDropArea/Icons.js +6 -6
  132. package/upload/file-upload/FileToUpload.js +115 -0
  133. package/{dist/upload → upload}/file-upload/Icons.js +13 -13
  134. package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
  135. package/{dist/upload → upload}/index.d.ts +0 -0
  136. package/{dist/upload → upload}/transaction/Icons.js +31 -31
  137. package/upload/transaction/Transaction.js +104 -0
  138. package/upload/transactions/Transactions.js +94 -0
  139. package/{dist/useTheme.js → useTheme.js} +0 -0
  140. package/{dist/wizard → wizard}/Icons.js +8 -8
  141. package/{dist/wizard → wizard}/Wizard.js +31 -165
  142. package/{dist/wizard → wizard}/index.d.ts +0 -0
  143. package/README.md +0 -66
  144. package/babel.config.js +0 -7
  145. package/dist/BackgroundColorContext.js +0 -46
  146. package/dist/ThemeContext.js +0 -250
  147. package/dist/accordion/index.d.ts +0 -28
  148. package/dist/accordion-group/AccordionGroup.js +0 -186
  149. package/dist/accordion-group/index.d.ts +0 -16
  150. package/dist/alert/index.d.ts +0 -51
  151. package/dist/badge/Badge.js +0 -63
  152. package/dist/button/index.d.ts +0 -24
  153. package/dist/card/index.d.ts +0 -22
  154. package/dist/checkbox/index.d.ts +0 -24
  155. package/dist/date-input/index.d.ts +0 -95
  156. package/dist/main.d.ts +0 -40
  157. package/dist/paginator/index.d.ts +0 -20
  158. package/dist/radio/index.d.ts +0 -23
  159. package/dist/select/index.d.ts +0 -53
  160. package/dist/stories/Button.js +0 -71
  161. package/dist/stories/Button.stories.js +0 -55
  162. package/dist/stories/Header.js +0 -67
  163. package/dist/stories/Header.stories.js +0 -31
  164. package/dist/stories/Introduction.stories.mdx +0 -211
  165. package/dist/stories/Page.js +0 -68
  166. package/dist/stories/Page.stories.js +0 -39
  167. package/dist/stories/assets/code-brackets.svg +0 -1
  168. package/dist/stories/assets/colors.svg +0 -1
  169. package/dist/stories/assets/comments.svg +0 -1
  170. package/dist/stories/assets/direction.svg +0 -1
  171. package/dist/stories/assets/flow.svg +0 -1
  172. package/dist/stories/assets/plugin.svg +0 -1
  173. package/dist/stories/assets/repo.svg +0 -1
  174. package/dist/stories/assets/stackalt.svg +0 -1
  175. package/dist/stories/button.css +0 -30
  176. package/dist/stories/header.css +0 -26
  177. package/dist/stories/page.css +0 -69
  178. package/dist/switch/index.d.ts +0 -24
  179. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  180. package/dist/upload/file-upload/FileToUpload.js +0 -189
  181. package/dist/upload/transaction/Transaction.js +0 -148
  182. package/dist/upload/transactions/Transactions.js +0 -138
  183. package/test/Accordion.test.js +0 -33
  184. package/test/AccordionGroup.test.js +0 -125
  185. package/test/Alert.test.js +0 -53
  186. package/test/Box.test.js +0 -10
  187. package/test/Button.test.js +0 -18
  188. package/test/Card.test.js +0 -30
  189. package/test/Checkbox.test.js +0 -45
  190. package/test/Chip.test.js +0 -25
  191. package/test/Date.test.js +0 -395
  192. package/test/DateInput.test.js +0 -242
  193. package/test/Dialog.test.js +0 -23
  194. package/test/Dropdown.test.js +0 -145
  195. package/test/FileInput.test.js +0 -201
  196. package/test/Footer.test.js +0 -94
  197. package/test/Header.test.js +0 -34
  198. package/test/Heading.test.js +0 -83
  199. package/test/InputText.test.js +0 -239
  200. package/test/Link.test.js +0 -43
  201. package/test/NumberInput.test.js +0 -259
  202. package/test/Paginator.test.js +0 -181
  203. package/test/PasswordInput.test.js +0 -83
  204. package/test/ProgressBar.test.js +0 -35
  205. package/test/Radio.test.js +0 -37
  206. package/test/ResultsetTable.test.js +0 -330
  207. package/test/Select.test.js +0 -415
  208. package/test/Sidenav.test.js +0 -45
  209. package/test/Slider.test.js +0 -74
  210. package/test/Spinner.test.js +0 -32
  211. package/test/Switch.test.js +0 -45
  212. package/test/Table.test.js +0 -36
  213. package/test/Tabs.test.js +0 -109
  214. package/test/Tag.test.js +0 -32
  215. package/test/TextInput.test.js +0 -732
  216. package/test/Textarea.test.js +0 -193
  217. package/test/ToggleGroup.test.js +0 -85
  218. package/test/Upload.test.js +0 -60
  219. package/test/V3Select.test.js +0 -212
  220. package/test/V3TextArea.test.js +0 -51
  221. package/test/Wizard.test.js +0 -130
  222. package/test/mocks/pngMock.js +0 -1
  223. 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
- });