@dxc-technology/halstack-react 0.0.0-0ddd74a → 0.0.0-0e7fa98

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 (411) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +47 -0
  3. package/ThemeContext.d.ts +10 -0
  4. package/ThemeContext.js +243 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +226 -0
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  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 +168 -0
  13. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  14. package/accordion-group/AccordionGroup.test.js +151 -0
  15. package/accordion-group/types.d.ts +72 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.d.ts +4 -0
  18. package/{dist/alert → alert}/Alert.js +40 -153
  19. package/alert/Alert.stories.tsx +170 -0
  20. package/alert/Alert.test.js +92 -0
  21. package/alert/types.d.ts +49 -0
  22. package/alert/types.js +5 -0
  23. package/badge/Badge.d.ts +4 -0
  24. package/badge/Badge.js +59 -0
  25. package/badge/types.d.ts +4 -0
  26. package/badge/types.js +5 -0
  27. package/bleed/Bleed.d.ts +3 -0
  28. package/bleed/Bleed.js +84 -0
  29. package/bleed/Bleed.stories.tsx +342 -0
  30. package/bleed/types.d.ts +37 -0
  31. package/bleed/types.js +5 -0
  32. package/box/Box.d.ts +4 -0
  33. package/{dist/box → box}/Box.js +15 -45
  34. package/box/Box.stories.tsx +132 -0
  35. package/box/Box.test.js +18 -0
  36. package/box/types.d.ts +43 -0
  37. package/box/types.js +5 -0
  38. package/button/Button.d.ts +4 -0
  39. package/{dist/button → button}/Button.js +29 -96
  40. package/button/Button.stories.tsx +274 -0
  41. package/button/Button.test.js +35 -0
  42. package/button/types.d.ts +53 -0
  43. package/button/types.js +5 -0
  44. package/card/Card.d.ts +4 -0
  45. package/{dist/card → card}/Card.js +34 -124
  46. package/card/Card.stories.tsx +201 -0
  47. package/card/Card.test.js +50 -0
  48. package/card/ice-cream.jpg +0 -0
  49. package/card/types.d.ts +67 -0
  50. package/card/types.js +5 -0
  51. package/checkbox/Checkbox.d.ts +4 -0
  52. package/{dist/checkbox → checkbox}/Checkbox.js +24 -77
  53. package/checkbox/Checkbox.stories.tsx +192 -0
  54. package/checkbox/Checkbox.test.js +78 -0
  55. package/checkbox/types.d.ts +64 -0
  56. package/checkbox/types.js +5 -0
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +161 -0
  59. package/chip/Chip.stories.tsx +119 -0
  60. package/chip/Chip.test.js +56 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/{dist/common → common}/OpenSans.css +0 -0
  64. package/{dist/common → common}/RequiredComponent.js +3 -11
  65. package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
  66. package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
  67. package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
  68. package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  69. package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
  70. package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
  71. package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
  72. package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
  73. package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
  74. package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  75. package/{dist/common → common}/utils.js +0 -0
  76. package/{dist/common → common}/variables.js +150 -347
  77. package/date-input/DateInput.d.ts +4 -0
  78. package/{dist/date-input → date-input}/DateInput.js +71 -102
  79. package/date-input/DateInput.stories.tsx +138 -0
  80. package/date-input/DateInput.test.js +479 -0
  81. package/date-input/types.d.ts +107 -0
  82. package/date-input/types.js +5 -0
  83. package/dialog/Dialog.d.ts +4 -0
  84. package/dialog/Dialog.js +138 -0
  85. package/dialog/Dialog.stories.tsx +212 -0
  86. package/dialog/Dialog.test.js +40 -0
  87. package/dialog/types.d.ts +43 -0
  88. package/dialog/types.js +5 -0
  89. package/dropdown/Dropdown.d.ts +4 -0
  90. package/{dist/dropdown → dropdown}/Dropdown.js +48 -197
  91. package/dropdown/Dropdown.stories.tsx +249 -0
  92. package/dropdown/Dropdown.test.js +189 -0
  93. package/dropdown/types.d.ts +80 -0
  94. package/dropdown/types.js +5 -0
  95. package/file-input/FileInput.d.ts +4 -0
  96. package/file-input/FileInput.js +590 -0
  97. package/file-input/FileInput.stories.tsx +507 -0
  98. package/file-input/FileInput.test.js +457 -0
  99. package/file-input/FileItem.d.ts +14 -0
  100. package/file-input/FileItem.js +184 -0
  101. package/file-input/types.d.ts +112 -0
  102. package/file-input/types.js +5 -0
  103. package/footer/Footer.d.ts +4 -0
  104. package/footer/Footer.js +183 -0
  105. package/footer/Footer.stories.tsx +130 -0
  106. package/footer/Footer.test.js +109 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/{dist/footer → footer}/Icons.js +15 -15
  109. package/footer/types.d.ts +65 -0
  110. package/footer/types.js +5 -0
  111. package/header/Header.d.ts +7 -0
  112. package/header/Header.js +300 -0
  113. package/header/Header.stories.tsx +172 -0
  114. package/header/Header.test.js +79 -0
  115. package/header/Icons.d.ts +2 -0
  116. package/{dist/header → header}/Icons.js +7 -32
  117. package/header/types.d.ts +47 -0
  118. package/header/types.js +5 -0
  119. package/heading/Heading.d.ts +4 -0
  120. package/{dist/heading → heading}/Heading.js +31 -90
  121. package/heading/Heading.stories.tsx +54 -0
  122. package/heading/Heading.test.js +186 -0
  123. package/heading/types.d.ts +33 -0
  124. package/heading/types.js +5 -0
  125. package/inset/Inset.d.ts +3 -0
  126. package/inset/Inset.js +84 -0
  127. package/inset/Inset.stories.tsx +229 -0
  128. package/inset/types.d.ts +37 -0
  129. package/inset/types.js +5 -0
  130. package/layout/ApplicationLayout.d.ts +10 -0
  131. package/layout/ApplicationLayout.js +218 -0
  132. package/layout/ApplicationLayout.stories.tsx +171 -0
  133. package/{dist/layout → layout}/Icons.js +7 -7
  134. package/layout/types.d.ts +57 -0
  135. package/layout/types.js +5 -0
  136. package/link/Link.d.ts +3 -0
  137. package/{dist/link → link}/Link.js +22 -106
  138. package/link/Link.stories.tsx +151 -0
  139. package/link/Link.test.js +91 -0
  140. package/link/types.d.ts +70 -0
  141. package/link/types.js +5 -0
  142. package/list/List.d.ts +4 -0
  143. package/list/List.js +47 -0
  144. package/list/List.stories.tsx +95 -0
  145. package/list/types.d.ts +7 -0
  146. package/list/types.js +5 -0
  147. package/main.d.ts +47 -0
  148. package/{dist/main.js → main.js} +119 -99
  149. package/number-input/NumberInput.d.ts +4 -0
  150. package/number-input/NumberInput.js +76 -0
  151. package/number-input/NumberInput.stories.tsx +115 -0
  152. package/number-input/NumberInput.test.js +506 -0
  153. package/number-input/NumberInputContext.d.ts +4 -0
  154. package/{dist/number-input → number-input}/NumberInputContext.js +5 -2
  155. package/number-input/numberInputContextTypes.d.ts +19 -0
  156. package/number-input/numberInputContextTypes.js +5 -0
  157. package/number-input/types.d.ts +124 -0
  158. package/number-input/types.js +5 -0
  159. package/package.json +35 -25
  160. package/{dist/paginator → paginator}/Icons.js +9 -9
  161. package/paginator/Paginator.d.ts +4 -0
  162. package/paginator/Paginator.js +192 -0
  163. package/paginator/Paginator.stories.tsx +63 -0
  164. package/paginator/Paginator.test.js +266 -0
  165. package/paginator/types.d.ts +38 -0
  166. package/paginator/types.js +5 -0
  167. package/password-input/PasswordInput.d.ts +4 -0
  168. package/{dist/password-input → password-input}/PasswordInput.js +43 -78
  169. package/password-input/PasswordInput.stories.tsx +131 -0
  170. package/password-input/PasswordInput.test.js +181 -0
  171. package/password-input/types.d.ts +110 -0
  172. package/password-input/types.js +5 -0
  173. package/progress-bar/ProgressBar.d.ts +4 -0
  174. package/{dist/progress-bar → progress-bar}/ProgressBar.js +22 -94
  175. package/progress-bar/ProgressBar.stories.jsx +58 -0
  176. package/progress-bar/ProgressBar.test.js +65 -0
  177. package/progress-bar/types.d.ts +37 -0
  178. package/progress-bar/types.js +5 -0
  179. package/quick-nav/QuickNav.d.ts +4 -0
  180. package/quick-nav/QuickNav.js +64 -0
  181. package/quick-nav/QuickNav.stories.tsx +237 -0
  182. package/quick-nav/types.d.ts +21 -0
  183. package/quick-nav/types.js +5 -0
  184. package/radio/Radio.d.ts +4 -0
  185. package/{dist/radio → radio}/Radio.js +17 -52
  186. package/radio/Radio.stories.tsx +192 -0
  187. package/radio/Radio.test.js +71 -0
  188. package/radio/types.d.ts +54 -0
  189. package/radio/types.js +5 -0
  190. package/radio-group/Radio.d.ts +4 -0
  191. package/radio-group/Radio.js +141 -0
  192. package/radio-group/RadioGroup.d.ts +4 -0
  193. package/radio-group/RadioGroup.js +280 -0
  194. package/radio-group/RadioGroup.stories.tsx +100 -0
  195. package/radio-group/RadioGroup.test.js +695 -0
  196. package/radio-group/types.d.ts +114 -0
  197. package/radio-group/types.js +5 -0
  198. package/resultsetTable/ResultsetTable.d.ts +4 -0
  199. package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +43 -147
  200. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  201. package/resultsetTable/ResultsetTable.test.js +306 -0
  202. package/resultsetTable/types.d.ts +67 -0
  203. package/resultsetTable/types.js +5 -0
  204. package/row/Row.d.ts +3 -0
  205. package/row/Row.js +127 -0
  206. package/row/Row.stories.tsx +237 -0
  207. package/row/types.d.ts +28 -0
  208. package/row/types.js +5 -0
  209. package/select/Icons.d.ts +10 -0
  210. package/select/Icons.js +93 -0
  211. package/select/Listbox.d.ts +4 -0
  212. package/select/Listbox.js +148 -0
  213. package/select/Option.d.ts +4 -0
  214. package/select/Option.js +110 -0
  215. package/select/Select.d.ts +4 -0
  216. package/select/Select.js +655 -0
  217. package/select/Select.stories.tsx +582 -0
  218. package/select/Select.test.js +2057 -0
  219. package/select/types.d.ts +213 -0
  220. package/select/types.js +5 -0
  221. package/sidenav/Sidenav.d.ts +9 -0
  222. package/{dist/sidenav → sidenav}/Sidenav.js +21 -64
  223. package/sidenav/Sidenav.stories.tsx +182 -0
  224. package/sidenav/Sidenav.test.js +56 -0
  225. package/sidenav/types.d.ts +50 -0
  226. package/sidenav/types.js +5 -0
  227. package/slider/Slider.d.ts +4 -0
  228. package/{dist/slider → slider}/Slider.js +76 -162
  229. package/slider/Slider.stories.tsx +177 -0
  230. package/slider/Slider.test.js +150 -0
  231. package/slider/types.d.ts +82 -0
  232. package/slider/types.js +5 -0
  233. package/spinner/Spinner.d.ts +4 -0
  234. package/spinner/Spinner.js +250 -0
  235. package/spinner/Spinner.stories.jsx +103 -0
  236. package/spinner/Spinner.test.js +64 -0
  237. package/spinner/types.d.ts +32 -0
  238. package/spinner/types.js +5 -0
  239. package/stack/Stack.d.ts +3 -0
  240. package/stack/Stack.js +97 -0
  241. package/stack/Stack.stories.tsx +164 -0
  242. package/stack/types.d.ts +24 -0
  243. package/stack/types.js +5 -0
  244. package/switch/Switch.d.ts +4 -0
  245. package/{dist/switch → switch}/Switch.js +45 -75
  246. package/switch/Switch.stories.tsx +160 -0
  247. package/switch/Switch.test.js +98 -0
  248. package/switch/types.d.ts +62 -0
  249. package/switch/types.js +5 -0
  250. package/table/Table.d.ts +4 -0
  251. package/{dist/table → table}/Table.js +12 -26
  252. package/table/Table.stories.jsx +277 -0
  253. package/table/Table.test.js +26 -0
  254. package/table/types.d.ts +21 -0
  255. package/table/types.js +5 -0
  256. package/tabs/Tabs.d.ts +4 -0
  257. package/tabs/Tabs.js +211 -0
  258. package/tabs/Tabs.stories.tsx +118 -0
  259. package/tabs/Tabs.test.js +140 -0
  260. package/tabs/types.d.ts +82 -0
  261. package/tabs/types.js +5 -0
  262. package/tag/Tag.d.ts +4 -0
  263. package/tag/Tag.js +186 -0
  264. package/tag/Tag.stories.tsx +142 -0
  265. package/tag/Tag.test.js +60 -0
  266. package/tag/types.d.ts +69 -0
  267. package/tag/types.js +5 -0
  268. package/text/Text.d.ts +7 -0
  269. package/text/Text.js +30 -0
  270. package/text/Text.stories.tsx +19 -0
  271. package/text-input/TextInput.d.ts +4 -0
  272. package/{dist/text-input → text-input}/TextInput.js +288 -463
  273. package/text-input/TextInput.stories.tsx +474 -0
  274. package/text-input/TextInput.test.js +1712 -0
  275. package/text-input/types.d.ts +166 -0
  276. package/text-input/types.js +5 -0
  277. package/textarea/Textarea.d.ts +4 -0
  278. package/{dist/textarea → textarea}/Textarea.js +48 -131
  279. package/textarea/Textarea.stories.jsx +157 -0
  280. package/textarea/Textarea.test.js +437 -0
  281. package/textarea/types.d.ts +137 -0
  282. package/textarea/types.js +5 -0
  283. package/toggle-group/ToggleGroup.d.ts +4 -0
  284. package/{dist/toggle-group → toggle-group}/ToggleGroup.js +36 -148
  285. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  286. package/toggle-group/ToggleGroup.test.js +156 -0
  287. package/toggle-group/types.d.ts +105 -0
  288. package/toggle-group/types.js +5 -0
  289. package/useTheme.d.ts +2 -0
  290. package/{dist/useTheme.js → useTheme.js} +1 -1
  291. package/wizard/Wizard.d.ts +4 -0
  292. package/wizard/Wizard.js +290 -0
  293. package/wizard/Wizard.stories.tsx +214 -0
  294. package/wizard/Wizard.test.js +141 -0
  295. package/wizard/types.d.ts +64 -0
  296. package/wizard/types.js +5 -0
  297. package/README.md +0 -66
  298. package/babel.config.js +0 -8
  299. package/dist/BackgroundColorContext.js +0 -46
  300. package/dist/ThemeContext.js +0 -248
  301. package/dist/V3Textarea/V3Textarea.js +0 -264
  302. package/dist/accordion/Accordion.js +0 -353
  303. package/dist/accordion-group/AccordionGroup.js +0 -186
  304. package/dist/alert/index.d.ts +0 -51
  305. package/dist/badge/Badge.js +0 -63
  306. package/dist/checkbox/Checkbox.stories.js +0 -144
  307. package/dist/checkbox/readme.md +0 -116
  308. package/dist/chip/Chip.js +0 -265
  309. package/dist/date/Date.js +0 -379
  310. package/dist/date/Date.stories.js +0 -205
  311. package/dist/date/readme.md +0 -73
  312. package/dist/date-input/index.d.ts +0 -95
  313. package/dist/dialog/Dialog.js +0 -218
  314. package/dist/file-input/FileInput.js +0 -644
  315. package/dist/file-input/FileItem.js +0 -280
  316. package/dist/file-input/index.d.ts +0 -81
  317. package/dist/footer/Footer.js +0 -421
  318. package/dist/header/Header.js +0 -434
  319. package/dist/input-text/Icons.js +0 -22
  320. package/dist/input-text/InputText.js +0 -705
  321. package/dist/layout/ApplicationLayout.js +0 -327
  322. package/dist/link/readme.md +0 -51
  323. package/dist/main.d.ts +0 -8
  324. package/dist/new-select/NewSelect.js +0 -836
  325. package/dist/new-select/index.d.ts +0 -53
  326. package/dist/number-input/NumberInput.js +0 -136
  327. package/dist/number-input/index.d.ts +0 -113
  328. package/dist/paginator/Paginator.js +0 -283
  329. package/dist/password-input/index.d.ts +0 -94
  330. package/dist/progress-bar/ProgressBar.stories.js +0 -280
  331. package/dist/progress-bar/readme.md +0 -63
  332. package/dist/radio/Radio.stories.js +0 -166
  333. package/dist/radio/readme.md +0 -70
  334. package/dist/select/Select.js +0 -549
  335. package/dist/slider/readme.md +0 -64
  336. package/dist/spinner/Spinner.js +0 -381
  337. package/dist/spinner/Spinner.stories.js +0 -183
  338. package/dist/spinner/readme.md +0 -65
  339. package/dist/switch/Switch.stories.js +0 -134
  340. package/dist/switch/readme.md +0 -133
  341. package/dist/tabs/Tabs.js +0 -343
  342. package/dist/tabs/Tabs.stories.js +0 -130
  343. package/dist/tabs/readme.md +0 -78
  344. package/dist/tabs-for-sections/TabsForSections.js +0 -92
  345. package/dist/tabs-for-sections/readme.md +0 -78
  346. package/dist/tag/Tag.js +0 -282
  347. package/dist/text-input/index.d.ts +0 -135
  348. package/dist/textarea/index.d.ts +0 -117
  349. package/dist/toggle/Toggle.js +0 -220
  350. package/dist/toggle/Toggle.stories.js +0 -297
  351. package/dist/toggle/readme.md +0 -80
  352. package/dist/upload/Upload.js +0 -205
  353. package/dist/upload/Upload.stories.js +0 -72
  354. package/dist/upload/buttons-upload/ButtonsUpload.js +0 -135
  355. package/dist/upload/buttons-upload/Icons.js +0 -40
  356. package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
  357. package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
  358. package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
  359. package/dist/upload/file-upload/FileToUpload.js +0 -184
  360. package/dist/upload/file-upload/audio-icon.svg +0 -4
  361. package/dist/upload/file-upload/close.svg +0 -4
  362. package/dist/upload/file-upload/file-icon.svg +0 -4
  363. package/dist/upload/file-upload/video-icon.svg +0 -4
  364. package/dist/upload/files-upload/FilesToUpload.js +0 -123
  365. package/dist/upload/readme.md +0 -37
  366. package/dist/upload/transaction/Icons.js +0 -160
  367. package/dist/upload/transaction/Transaction.js +0 -148
  368. package/dist/upload/transactions/Transactions.js +0 -138
  369. package/dist/wizard/Icons.js +0 -65
  370. package/dist/wizard/Wizard.js +0 -405
  371. package/test/Accordion.test.js +0 -33
  372. package/test/AccordionGroup.test.js +0 -125
  373. package/test/Alert.test.js +0 -53
  374. package/test/Box.test.js +0 -10
  375. package/test/Button.test.js +0 -18
  376. package/test/Card.test.js +0 -30
  377. package/test/Checkbox.test.js +0 -45
  378. package/test/Chip.test.js +0 -25
  379. package/test/Date.test.js +0 -397
  380. package/test/DateInput.test.js +0 -242
  381. package/test/Dialog.test.js +0 -23
  382. package/test/Dropdown.test.js +0 -145
  383. package/test/FileInput.test.js +0 -201
  384. package/test/Footer.test.js +0 -94
  385. package/test/Header.test.js +0 -34
  386. package/test/Heading.test.js +0 -35
  387. package/test/InputText.test.js +0 -248
  388. package/test/Link.test.js +0 -43
  389. package/test/NumberInput.test.js +0 -259
  390. package/test/Paginator.test.js +0 -177
  391. package/test/PasswordInput.test.js +0 -83
  392. package/test/ProgressBar.test.js +0 -35
  393. package/test/Radio.test.js +0 -37
  394. package/test/ResultsetTable.test.js +0 -329
  395. package/test/Select.test.js +0 -212
  396. package/test/Sidenav.test.js +0 -45
  397. package/test/Slider.test.js +0 -74
  398. package/test/Spinner.test.js +0 -32
  399. package/test/Switch.test.js +0 -45
  400. package/test/Table.test.js +0 -36
  401. package/test/Tabs.test.js +0 -109
  402. package/test/TabsForSections.test.js +0 -34
  403. package/test/Tag.test.js +0 -32
  404. package/test/TextInput.test.js +0 -732
  405. package/test/Textarea.test.js +0 -193
  406. package/test/ToggleGroup.test.js +0 -85
  407. package/test/Upload.test.js +0 -60
  408. package/test/V3TextArea.test.js +0 -51
  409. package/test/Wizard.test.js +0 -130
  410. package/test/mocks/pngMock.js +0 -1
  411. package/test/mocks/svgMock.js +0 -1
