@dxc-technology/halstack-react 0.0.0-e832ef8 → 0.0.0-e884f9f
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.
- package/BackgroundColorContext.js +50 -0
- package/ThemeContext.js +246 -0
- package/{dist/select/Select.js → V3Select/V3Select.js} +38 -132
- package/V3Select/index.d.ts +27 -0
- package/{dist/V3Textarea → V3Textarea}/V3Textarea.js +10 -14
- package/V3Textarea/index.d.ts +27 -0
- package/accordion/Accordion.d.ts +4 -0
- package/{dist/accordion → accordion}/Accordion.js +35 -130
- package/accordion/types.d.ts +68 -0
- package/accordion/types.js +5 -0
- package/accordion-group/AccordionGroup.d.ts +7 -0
- package/accordion-group/AccordionGroup.js +170 -0
- package/accordion-group/types.d.ts +72 -0
- package/accordion-group/types.js +5 -0
- package/alert/Alert.d.ts +4 -0
- package/{dist/alert → alert}/Alert.js +38 -151
- package/alert/Alert.stories.tsx +170 -0
- package/alert/types.d.ts +49 -0
- package/alert/types.js +5 -0
- package/badge/Badge.js +59 -0
- package/box/Box.d.ts +4 -0
- package/{dist/box → box}/Box.js +13 -43
- package/box/Box.stories.tsx +132 -0
- package/box/types.d.ts +43 -0
- package/box/types.js +5 -0
- package/button/Button.d.ts +4 -0
- package/{dist/button → button}/Button.js +23 -84
- package/button/Button.stories.tsx +276 -0
- package/button/types.d.ts +57 -0
- package/button/types.js +5 -0
- package/card/Card.d.ts +4 -0
- package/{dist/card → card}/Card.js +33 -123
- package/card/Card.stories.tsx +201 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +67 -0
- package/card/types.js +5 -0
- package/checkbox/Checkbox.d.ts +4 -0
- package/{dist/checkbox → checkbox}/Checkbox.js +16 -63
- package/checkbox/Checkbox.stories.tsx +192 -0
- package/checkbox/types.d.ts +60 -0
- package/checkbox/types.js +5 -0
- package/{dist/chip → chip}/Chip.js +17 -61
- package/chip/Chip.stories.tsx +121 -0
- package/chip/index.d.ts +22 -0
- package/{dist/common → common}/OpenSans.css +0 -0
- package/{dist/common → common}/RequiredComponent.js +3 -11
- package/{dist/common → common}/fonts/OpenSans-Bold.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-BoldItalic.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-ExtraBold.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-Italic.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-Light.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-LightItalic.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-Regular.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-SemiBold.ttf +0 -0
- package/{dist/common → common}/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
- package/{dist/common → common}/utils.js +0 -0
- package/{dist/common → common}/variables.js +160 -152
- package/{dist/date → date}/Date.js +21 -27
- package/date/index.d.ts +27 -0
- package/date-input/DateInput.d.ts +4 -0
- package/{dist/date-input → date-input}/DateInput.js +22 -61
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/types.d.ts +100 -0
- package/date-input/types.js +5 -0
- package/dialog/Dialog.d.ts +4 -0
- package/{dist/dialog → dialog}/Dialog.js +20 -73
- package/dialog/Dialog.stories.tsx +212 -0
- package/dialog/types.d.ts +43 -0
- package/dialog/types.js +5 -0
- package/dropdown/Dropdown.d.ts +4 -0
- package/{dist/dropdown → dropdown}/Dropdown.js +44 -171
- package/dropdown/types.d.ts +89 -0
- package/dropdown/types.js +5 -0
- package/file-input/FileInput.d.ts +4 -0
- package/{dist/file-input → file-input}/FileInput.js +56 -189
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +182 -0
- package/file-input/types.d.ts +87 -0
- package/file-input/types.js +5 -0
- package/footer/Footer.d.ts +4 -0
- package/{dist/footer → footer}/Footer.js +38 -193
- package/footer/Footer.stories.jsx +151 -0
- package/{dist/footer → footer}/Icons.js +13 -13
- package/footer/types.d.ts +61 -0
- package/footer/types.js +5 -0
- package/header/Header.d.ts +7 -0
- package/header/Header.js +324 -0
- package/header/Header.stories.tsx +162 -0
- package/{dist/header → header}/Icons.js +7 -32
- package/header/types.d.ts +47 -0
- package/header/types.js +5 -0
- package/heading/Heading.d.ts +4 -0
- package/{dist/heading → heading}/Heading.js +30 -89
- package/heading/Heading.stories.tsx +53 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/{dist/input-text → input-text}/Icons.js +2 -2
- package/{dist/input-text → input-text}/InputText.js +36 -130
- package/input-text/index.d.ts +36 -0
- package/{dist/layout → layout}/ApplicationLayout.js +31 -123
- package/{dist/layout → layout}/Icons.js +7 -7
- package/link/Link.d.ts +3 -0
- package/{dist/link → link}/Link.js +18 -94
- package/link/Link.stories.tsx +146 -0
- package/link/types.d.ts +74 -0
- package/link/types.js +5 -0
- package/main.d.ts +44 -0
- package/{dist/main.js → main.js} +93 -97
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +86 -0
- package/number-input/NumberInput.stories.tsx +115 -0
- package/{dist/number-input → number-input}/NumberInputContext.js +1 -1
- package/number-input/types.d.ts +117 -0
- package/number-input/types.js +5 -0
- package/package.json +32 -25
- package/{dist/paginator → paginator}/Icons.js +9 -9
- package/paginator/Paginator.d.ts +4 -0
- package/paginator/Paginator.js +198 -0
- package/paginator/Paginator.stories.tsx +63 -0
- package/paginator/types.d.ts +38 -0
- package/paginator/types.js +5 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/{dist/password-input → password-input}/PasswordInput.js +24 -60
- package/password-input/PasswordInput.stories.tsx +131 -0
- package/password-input/types.d.ts +100 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +4 -0
- package/{dist/progress-bar → progress-bar}/ProgressBar.js +20 -92
- package/progress-bar/ProgressBar.stories.jsx +58 -0
- package/progress-bar/types.d.ts +37 -0
- package/progress-bar/types.js +5 -0
- package/radio/Radio.d.ts +4 -0
- package/{dist/radio → radio}/Radio.js +15 -50
- package/radio/Radio.stories.tsx +192 -0
- package/radio/types.d.ts +54 -0
- package/radio/types.js +5 -0
- package/{dist/resultsetTable → resultsetTable}/ResultsetTable.js +35 -119
- package/resultsetTable/index.d.ts +19 -0
- package/select/Select.js +865 -0
- package/select/Select.stories.tsx +572 -0
- package/select/index.d.ts +131 -0
- package/sidenav/Sidenav.d.ts +9 -0
- package/{dist/sidenav → sidenav}/Sidenav.js +19 -62
- package/sidenav/Sidenav.stories.tsx +165 -0
- package/sidenav/types.d.ts +50 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +4 -0
- package/{dist/slider → slider}/Slider.js +71 -158
- package/slider/Slider.stories.tsx +177 -0
- package/slider/types.d.ts +78 -0
- package/slider/types.js +5 -0
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +250 -0
- package/spinner/Spinner.stories.jsx +102 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/switch/Switch.d.ts +4 -0
- package/{dist/switch → switch}/Switch.js +26 -69
- package/switch/Switch.stories.tsx +160 -0
- package/switch/types.d.ts +58 -0
- package/switch/types.js +5 -0
- package/table/Table.d.ts +4 -0
- package/{dist/table → table}/Table.js +10 -24
- package/table/Table.stories.jsx +276 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tabs.d.ts +4 -0
- package/tabs/Tabs.js +213 -0
- package/tabs/types.d.ts +70 -0
- package/tabs/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +193 -0
- package/tag/Tag.stories.tsx +145 -0
- package/tag/types.d.ts +60 -0
- package/tag/types.js +5 -0
- package/{dist/text-input → text-input}/TextInput.js +244 -390
- package/{dist/text-input → text-input}/index.d.ts +2 -2
- package/{dist/textarea → textarea}/Textarea.js +20 -72
- package/textarea/Textarea.stories.jsx +135 -0
- package/{dist/textarea → textarea}/index.d.ts +0 -0
- package/{dist/toggle → toggle}/Toggle.js +15 -49
- package/toggle/index.d.ts +21 -0
- package/{dist/toggle-group → toggle-group}/ToggleGroup.js +23 -107
- package/toggle-group/ToggleGroup.stories.tsx +178 -0
- package/toggle-group/index.d.ts +21 -0
- package/{dist/upload → upload}/Upload.js +14 -18
- package/{dist/upload → upload}/buttons-upload/ButtonsUpload.js +13 -37
- package/{dist/upload → upload}/buttons-upload/Icons.js +7 -7
- package/upload/dragAndDropArea/DragAndDropArea.js +225 -0
- package/upload/dragAndDropArea/Icons.js +39 -0
- package/upload/file-upload/FileToUpload.js +115 -0
- package/{dist/upload → upload}/file-upload/Icons.js +13 -13
- package/{dist/upload → upload}/files-upload/FilesToUpload.js +12 -26
- package/upload/index.d.ts +15 -0
- package/{dist/upload → upload}/transaction/Icons.js +31 -31
- package/upload/transaction/Transaction.js +104 -0
- package/upload/transactions/Transactions.js +94 -0
- package/{dist/useTheme.js → useTheme.js} +0 -0
- package/{dist/wizard → wizard}/Icons.js +8 -8
- package/wizard/Wizard.d.ts +4 -0
- package/{dist/wizard → wizard}/Wizard.js +32 -206
- package/wizard/Wizard.stories.jsx +224 -0
- package/wizard/types.d.ts +64 -0
- package/wizard/types.js +5 -0
- package/README.md +0 -66
- package/babel.config.js +0 -8
- package/dist/BackgroundColorContext.js +0 -46
- package/dist/ThemeContext.js +0 -248
- package/dist/accordion-group/AccordionGroup.js +0 -186
- package/dist/alert/index.d.ts +0 -51
- package/dist/badge/Badge.js +0 -63
- package/dist/checkbox/Checkbox.stories.js +0 -144
- package/dist/checkbox/readme.md +0 -116
- package/dist/date/Date.stories.js +0 -205
- package/dist/date/readme.md +0 -73
- package/dist/date-input/index.d.ts +0 -95
- package/dist/file-input/FileItem.js +0 -280
- package/dist/file-input/index.d.ts +0 -81
- package/dist/header/Header.js +0 -434
- package/dist/link/readme.md +0 -51
- package/dist/main.d.ts +0 -8
- package/dist/new-select/NewSelect.js +0 -836
- package/dist/new-select/index.d.ts +0 -53
- package/dist/number-input/NumberInput.js +0 -136
- package/dist/number-input/index.d.ts +0 -113
- package/dist/paginator/Paginator.js +0 -283
- package/dist/password-input/index.d.ts +0 -94
- package/dist/progress-bar/ProgressBar.stories.js +0 -280
- package/dist/progress-bar/readme.md +0 -63
- package/dist/radio/Radio.stories.js +0 -166
- package/dist/radio/readme.md +0 -70
- package/dist/slider/readme.md +0 -64
- package/dist/spinner/Spinner.js +0 -381
- package/dist/spinner/Spinner.stories.js +0 -183
- package/dist/spinner/readme.md +0 -65
- package/dist/switch/Switch.stories.js +0 -134
- package/dist/switch/readme.md +0 -133
- package/dist/tabs/Tabs.js +0 -343
- package/dist/tabs/Tabs.stories.js +0 -130
- package/dist/tabs/readme.md +0 -78
- package/dist/tabs-for-sections/TabsForSections.js +0 -92
- package/dist/tabs-for-sections/readme.md +0 -78
- package/dist/tag/Tag.js +0 -282
- package/dist/toggle/Toggle.stories.js +0 -297
- package/dist/toggle/readme.md +0 -80
- package/dist/upload/Upload.stories.js +0 -72
- package/dist/upload/dragAndDropArea/DragAndDropArea.js +0 -329
- package/dist/upload/dragAndDropArea/upload_drop.svg +0 -4
- package/dist/upload/dragAndDropArea/upload_file.svg +0 -4
- package/dist/upload/file-upload/FileToUpload.js +0 -189
- package/dist/upload/readme.md +0 -37
- package/dist/upload/transaction/Transaction.js +0 -148
- package/dist/upload/transactions/Transactions.js +0 -138
- package/test/Accordion.test.js +0 -33
- package/test/AccordionGroup.test.js +0 -125
- package/test/Alert.test.js +0 -53
- package/test/Box.test.js +0 -10
- package/test/Button.test.js +0 -18
- package/test/Card.test.js +0 -30
- package/test/Checkbox.test.js +0 -45
- package/test/Chip.test.js +0 -25
- package/test/Date.test.js +0 -397
- package/test/DateInput.test.js +0 -242
- package/test/Dialog.test.js +0 -23
- package/test/Dropdown.test.js +0 -145
- package/test/FileInput.test.js +0 -201
- package/test/Footer.test.js +0 -94
- package/test/Header.test.js +0 -34
- package/test/Heading.test.js +0 -35
- package/test/InputText.test.js +0 -248
- package/test/Link.test.js +0 -43
- package/test/NumberInput.test.js +0 -259
- package/test/Paginator.test.js +0 -177
- package/test/PasswordInput.test.js +0 -83
- package/test/ProgressBar.test.js +0 -35
- package/test/Radio.test.js +0 -37
- package/test/ResultsetTable.test.js +0 -329
- package/test/Select.test.js +0 -212
- package/test/Sidenav.test.js +0 -45
- package/test/Slider.test.js +0 -74
- package/test/Spinner.test.js +0 -32
- package/test/Switch.test.js +0 -45
- package/test/Table.test.js +0 -36
- package/test/Tabs.test.js +0 -109
- package/test/TabsForSections.test.js +0 -34
- package/test/Tag.test.js +0 -32
- package/test/TextInput.test.js +0 -732
- package/test/Textarea.test.js +0 -193
- package/test/ToggleGroup.test.js +0 -85
- package/test/Upload.test.js +0 -60
- package/test/V3TextArea.test.js +0 -51
- package/test/Wizard.test.js +0 -130
- package/test/mocks/pngMock.js +0 -1
- package/test/mocks/svgMock.js +0 -1
package/test/Dropdown.test.js
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render, fireEvent, act } from "@testing-library/react";
|
|
3
|
-
import DxcDropdown from "../src/dropdown/Dropdown";
|
|
4
|
-
|
|
5
|
-
global.document.createRange = () => ({
|
|
6
|
-
setStart: () => {},
|
|
7
|
-
setEnd: () => {},
|
|
8
|
-
commonAncestorContainer: {
|
|
9
|
-
nodeName: "BODY",
|
|
10
|
-
ownerDocument: document,
|
|
11
|
-
},
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
describe("Dropdown component tests", () => {
|
|
15
|
-
test("Dropdown renders with correct label", () => {
|
|
16
|
-
const { getByText } = render(<DxcDropdown label="dropdown-test"></DxcDropdown>);
|
|
17
|
-
expect(getByText("dropdown-test")).toBeTruthy();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test("Dropdown renders with correct icon before", () => {
|
|
21
|
-
const { getAllByRole } = render(<DxcDropdown iconSrc="/testIcon" label="dropdown-test"></DxcDropdown>);
|
|
22
|
-
const image = getAllByRole("img")[0];
|
|
23
|
-
expect(image.getAttribute("src")).toEqual("/testIcon");
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("Dropdown renders with correct icon after", () => {
|
|
27
|
-
const { getAllByRole } = render(
|
|
28
|
-
<DxcDropdown iconSrc="/testIcon" iconPosition="after" label="dropdown-test"></DxcDropdown>
|
|
29
|
-
);
|
|
30
|
-
const image = getAllByRole("img")[0];
|
|
31
|
-
expect(image.getAttribute("src")).toEqual("/testIcon");
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
test("onClick shows and hides option", () => {
|
|
35
|
-
const options = [
|
|
36
|
-
{
|
|
37
|
-
value: 1,
|
|
38
|
-
label: "option-test",
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
const { queryByText } = render(<DxcDropdown options={options} label="dropdown-test"></DxcDropdown>);
|
|
42
|
-
const dropdown = queryByText("dropdown-test");
|
|
43
|
-
//Before clicked is not showed
|
|
44
|
-
expect(queryByText("option-test")).toBeFalsy();
|
|
45
|
-
act(() => {
|
|
46
|
-
fireEvent.click(dropdown);
|
|
47
|
-
});
|
|
48
|
-
expect(queryByText("option-test")).toBeTruthy();
|
|
49
|
-
});
|
|
50
|
-
test("Disabled dropdown is not clickable", () => {
|
|
51
|
-
const options = [
|
|
52
|
-
{
|
|
53
|
-
value: 1,
|
|
54
|
-
label: "option-test",
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
const { queryByText } = render(<DxcDropdown options={options} disabled label="dropdown-test"></DxcDropdown>);
|
|
58
|
-
const dropdown = queryByText("dropdown-test");
|
|
59
|
-
expect(queryByText("option-test")).toBeFalsy();
|
|
60
|
-
act(() => {
|
|
61
|
-
fireEvent.click(dropdown);
|
|
62
|
-
});
|
|
63
|
-
expect(queryByText("option-test")).toBeFalsy();
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test("Dropdown renders with correct icon before option", () => {
|
|
67
|
-
const options = [
|
|
68
|
-
{
|
|
69
|
-
value: 1,
|
|
70
|
-
label: "option-test",
|
|
71
|
-
iconSrc: "/testIcon",
|
|
72
|
-
},
|
|
73
|
-
];
|
|
74
|
-
const { getByText, getByRole } = render(<DxcDropdown options={options} label="dropdown-test"></DxcDropdown>);
|
|
75
|
-
const dropdown = getByText("dropdown-test");
|
|
76
|
-
act(() => {
|
|
77
|
-
fireEvent.click(dropdown);
|
|
78
|
-
});
|
|
79
|
-
expect(getByRole("img").getAttribute("src")).toEqual("/testIcon");
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
test("Dropdown renders with correct icon after option", () => {
|
|
83
|
-
const options = [
|
|
84
|
-
{
|
|
85
|
-
value: 1,
|
|
86
|
-
label: "option-test",
|
|
87
|
-
iconSrc: "/testIcon",
|
|
88
|
-
},
|
|
89
|
-
];
|
|
90
|
-
const { getByText, getByRole } = render(
|
|
91
|
-
<DxcDropdown options={options} optionsIconPosition="after" label="dropdown-test"></DxcDropdown>
|
|
92
|
-
);
|
|
93
|
-
const dropdown = getByText("dropdown-test");
|
|
94
|
-
act(() => {
|
|
95
|
-
fireEvent.click(dropdown);
|
|
96
|
-
});
|
|
97
|
-
expect(getByRole("img").getAttribute("src")).toEqual("/testIcon");
|
|
98
|
-
});
|
|
99
|
-
|
|
100
|
-
test("Dropdown renders with caret hidden", () => {
|
|
101
|
-
const { queryByRole } = render(<DxcDropdown caretHidden={true} label="dropdown-test"></DxcDropdown>);
|
|
102
|
-
expect(queryByRole("img")).toBeFalsy();
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
test("onSelectOption fuction is called correctly", () => {
|
|
106
|
-
const onSelectOption = jest.fn((i) => i);
|
|
107
|
-
const options = [
|
|
108
|
-
{
|
|
109
|
-
value: 1,
|
|
110
|
-
label: "option-test",
|
|
111
|
-
},
|
|
112
|
-
];
|
|
113
|
-
const { getByText } = render(
|
|
114
|
-
<DxcDropdown options={options} onSelectOption={onSelectOption} label="dropdown-test"></DxcDropdown>
|
|
115
|
-
);
|
|
116
|
-
const dropdown = getByText("dropdown-test");
|
|
117
|
-
act(() => {
|
|
118
|
-
fireEvent.click(dropdown);
|
|
119
|
-
});
|
|
120
|
-
const option = getByText("option-test");
|
|
121
|
-
act(() => {
|
|
122
|
-
fireEvent.click(option);
|
|
123
|
-
});
|
|
124
|
-
expect(onSelectOption).toHaveBeenCalledWith(1);
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
test("expandOnHover shows and hides the option correctly", () => {
|
|
128
|
-
const options = [
|
|
129
|
-
{
|
|
130
|
-
value: 1,
|
|
131
|
-
label: "option-test",
|
|
132
|
-
},
|
|
133
|
-
];
|
|
134
|
-
const { queryByText } = render(
|
|
135
|
-
<DxcDropdown options={options} expandOnHover={true} label="dropdown-test"></DxcDropdown>
|
|
136
|
-
);
|
|
137
|
-
const dropdown = queryByText("dropdown-test");
|
|
138
|
-
//Verify that is not showed before
|
|
139
|
-
expect(queryByText("option-test")).toBeFalsy();
|
|
140
|
-
act(() => {
|
|
141
|
-
fireEvent.mouseOver(dropdown);
|
|
142
|
-
});
|
|
143
|
-
expect(queryByText("option-test")).toBeTruthy();
|
|
144
|
-
});
|
|
145
|
-
});
|
package/test/FileInput.test.js
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render, fireEvent, waitFor } from "@testing-library/react";
|
|
3
|
-
import userEvent from "@testing-library/user-event";
|
|
4
|
-
|
|
5
|
-
import DxcFileInput from "../src/file-input/FileInput";
|
|
6
|
-
|
|
7
|
-
describe("FileInput component tests", () => {
|
|
8
|
-
const file1 = new File(["file1"], "file1.png", { type: "image/png" });
|
|
9
|
-
const file2 = new File(["file2"], "file2.txt", {
|
|
10
|
-
type: "text/plain",
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const files = [
|
|
14
|
-
{
|
|
15
|
-
error: null,
|
|
16
|
-
preview: null,
|
|
17
|
-
file: file1,
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
error: "Error message",
|
|
21
|
-
preview: null,
|
|
22
|
-
file: file2,
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
test("Renders with correct labels and helper text in file mode", () => {
|
|
27
|
-
const { getByText } = render(<DxcFileInput label="File input label" helperText="File input helper text" />);
|
|
28
|
-
expect(getByText("File input label")).toBeTruthy();
|
|
29
|
-
expect(getByText("File input helper text")).toBeTruthy();
|
|
30
|
-
});
|
|
31
|
-
test("Renders with correct button label in file mode", () => {
|
|
32
|
-
const { getByText } = render(<DxcFileInput label="File input label" helperText="File input helper text" />);
|
|
33
|
-
expect(getByText("Select files")).toBeTruthy();
|
|
34
|
-
});
|
|
35
|
-
test("Renders with correct labels in filedrop mode", () => {
|
|
36
|
-
const { getByText } = render(
|
|
37
|
-
<DxcFileInput label="File input label" helperText="File input helper text" mode="filedrop" />
|
|
38
|
-
);
|
|
39
|
-
expect(getByText("Select")).toBeTruthy();
|
|
40
|
-
expect(getByText("or drop files")).toBeTruthy();
|
|
41
|
-
});
|
|
42
|
-
test("Renders with correct labels in dropzone mode", () => {
|
|
43
|
-
const { getByText } = render(
|
|
44
|
-
<DxcFileInput label="File input label" helperText="File input helper text" mode="dropzone" />
|
|
45
|
-
);
|
|
46
|
-
expect(getByText("Select")).toBeTruthy();
|
|
47
|
-
expect(getByText("or drop files")).toBeTruthy();
|
|
48
|
-
});
|
|
49
|
-
test("Disabled file input", () => {
|
|
50
|
-
const { getByText, getByRole } = render(
|
|
51
|
-
<DxcFileInput label="File input label" helperText="File input helper text" disabled />
|
|
52
|
-
);
|
|
53
|
-
expect(getByText("Select files")).toBeTruthy();
|
|
54
|
-
const button = getByRole("button");
|
|
55
|
-
expect(button.disabled).toBeTruthy();
|
|
56
|
-
});
|
|
57
|
-
test("Renders file items passed in value when multiple file input", () => {
|
|
58
|
-
const callbackFile = jest.fn();
|
|
59
|
-
const { getByText } = render(
|
|
60
|
-
<DxcFileInput
|
|
61
|
-
label="File input label"
|
|
62
|
-
helperText="File input helper text"
|
|
63
|
-
value={files}
|
|
64
|
-
callbackFile={callbackFile}
|
|
65
|
-
/>
|
|
66
|
-
);
|
|
67
|
-
expect(getByText("file1.png")).toBeTruthy();
|
|
68
|
-
expect(getByText("file2.txt")).toBeTruthy();
|
|
69
|
-
expect(getByText("Error message")).toBeTruthy();
|
|
70
|
-
});
|
|
71
|
-
test("Renders file items when single file input", () => {
|
|
72
|
-
const callbackFile = jest.fn();
|
|
73
|
-
const { getByText } = render(
|
|
74
|
-
<DxcFileInput
|
|
75
|
-
label="File input label"
|
|
76
|
-
helperText="File input helper text"
|
|
77
|
-
multiple={false}
|
|
78
|
-
value={files}
|
|
79
|
-
callbackFile={callbackFile}
|
|
80
|
-
/>
|
|
81
|
-
);
|
|
82
|
-
expect(getByText("file1.png")).toBeTruthy();
|
|
83
|
-
expect(getByText("file2.txt")).toBeTruthy();
|
|
84
|
-
expect(getByText("Error message")).toBeTruthy();
|
|
85
|
-
});
|
|
86
|
-
test("Add file item when single file input", async () => {
|
|
87
|
-
const newFile = new File(["newFile"], "newFile.pdf", { type: "pdf" });
|
|
88
|
-
const callbackFile = jest.fn();
|
|
89
|
-
const { getByText, getByLabelText } = render(
|
|
90
|
-
<DxcFileInput
|
|
91
|
-
label="File input label"
|
|
92
|
-
helperText="File input helper text"
|
|
93
|
-
value={files}
|
|
94
|
-
callbackFile={callbackFile}
|
|
95
|
-
multiple={false}
|
|
96
|
-
/>
|
|
97
|
-
);
|
|
98
|
-
expect(getByText("file1.png")).toBeTruthy();
|
|
99
|
-
expect(getByText("file2.txt")).toBeTruthy();
|
|
100
|
-
expect(getByText("Error message")).toBeTruthy();
|
|
101
|
-
const inputFile = getByLabelText("File input label", { hidden: true });
|
|
102
|
-
fireEvent.change(inputFile, { target: { files: [newFile] } });
|
|
103
|
-
await waitFor(() => {
|
|
104
|
-
expect(callbackFile).toHaveBeenCalledWith([
|
|
105
|
-
{
|
|
106
|
-
error: undefined,
|
|
107
|
-
file: newFile,
|
|
108
|
-
preview: (
|
|
109
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
|
|
110
|
-
<path fill="none" d="M0 0h24v24H0V0z" />
|
|
111
|
-
<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" />
|
|
112
|
-
</svg>
|
|
113
|
-
),
|
|
114
|
-
},
|
|
115
|
-
]);
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
test("Renders file items and delete one file", async () => {
|
|
119
|
-
const callbackFile = jest.fn();
|
|
120
|
-
const { getByText, getAllByRole } = render(
|
|
121
|
-
<DxcFileInput
|
|
122
|
-
label="File input label"
|
|
123
|
-
helperText="File input helper text"
|
|
124
|
-
value={files}
|
|
125
|
-
callbackFile={callbackFile}
|
|
126
|
-
/>
|
|
127
|
-
);
|
|
128
|
-
expect(getByText("file1.png")).toBeTruthy();
|
|
129
|
-
expect(getByText("file2.txt")).toBeTruthy();
|
|
130
|
-
expect(getByText("Error message")).toBeTruthy();
|
|
131
|
-
const removeBtn = getAllByRole("button")[1];
|
|
132
|
-
userEvent.click(removeBtn);
|
|
133
|
-
await waitFor(() => {
|
|
134
|
-
expect(callbackFile).toHaveBeenCalledWith([{ error: "Error message", file: file2, preview: null }]);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
test("CallbackFile is correctly called", async () => {
|
|
139
|
-
const newFile = new File(["newFile"], "newFile.pdf", { type: "pdf" });
|
|
140
|
-
const callbackFile = jest.fn();
|
|
141
|
-
const { getByLabelText } = render(
|
|
142
|
-
<DxcFileInput
|
|
143
|
-
label="File input label"
|
|
144
|
-
helperText="File input helper text"
|
|
145
|
-
value={files}
|
|
146
|
-
callbackFile={callbackFile}
|
|
147
|
-
/>
|
|
148
|
-
);
|
|
149
|
-
const inputFile = getByLabelText("File input label", { hidden: true });
|
|
150
|
-
fireEvent.change(inputFile, { target: { files: [newFile] } });
|
|
151
|
-
await waitFor(() => {
|
|
152
|
-
expect(callbackFile).toHaveBeenCalledWith([
|
|
153
|
-
{ error: null, preview: null, file: file1 },
|
|
154
|
-
{ error: "Error message", preview: null, file: file2 },
|
|
155
|
-
{
|
|
156
|
-
error: undefined,
|
|
157
|
-
file: newFile,
|
|
158
|
-
preview: (
|
|
159
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
|
|
160
|
-
<path fill="none" d="M0 0h24v24H0V0z" />
|
|
161
|
-
<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" />
|
|
162
|
-
</svg>
|
|
163
|
-
),
|
|
164
|
-
},
|
|
165
|
-
]);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
|
|
169
|
-
test("Callback called correctly when a file size does not comply minSize or maxSize", async () => {
|
|
170
|
-
const newFile = new File(["newFile"], "newFile.pdf", { type: "pdf" });
|
|
171
|
-
const callbackFile = jest.fn();
|
|
172
|
-
const { getByLabelText } = render(
|
|
173
|
-
<DxcFileInput
|
|
174
|
-
label="File input label"
|
|
175
|
-
helperText="File input helper text"
|
|
176
|
-
minSize={1000}
|
|
177
|
-
maxSize={20000}
|
|
178
|
-
value={files}
|
|
179
|
-
callbackFile={callbackFile}
|
|
180
|
-
/>
|
|
181
|
-
);
|
|
182
|
-
const inputFile = getByLabelText("File input label", { hidden: true });
|
|
183
|
-
fireEvent.change(inputFile, { target: { files: [newFile] } });
|
|
184
|
-
await waitFor(() => {
|
|
185
|
-
expect(callbackFile).toHaveBeenCalledWith([
|
|
186
|
-
{ error: null, preview: null, file: file1 },
|
|
187
|
-
{ error: "Error message", preview: null, file: file2 },
|
|
188
|
-
{
|
|
189
|
-
error: "File size must be greater than min size.",
|
|
190
|
-
file: newFile,
|
|
191
|
-
preview: (
|
|
192
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
|
|
193
|
-
<path fill="none" d="M0 0h24v24H0V0z" />
|
|
194
|
-
<path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zM6 20V4h7v5h5v11H6z" />
|
|
195
|
-
</svg>
|
|
196
|
-
),
|
|
197
|
-
},
|
|
198
|
-
]);
|
|
199
|
-
});
|
|
200
|
-
});
|
|
201
|
-
});
|
package/test/Footer.test.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render } from "@testing-library/react";
|
|
3
|
-
import DxcFooter from "../src/footer/Footer";
|
|
4
|
-
import icon from "../../app/src/images/linkedin.svg";
|
|
5
|
-
|
|
6
|
-
describe("Footer component tests", () => {
|
|
7
|
-
test("Footer renders with default logo", () => {
|
|
8
|
-
const { getByTitle } = render(<DxcFooter></DxcFooter>);
|
|
9
|
-
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("Footer renders with social links", () => {
|
|
13
|
-
const social = [
|
|
14
|
-
{
|
|
15
|
-
href: "https://www.test.com/test",
|
|
16
|
-
logoSrc: icon,
|
|
17
|
-
},
|
|
18
|
-
];
|
|
19
|
-
const { getByRole } = render(<DxcFooter socialLinks={social}></DxcFooter>);
|
|
20
|
-
const socialIcon = getByRole("link");
|
|
21
|
-
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/test");
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
test("Footer renders with bottom links", () => {
|
|
25
|
-
const bottom = [
|
|
26
|
-
{
|
|
27
|
-
href: "https://www.test.com/test",
|
|
28
|
-
text: "bottom-link-text",
|
|
29
|
-
},
|
|
30
|
-
];
|
|
31
|
-
const { getByText } = render(<DxcFooter bottomLinks={bottom}></DxcFooter>);
|
|
32
|
-
const link = getByText("bottom-link-text");
|
|
33
|
-
expect(link.getAttribute("href")).toBe("https://www.test.com/test");
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
test("Footer renders with copyright text", () => {
|
|
37
|
-
const { getByText } = render(<DxcFooter copyright="test-copyright"></DxcFooter>);
|
|
38
|
-
expect(getByText("test-copyright")).toBeTruthy();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
test("Footer renders with correct children", () => {
|
|
42
|
-
//We need to force the offsetWidth value
|
|
43
|
-
Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 1024 });
|
|
44
|
-
|
|
45
|
-
const { getByText } = render(
|
|
46
|
-
<DxcFooter>
|
|
47
|
-
<p>footer-child-text</p>
|
|
48
|
-
</DxcFooter>
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
expect(getByText("footer-child-text")).toBeTruthy();
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
test("Footer renders without children in mobile", () => {
|
|
55
|
-
//425 is mobile width
|
|
56
|
-
Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
|
|
57
|
-
|
|
58
|
-
const { queryByText } = render(
|
|
59
|
-
<DxcFooter>
|
|
60
|
-
<p>footer-child-text</p>
|
|
61
|
-
</DxcFooter>
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
expect(queryByText("footer-child-text")).toBeFalsy();
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
test("Footer is fully rendered", () => {
|
|
68
|
-
Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 1024 });
|
|
69
|
-
|
|
70
|
-
const social = [
|
|
71
|
-
{
|
|
72
|
-
href: "https://www.test.com/social",
|
|
73
|
-
logoSrc: icon,
|
|
74
|
-
},
|
|
75
|
-
];
|
|
76
|
-
const bottom = [
|
|
77
|
-
{
|
|
78
|
-
href: "https://www.test.com/bottom",
|
|
79
|
-
text: "bottom-link-text",
|
|
80
|
-
},
|
|
81
|
-
];
|
|
82
|
-
const { getAllByRole, getByText } = render(
|
|
83
|
-
<DxcFooter socialLinks={social} bottomLinks={bottom} copyright="test-copyright">
|
|
84
|
-
<p>footer-child-text</p>
|
|
85
|
-
</DxcFooter>
|
|
86
|
-
);
|
|
87
|
-
const socialIcon = getAllByRole("link")[0];
|
|
88
|
-
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
89
|
-
const bottomLink = getByText("bottom-link-text");
|
|
90
|
-
expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
91
|
-
expect(getByText("test-copyright")).toBeTruthy();
|
|
92
|
-
expect(getByText("footer-child-text")).toBeTruthy();
|
|
93
|
-
});
|
|
94
|
-
});
|
package/test/Header.test.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render, fireEvent } from "@testing-library/react";
|
|
3
|
-
import DxcHeader from "../src/header/Header";
|
|
4
|
-
import icon from "../../app/src/images/linkedin.svg";
|
|
5
|
-
|
|
6
|
-
describe("Header component tests", () => {
|
|
7
|
-
test("Header renders with default logo", () => {
|
|
8
|
-
const { getByTitle } = render(<DxcHeader></DxcHeader>);
|
|
9
|
-
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
test("Call correct function on logo click", () => {
|
|
13
|
-
const onClick = jest.fn();
|
|
14
|
-
const { getByTitle } = render(<DxcHeader onClick={onClick}></DxcHeader>);
|
|
15
|
-
const logo = getByTitle("DXC Logo");
|
|
16
|
-
fireEvent.click(logo);
|
|
17
|
-
expect(onClick).toHaveBeenCalled();
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
test("Header renders with correct children", () => {
|
|
21
|
-
// We need to force the offsetWidth value
|
|
22
|
-
Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 1024 });
|
|
23
|
-
|
|
24
|
-
const { getByText } = render(<DxcHeader content={<p>header-child-text</p>}></DxcHeader>);
|
|
25
|
-
expect(getByText("header-child-text")).toBeTruthy();
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
test("Header renders menu button in mobile", () => {
|
|
29
|
-
Object.defineProperty(HTMLElement.prototype, "offsetWidth", { configurable: true, value: 425 });
|
|
30
|
-
|
|
31
|
-
const { getByText } = render(<DxcHeader responsiveContent={(closeMenu) => <p>header-child-text</p>}></DxcHeader>);
|
|
32
|
-
expect(getByText("Menu")).toBeTruthy();
|
|
33
|
-
});
|
|
34
|
-
});
|
package/test/Heading.test.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { render } from "@testing-library/react";
|
|
3
|
-
import DxcHeading from "../src/heading/Heading";
|
|
4
|
-
|
|
5
|
-
describe("Heading component tests", () => {
|
|
6
|
-
test("Footer renders with default level", () => {
|
|
7
|
-
const { getByText } = render(<DxcHeading text="my-heading-test"></DxcHeading>);
|
|
8
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
test("Footer renders with level 1", () => {
|
|
12
|
-
const { getByText } = render(<DxcHeading text="my-heading-test" level={1}></DxcHeading>);
|
|
13
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test("Footer renders with level 2", () => {
|
|
17
|
-
const { getByText } = render(<DxcHeading text="my-heading-test" level={2}></DxcHeading>);
|
|
18
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test("Footer renders with level 3", () => {
|
|
22
|
-
const { getByText } = render(<DxcHeading text="my-heading-test" level={3}></DxcHeading>);
|
|
23
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test("Footer renders with level 4", () => {
|
|
27
|
-
const { getByText } = render(<DxcHeading text="my-heading-test" level={4}></DxcHeading>);
|
|
28
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test("Footer renders with level 5", () => {
|
|
32
|
-
const { getByText } = render(<DxcHeading text="my-heading-test" level={5}></DxcHeading>);
|
|
33
|
-
expect(getByText("my-heading-test")).toBeTruthy();
|
|
34
|
-
});
|
|
35
|
-
});
|