@@ -1,193 +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 DxcTextarea from "../src/textarea/Textarea";
5
-
6
- describe("Textarea component tests", () => {
7
- test("Renders with correct label", () => {
8
- const { getByText } = render(<DxcTextarea label="Example label" />);
9
- expect(getByText("Example label")).toBeTruthy();
10
- });
11
- test("Renders with correct label and helper text", () => {
12
- const { getByText } = render(<DxcTextarea label="Example label" helperText="Example helper text" />);
13
- expect(getByText("Example label")).toBeTruthy();
14
- expect(getByText("Example helper text")).toBeTruthy();
15
- });
16
- test("Renders with correct label and optional", () => {
17
- const { getByText, getByRole } = render(
18
- <DxcTextarea label="Example label" helperText="Example helper text" optional />
19
- );
20
- const textarea = getByRole("textbox");
21
- expect(getByText("Example label")).toBeTruthy();
22
- expect(getByText("(Optional)")).toBeTruthy();
23
- expect(getByText("Example helper text")).toBeTruthy();
24
- expect(textarea.getAttribute("aria-required")).toBe("false");
25
- });
26
- test("Renders with correct placeholder", () => {
27
- const { getByRole } = render(<DxcTextarea placeholder="Placeholder" />);
28
- const textarea = getByRole("textbox");
29
- expect(textarea.getAttribute("placeholder")).toBe("Placeholder");
30
- });
31
- test("Renders with error message", () => {
32
- const { getByText, getByRole } = render(<DxcTextarea error="Error message." />);
33
- const textarea = getByRole("textbox");
34
- expect(getByText("Error message.")).toBeTruthy();
35
- expect(textarea.getAttribute("aria-invalid")).toBe("true");
36
- expect(textarea.getAttribute("aria-describedBy")).not.toBeNull();
37
- });
38
- test("Renders with correct default rows", () => {
39
- const { getByLabelText } = render(<DxcTextarea label="Example label" rows={10} />);
40
- const textarea = getByLabelText("Example label");
41
- expect(textarea.rows).toBe(10);
42
- });
43
- test("Renders with correct accesibility attributes", () => {
44
- const { getByLabelText } = render(<DxcTextarea label="Example label" />);
45
- const textarea = getByLabelText("Example label");
46
- expect(textarea.getAttribute("aria-invalid")).toBe("false");
47
- expect(textarea.getAttribute("aria-describedBy")).toBeNull();
48
- expect(textarea.getAttribute("aria-required")).toBe("true");
49
- });
50
- test("Not optional constraint (onBlur)", () => {
51
- const onChange = jest.fn();
52
- const onBlur = jest.fn();
53
- const { getByLabelText } = render(
54
- <DxcTextarea label="Example label" placeholder="Placeholder" onChange={onChange} onBlur={onBlur} />
55
- );
56
- const textarea = getByLabelText("Example label");
57
-
58
- fireEvent.focus(textarea);
59
- fireEvent.blur(textarea);
60
- expect(onBlur).toHaveBeenCalled();
61
- expect(onBlur).toHaveBeenCalledWith({ value: "", error: "This field is required. Please, enter a value." });
62
- fireEvent.change(textarea, { target: { value: "Test" } });
63
- fireEvent.blur(textarea);
64
- expect(onBlur).toHaveBeenCalled();
65
- expect(onBlur).toHaveBeenCalledWith({ value: "Test", error: null });
66
- });
67
- test("Not optional constraint (onChange)", () => {
68
- const onChange = jest.fn();
69
- const { getByLabelText } = render(
70
- <DxcTextarea label="Example label" placeholder="Placeholder" onChange={onChange} />
71
- );
72
- const textarea = getByLabelText("Example label");
73
-
74
- fireEvent.focus(textarea);
75
- fireEvent.change(textarea, { target: { value: "Test" } });
76
- expect(onChange).toHaveBeenCalled();
77
- expect(onChange).toHaveBeenCalledWith({ value: "Test", error: null });
78
- userEvent.clear(textarea);
79
- expect(onChange).toHaveBeenCalled();
80
- expect(onChange).toHaveBeenCalledWith({ value: "", error: "This field is required. Please, enter a value." });
81
- });
82
- test("Pattern constraint", () => {
83
- const onChange = jest.fn();
84
- const onBlur = jest.fn();
85
- const { getByLabelText } = render(
86
- <DxcTextarea
87
- label="Example label"
88
- placeholder="Placeholder"
89
- onChange={onChange}
90
- onBlur={onBlur}
91
- margin={{ left: "medium", right: "medium" }}
92
- pattern='^.*(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$'
93
- />
94
- );
95
- const textarea = getByLabelText("Example label");
96
-
97
- fireEvent.change(textarea, { target: { value: "pattern test" } });
98
- expect(onChange).toHaveBeenCalled();
99
- expect(onChange).toHaveBeenCalledWith({ value: "pattern test", error: "Please match the format requested." });
100
- fireEvent.blur(textarea);
101
- expect(onBlur).toHaveBeenCalled();
102
- expect(onBlur).toHaveBeenCalledWith({ value: "pattern test", error: "Please match the format requested." });
103
- userEvent.clear(textarea);
104
- fireEvent.change(textarea, { target: { value: "pattern4&" } });
105
- expect(onChange).toHaveBeenCalled();
106
- expect(onChange).toHaveBeenCalledWith({ value: "pattern4&", error: null });
107
- fireEvent.blur(textarea);
108
- expect(onBlur).toHaveBeenCalled();
109
- expect(onBlur).toHaveBeenCalledWith({ value: "pattern4&", error: null });
110
- });
111
- test("Length constraint", () => {
112
- const onChange = jest.fn();
113
- const onBlur = jest.fn();
114
- const { getByLabelText } = render(
115
- <DxcTextarea
116
- label="Example label"
117
- placeholder="Placeholder"
118
- onChange={onChange}
119
- onBlur={onBlur}
120
- margin={{ left: "medium", right: "medium" }}
121
- length={{ min: 5, max: 10 }}
122
- />
123
- );
124
- const textarea = getByLabelText("Example label");
125
-
126
- fireEvent.change(textarea, { target: { value: "test" } });
127
- expect(onChange).toHaveBeenCalled();
128
- expect(onChange).toHaveBeenCalledWith({ value: "test", error: "Min length 5, max length 10." });
129
- fireEvent.blur(textarea);
130
- expect(onBlur).toHaveBeenCalled();
131
- expect(onBlur).toHaveBeenCalledWith({ value: "test", error: "Min length 5, max length 10." });
132
- userEvent.clear(textarea);
133
- fireEvent.change(textarea, { target: { value: "length" } });
134
- expect(onChange).toHaveBeenCalled();
135
- expect(onChange).toHaveBeenCalledWith({ value: "length", error: null });
136
- fireEvent.blur(textarea);
137
- expect(onBlur).toHaveBeenCalled();
138
- expect(onBlur).toHaveBeenCalledWith({ value: "length", error: null });
139
- });
140
- test("Pattern and length constraints", () => {
141
- const onChange = jest.fn();
142
- const onBlur = jest.fn();
143
- const { getByLabelText, getByText, queryByText } = render(
144
- <DxcTextarea
145
- label="Example label"
146
- placeholder="Placeholder"
147
- onChange={onChange}
148
- onBlur={onBlur}
149
- margin={{ left: "medium", right: "medium" }}
150
- pattern='^.*(?=.*[a-zA-Z])(?=.*\d)(?=.*[!&$%&? "]).*$'
151
- length={{ min: 5, max: 10 }}
152
- />
153
- );
154
- const textarea = getByLabelText("Example label");
155
-
156
- fireEvent.change(textarea, { target: { value: "test" } });
157
- expect(onChange).toHaveBeenCalled();
158
- expect(onChange).toHaveBeenCalledWith({ value: "test", error: "Min length 5, max length 10." });
159
- fireEvent.blur(textarea);
160
- expect(onBlur).toHaveBeenCalled();
161
- expect(onBlur).toHaveBeenCalledWith({ value: "test", error: "Min length 5, max length 10." });
162
- fireEvent.change(textarea, { target: { value: "tests" } });
163
- expect(onChange).toHaveBeenCalled();
164
- expect(onChange).toHaveBeenCalledWith({ value: "tests", error: "Please match the format requested." });
165
- fireEvent.blur(textarea);
166
- expect(onBlur).toHaveBeenCalled();
167
- expect(onBlur).toHaveBeenCalledWith({ value: "tests", error: "Please match the format requested." });
168
- fireEvent.change(textarea, { target: { value: "tests4&" } });
169
- expect(onChange).toHaveBeenCalled();
170
- expect(onChange).toHaveBeenCalledWith({ value: "tests4&", error: null });
171
- fireEvent.blur(textarea);
172
- expect(onBlur).toHaveBeenCalled();
173
- expect(onBlur).toHaveBeenCalledWith({ value: "tests4&", error: null });
174
- });
175
- test("onBlur function is called correctly", () => {
176
- const onBlur = jest.fn();
177
- const { getByLabelText } = render(<DxcTextarea label="Example label" onBlur={onBlur} />);
178
- const textarea = getByLabelText("Example label");
179
- fireEvent.change(textarea, { target: { value: "Blur test" } });
180
- fireEvent.blur(textarea);
181
- expect(onBlur).toHaveBeenCalled();
182
- expect(onBlur).toHaveBeenCalledWith({ value: "Blur test", error: null });
183
- });
184
- test("onChange function is called correctly", () => {
185
- const onChange = jest.fn();
186
- const { getByLabelText } = render(<DxcTextarea label="Example label" value="Test value" onChange={onChange} />);
187
- const textarea = getByLabelText("Example label");
188
- fireEvent.change(textarea, { target: { value: "Controlled test" } });
189
- expect(onChange).toHaveBeenCalled();
190
- expect(onChange).toHaveBeenCalledWith({ value: "Controlled test", error: null });
191
- expect(textarea.value).toBe("Test value");
192
- });
193
- });
@@ -1,85 +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(
27
- <DxcToggleGroup label="Toggle group label" helperText="Toggle group helper text" options={options} />
28
- );
29
- expect(getByText("Toggle group label")).toBeTruthy();
30
- expect(getByText("Toggle group helper text")).toBeTruthy();
31
- expect(getByText("Amazon")).toBeTruthy();
32
- expect(getByText("Ebay")).toBeTruthy();
33
- expect(getByText("Apple")).toBeTruthy();
34
- expect(getByText("Google")).toBeTruthy();
35
- });
36
-
37
- test("Uncontrolled toggle group calls correct function on change with value", () => {
38
- const onChange = jest.fn();
39
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} />);
40
-
41
- const option = getByText("Ebay");
42
- fireEvent.click(option);
43
- expect(onChange).toHaveBeenCalledWith(2);
44
- });
45
-
46
- test("Controlled toggle group calls correct function on change with value", () => {
47
- const onChange = jest.fn();
48
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} value={1} />);
49
-
50
- const option = getByText("Ebay");
51
- fireEvent.click(option);
52
- expect(onChange).toHaveBeenCalledWith(2);
53
- });
54
-
55
- test("Function on change is not called when disable", () => {
56
- const onChange = jest.fn();
57
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} disabled />);
58
-
59
- const option = getByText("Ebay");
60
- fireEvent.click(option);
61
- expect(onChange).toHaveBeenCalledTimes(0);
62
- });
63
-
64
- test("Uncontrolled multiple toggle group calls correct function on change with value when is multiple", () => {
65
- const onChange = jest.fn();
66
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} multiple />);
67
-
68
- const option = getByText("Ebay");
69
- fireEvent.click(option);
70
- expect(onChange).toHaveBeenCalledWith([2]);
71
- });
72
-
73
- test("Controlled multiple toggle returns always same values", () => {
74
- const onChange = jest.fn();
75
- const { getByText } = render(<DxcToggleGroup options={options} onChange={onChange} value={[1]} multiple />);
76
-
77
- const option = getByText("Ebay");
78
- fireEvent.click(option);
79
- expect(onChange).toHaveBeenCalledWith([1, 2]);
80
-
81
- const option2 = getByText("Google");
82
- fireEvent.click(option2);
83
- expect(onChange).toHaveBeenNthCalledWith(2, [1, 4]);
84
- });
85
- });
@@ -1,60 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent, act, createEvent } from "@testing-library/react";
3
- import V3DxcUpload from "../src/upload/Upload";
4
-
5
- describe("Upload component tests", () => {
6
- test("Upload renders with correct text", () => {
7
- const { getByText } = render(<V3DxcUpload margin="small"></V3DxcUpload>);
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(<V3DxcUpload margin="small"></V3DxcUpload>);
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(<V3DxcUpload margin="small" callbackUpload={onCallbackUpload}></V3DxcUpload>);
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
- });
@@ -1,51 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import V3DxcTextarea from "../src/V3Textarea/V3Textarea";
4
-
5
- describe("TextArea component tests", () => {
6
- test("TextArea renders with correct text", () => {
7
- const { getByText } = render(<V3DxcTextarea 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(<V3DxcTextarea 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(<V3DxcTextarea 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(<V3DxcTextarea 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(<V3DxcTextarea 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
- });
@@ -1,130 +0,0 @@
1
- import React from "react";
2
- import { render, fireEvent } from "@testing-library/react";
3
- import DxcWizard from "../src/wizard/Wizard";
4
-
5
- describe("Wizard components tests", () => {
6
- test("Wizard renders with correct steps", () => {
7
- const { getByText } = render(
8
- <DxcWizard
9
- steps={[
10
- {
11
- label: "first-step",
12
- },
13
- {
14
- label: "second-step",
15
- },
16
- ]}
17
- ></DxcWizard>
18
- );
19
-
20
- expect(getByText("first-step")).toBeTruthy();
21
- expect(getByText("second-step")).toBeTruthy();
22
- });
23
-
24
- test("Click on step text", () => {
25
- const onClick = jest.fn();
26
- const { getByText } = render(
27
- <DxcWizard
28
- onStepClick={onClick}
29
- steps={[
30
- {
31
- label: "first-step",
32
- },
33
- ]}
34
- ></DxcWizard>
35
- );
36
-
37
- const step = getByText("first-step");
38
- fireEvent.click(step);
39
- expect(onClick).toHaveBeenCalled();
40
- });
41
-
42
- test("Click on step description", () => {
43
- const onClick = jest.fn();
44
- const { getByText } = render(
45
- <DxcWizard
46
- onStepClick={onClick}
47
- steps={[
48
- {
49
- label: "first-step",
50
- description: "step-description",
51
- },
52
- ]}
53
- ></DxcWizard>
54
- );
55
-
56
- const step = getByText("step-description");
57
- fireEvent.click(step);
58
- expect(onClick).toHaveBeenCalled();
59
- });
60
-
61
- test("Click on step number", () => {
62
- const onClick = jest.fn();
63
- const { getByText } = render(
64
- <DxcWizard
65
- onStepClick={onClick}
66
- steps={[
67
- {
68
- label: "first-step",
69
- },
70
- ]}
71
- ></DxcWizard>
72
- );
73
-
74
- const step = getByText("1");
75
- fireEvent.click(step);
76
- expect(onClick).toHaveBeenCalled();
77
- });
78
-
79
- test("Click on disable step", () => {
80
- const onClick = jest.fn();
81
- const { getByText } = render(
82
- <DxcWizard
83
- onStepClick={onClick}
84
- steps={[
85
- {
86
- label: "first-step",
87
- },
88
- {
89
- label: "second-step",
90
- disabled: true,
91
- },
92
- ]}
93
- ></DxcWizard>
94
- );
95
-
96
- const step = getByText("second-step");
97
- fireEvent.click(step);
98
- expect(onClick).toHaveBeenCalledTimes(0);
99
- });
100
-
101
- test("Controlled wizard function is called", () => {
102
- const onClick = jest.fn((i) => i);
103
- const { getByText } = render(
104
- <DxcWizard
105
- currentStep={1}
106
- onStepClick={onClick}
107
- steps={[
108
- {
109
- label: "first-step",
110
- },
111
- {
112
- label: "second-step",
113
- },
114
- ]}
115
- ></DxcWizard>
116
- );
117
-
118
- const step1 = getByText("first-step");
119
- const step2 = getByText("second-step");
120
- fireEvent.click(step1);
121
- fireEvent.click(step2);
122
- fireEvent.click(step1);
123
-
124
- expect(onClick).toHaveBeenCalledTimes(3);
125
- //Test the received value in the onClick function
126
- expect(onClick).toHaveBeenNthCalledWith(1, 0);
127
- expect(onClick).toHaveBeenNthCalledWith(2, 1);
128
- expect(onClick).toHaveBeenNthCalledWith(3, 0);
129
- });
130
- });
@@ -1 +0,0 @@
1
- module.exports = 'ImageMock';
@@ -1 +0,0 @@
1
- module.exports = 'IconMock';