@dxc-technology/halstack-react 0.0.0-d30020b → 0.0.0-d3554d7
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/ThemeContext.d.ts +4 -9
- package/ThemeContext.js +32 -32
- package/accordion/Accordion.test.js +57 -0
- package/accordion-group/AccordionGroup.test.js +133 -0
- package/alert/Alert.test.js +92 -0
- package/badge/Badge.d.ts +4 -0
- package/badge/types.d.ts +4 -0
- package/badge/types.js +5 -0
- package/box/Box.test.js +18 -0
- package/button/Button.test.js +35 -0
- package/card/Card.test.js +50 -0
- package/checkbox/Checkbox.test.js +65 -0
- package/chip/Chip.test.js +56 -0
- package/common/variables.js +0 -238
- package/date-input/DateInput.test.js +469 -0
- package/dialog/Dialog.test.js +40 -0
- package/dropdown/Dropdown.test.js +189 -0
- package/file-input/FileInput.test.js +457 -0
- package/footer/Footer.test.js +109 -0
- package/header/Header.test.js +63 -0
- package/heading/Heading.test.js +186 -0
- package/link/Link.test.js +91 -0
- package/main.d.ts +3 -6
- package/main.js +12 -36
- package/number-input/NumberInput.test.js +508 -0
- package/package.json +1 -1
- package/paginator/Paginator.test.js +266 -0
- package/password-input/PasswordInput.test.js +183 -0
- package/progress-bar/ProgressBar.test.js +65 -0
- package/radio/Radio.test.js +71 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +24 -23
- package/radio-group/RadioGroup.js +38 -32
- package/radio-group/RadioGroup.stories.tsx +57 -40
- package/radio-group/RadioGroup.test.js +518 -72
- package/radio-group/types.d.ts +3 -2
- package/resultsetTable/ResultsetTable.test.js +306 -0
- package/select/Select.js +7 -1
- package/select/Select.stories.tsx +72 -62
- package/select/Select.test.js +1900 -0
- package/sidenav/Sidenav.test.js +56 -0
- package/slider/Slider.test.js +129 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.test.js +73 -0
- package/table/Table.test.js +26 -0
- package/tabs/Tabs.test.js +123 -0
- package/tag/Tag.test.js +60 -0
- package/text-input/TextInput.js +5 -3
- package/text-input/TextInput.stories.tsx +20 -2
- package/text-input/TextInput.test.js +1691 -0
- package/textarea/Textarea.js +5 -3
- package/textarea/Textarea.stories.jsx +30 -9
- package/textarea/Textarea.test.js +436 -0
- package/toggle-group/ToggleGroup.test.js +125 -0
- package/wizard/Wizard.test.js +128 -0
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Sidenav = _interopRequireDefault(require("./Sidenav"));
|
|
10
|
+
|
|
11
|
+
var navContent = /*#__PURE__*/_react["default"].createElement("p", null, "nav-content-test");
|
|
12
|
+
|
|
13
|
+
describe("Sidenav component tests", function () {
|
|
14
|
+
test("Sidenav renders nav content", function () {
|
|
15
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, navContent)),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("nav-content-test")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Sidenav renders nav and page content in mobile version", function () {
|
|
21
|
+
//425 is mobile width
|
|
22
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
23
|
+
configurable: true,
|
|
24
|
+
value: 425
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, navContent)),
|
|
28
|
+
getByText = _render2.getByText;
|
|
29
|
+
|
|
30
|
+
expect(getByText("nav-content-test")).toBeTruthy();
|
|
31
|
+
});
|
|
32
|
+
test("Sidenav renders compound components", function () {
|
|
33
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Title, null, "test-title"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Subtitle, null, "test-subtitle"), /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
34
|
+
href: "#"
|
|
35
|
+
}, "test-link"))),
|
|
36
|
+
getByText = _render3.getByText;
|
|
37
|
+
|
|
38
|
+
expect(getByText("test-title")).toBeTruthy();
|
|
39
|
+
expect(getByText("test-subtitle")).toBeTruthy();
|
|
40
|
+
expect(getByText("test-link")).toBeTruthy();
|
|
41
|
+
});
|
|
42
|
+
test("Sidenav link onClick", function () {
|
|
43
|
+
var onClick = jest.fn();
|
|
44
|
+
|
|
45
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Sidenav["default"], null, /*#__PURE__*/_react["default"].createElement(_Sidenav["default"].Link, {
|
|
46
|
+
onClick: onClick
|
|
47
|
+
}, "test-link"))),
|
|
48
|
+
getByText = _render4.getByText;
|
|
49
|
+
|
|
50
|
+
var link = getByText("test-link");
|
|
51
|
+
|
|
52
|
+
_react2.fireEvent.click(link);
|
|
53
|
+
|
|
54
|
+
expect(onClick).toHaveBeenCalled();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Slider = _interopRequireDefault(require("./Slider"));
|
|
10
|
+
|
|
11
|
+
describe("Slider component tests", function () {
|
|
12
|
+
test("Slider renders with correct text", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
14
|
+
minValue: 0,
|
|
15
|
+
maxValue: 100,
|
|
16
|
+
showLimitsValues: true
|
|
17
|
+
})),
|
|
18
|
+
getByText = _render.getByText;
|
|
19
|
+
|
|
20
|
+
expect(getByText("0")).toBeTruthy();
|
|
21
|
+
expect(getByText("100")).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
test("Calls correct function onChange in controlled slider", function () {
|
|
24
|
+
var onChange = jest.fn();
|
|
25
|
+
|
|
26
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
27
|
+
minValue: 0,
|
|
28
|
+
maxValue: 100,
|
|
29
|
+
onChange: onChange,
|
|
30
|
+
showLimitsValues: true,
|
|
31
|
+
value: 13,
|
|
32
|
+
showInput: true
|
|
33
|
+
})),
|
|
34
|
+
getByRole = _render2.getByRole;
|
|
35
|
+
|
|
36
|
+
(0, _react2.act)(function () {
|
|
37
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
38
|
+
target: {
|
|
39
|
+
value: 25
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
expect(onChange).toHaveBeenCalledWith(25);
|
|
44
|
+
});
|
|
45
|
+
test("Calls correct function onChange in uncontrolled slider", function () {
|
|
46
|
+
var onChange = jest.fn();
|
|
47
|
+
|
|
48
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
49
|
+
minValue: 0,
|
|
50
|
+
maxValue: 100,
|
|
51
|
+
onChange: onChange,
|
|
52
|
+
showLimitsValues: true,
|
|
53
|
+
showInput: true
|
|
54
|
+
})),
|
|
55
|
+
getByRole = _render3.getByRole;
|
|
56
|
+
|
|
57
|
+
(0, _react2.act)(function () {
|
|
58
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
59
|
+
target: {
|
|
60
|
+
value: 25
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
expect(onChange).toHaveBeenCalledWith(25);
|
|
65
|
+
});
|
|
66
|
+
test("Disabled slider have disabled input", function () {
|
|
67
|
+
var onChange = jest.fn();
|
|
68
|
+
|
|
69
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
70
|
+
minValue: 0,
|
|
71
|
+
maxValue: 100,
|
|
72
|
+
onChange: onChange,
|
|
73
|
+
showLimitsValues: true,
|
|
74
|
+
disabled: true,
|
|
75
|
+
showInput: true,
|
|
76
|
+
value: 13
|
|
77
|
+
})),
|
|
78
|
+
getByRole = _render4.getByRole;
|
|
79
|
+
|
|
80
|
+
(0, _react2.act)(function () {
|
|
81
|
+
_react2.fireEvent.change(getByRole("textbox"), {
|
|
82
|
+
target: {
|
|
83
|
+
value: 25
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
expect(getByRole("textbox").hasAttribute("disabled")).toBeTruthy();
|
|
88
|
+
expect(getByRole("textbox").value).toBe("13");
|
|
89
|
+
});
|
|
90
|
+
test("Calls correct function onDragEnd", function () {
|
|
91
|
+
var onDragEnd = jest.fn();
|
|
92
|
+
|
|
93
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
94
|
+
minValue: 0,
|
|
95
|
+
maxValue: 100,
|
|
96
|
+
showLimitsValues: true,
|
|
97
|
+
showInput: true,
|
|
98
|
+
onDragEnd: onDragEnd,
|
|
99
|
+
value: 25
|
|
100
|
+
})),
|
|
101
|
+
getByRole = _render5.getByRole;
|
|
102
|
+
|
|
103
|
+
(0, _react2.act)(function () {
|
|
104
|
+
_react2.fireEvent.mouseDown(getByRole("slider"));
|
|
105
|
+
|
|
106
|
+
_react2.fireEvent.mouseUp(getByRole("slider"));
|
|
107
|
+
});
|
|
108
|
+
expect(onDragEnd).toHaveBeenCalled();
|
|
109
|
+
});
|
|
110
|
+
test("Calls correct function labelFormatCallback", function () {
|
|
111
|
+
var labelFormatCallback = jest.fn(function (x) {
|
|
112
|
+
return "".concat(x, "$");
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
|
|
116
|
+
minValue: 0,
|
|
117
|
+
maxValue: 100,
|
|
118
|
+
showLimitsValues: true,
|
|
119
|
+
showInput: true,
|
|
120
|
+
value: 25,
|
|
121
|
+
labelFormatCallback: labelFormatCallback
|
|
122
|
+
})),
|
|
123
|
+
getByText = _render6.getByText;
|
|
124
|
+
|
|
125
|
+
expect(getByText("0$")).toBeTruthy();
|
|
126
|
+
expect(getByText("100$")).toBeTruthy();
|
|
127
|
+
expect(labelFormatCallback).toHaveBeenCalledTimes(2);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Spinner = _interopRequireDefault(require("./Spinner"));
|
|
10
|
+
|
|
11
|
+
describe("Spinner component tests", function () {
|
|
12
|
+
test("Spinner renders with correct label", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
14
|
+
label: "test-loading"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("test-loading")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Spinner shows value correctly", function () {
|
|
21
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
22
|
+
label: "test-loading",
|
|
23
|
+
value: 75,
|
|
24
|
+
showValue: true
|
|
25
|
+
})),
|
|
26
|
+
getByText = _render2.getByText;
|
|
27
|
+
|
|
28
|
+
expect(getByText("75%")).toBeTruthy();
|
|
29
|
+
});
|
|
30
|
+
test("Small spinner hides value and label correctly", function () {
|
|
31
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
32
|
+
mode: "small",
|
|
33
|
+
label: "test-loading",
|
|
34
|
+
value: 75,
|
|
35
|
+
showValue: true
|
|
36
|
+
})),
|
|
37
|
+
queryByText = _render3.queryByText;
|
|
38
|
+
|
|
39
|
+
expect(queryByText("test-loading")).toBeFalsy();
|
|
40
|
+
expect(queryByText("75%")).toBeFalsy();
|
|
41
|
+
});
|
|
42
|
+
test("Overlay spinner shows value and label correctly", function () {
|
|
43
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
44
|
+
mode: "overlay",
|
|
45
|
+
label: "test-loading",
|
|
46
|
+
value: 75,
|
|
47
|
+
showValue: true
|
|
48
|
+
})),
|
|
49
|
+
getByText = _render4.getByText;
|
|
50
|
+
|
|
51
|
+
expect(getByText("test-loading")).toBeTruthy();
|
|
52
|
+
expect(getByText("75%")).toBeTruthy();
|
|
53
|
+
});
|
|
54
|
+
test("Get spinner by role", function () {
|
|
55
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
|
|
56
|
+
label: "test-loading",
|
|
57
|
+
value: 75,
|
|
58
|
+
showValue: true
|
|
59
|
+
})),
|
|
60
|
+
getByRole = _render5.getByRole;
|
|
61
|
+
|
|
62
|
+
expect(getByRole("progressbar")).toBeTruthy();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Switch = _interopRequireDefault(require("./Switch"));
|
|
10
|
+
|
|
11
|
+
describe("Switch component tests", function () {
|
|
12
|
+
test("Switch renders with correct text", function () {
|
|
13
|
+
var onChange = jest.fn(function (returnedValue) {
|
|
14
|
+
expect(returnedValue).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
18
|
+
label: "SwitchComponent",
|
|
19
|
+
checked: false,
|
|
20
|
+
onChange: onChange
|
|
21
|
+
})),
|
|
22
|
+
getByText = _render.getByText;
|
|
23
|
+
|
|
24
|
+
expect(getByText("SwitchComponent")).toBeTruthy();
|
|
25
|
+
});
|
|
26
|
+
test("Calls correct function on click", function () {
|
|
27
|
+
var onChange = jest.fn();
|
|
28
|
+
|
|
29
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
30
|
+
label: "SwitchComponent",
|
|
31
|
+
checked: false,
|
|
32
|
+
onChange: onChange
|
|
33
|
+
})),
|
|
34
|
+
getByText = _render2.getByText;
|
|
35
|
+
|
|
36
|
+
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
37
|
+
|
|
38
|
+
expect(onChange).toHaveBeenCalled();
|
|
39
|
+
});
|
|
40
|
+
test("Everytime the user clicks the component the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
|
|
41
|
+
var onChange = jest.fn();
|
|
42
|
+
|
|
43
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
44
|
+
label: "SwitchComponent",
|
|
45
|
+
checked: false,
|
|
46
|
+
onChange: onChange
|
|
47
|
+
})),
|
|
48
|
+
getByText = _render3.getByText;
|
|
49
|
+
|
|
50
|
+
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
51
|
+
|
|
52
|
+
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
53
|
+
|
|
54
|
+
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
55
|
+
expect(onChange.mock.calls[1][0]).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
test("Everytime the user clicks the component the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
|
|
58
|
+
var onChange = jest.fn();
|
|
59
|
+
|
|
60
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
|
|
61
|
+
label: "SwitchComponent",
|
|
62
|
+
onChange: onChange
|
|
63
|
+
})),
|
|
64
|
+
getByText = _render4.getByText;
|
|
65
|
+
|
|
66
|
+
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
67
|
+
|
|
68
|
+
_react2.fireEvent.click(getByText("SwitchComponent"));
|
|
69
|
+
|
|
70
|
+
expect(onChange.mock.calls[0][0]).toBe(true);
|
|
71
|
+
expect(onChange.mock.calls[1][0]).toBe(false);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Table = _interopRequireDefault(require("./Table"));
|
|
10
|
+
|
|
11
|
+
describe("Table component tests", function () {
|
|
12
|
+
test("Table renders with correct content", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Table["default"], null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("th", null, "header-1"), /*#__PURE__*/_react["default"].createElement("th", null, "header-2"), /*#__PURE__*/_react["default"].createElement("th", null, "header-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-1"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-2"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-3")), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", null, "cell-4"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-5"), /*#__PURE__*/_react["default"].createElement("td", null, "cell-6")))),
|
|
14
|
+
getByText = _render.getByText;
|
|
15
|
+
|
|
16
|
+
expect(getByText("header-1")).toBeTruthy();
|
|
17
|
+
expect(getByText("header-2")).toBeTruthy();
|
|
18
|
+
expect(getByText("header-3")).toBeTruthy();
|
|
19
|
+
expect(getByText("cell-1")).toBeTruthy();
|
|
20
|
+
expect(getByText("cell-2")).toBeTruthy();
|
|
21
|
+
expect(getByText("cell-3")).toBeTruthy();
|
|
22
|
+
expect(getByText("cell-4")).toBeTruthy();
|
|
23
|
+
expect(getByText("cell-5")).toBeTruthy();
|
|
24
|
+
expect(getByText("cell-6")).toBeTruthy();
|
|
25
|
+
});
|
|
26
|
+
});
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Tabs = _interopRequireDefault(require("./Tabs"));
|
|
10
|
+
|
|
11
|
+
var sampleTabs = [{
|
|
12
|
+
label: "Tab-1"
|
|
13
|
+
}, {
|
|
14
|
+
label: "Tab-2"
|
|
15
|
+
}, {
|
|
16
|
+
label: "Tab-3"
|
|
17
|
+
}];
|
|
18
|
+
var sampleTabsWithBadge = [{
|
|
19
|
+
label: "Tab-1",
|
|
20
|
+
notificationNumber: "10"
|
|
21
|
+
}, {
|
|
22
|
+
label: "Tab-2",
|
|
23
|
+
notificationNumber: "20"
|
|
24
|
+
}, {
|
|
25
|
+
label: "Tab-3",
|
|
26
|
+
notificationNumber: "101"
|
|
27
|
+
}];
|
|
28
|
+
describe("Tabs component tests", function () {
|
|
29
|
+
test("Tabs render with correct labels", function () {
|
|
30
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
31
|
+
tabs: sampleTabs
|
|
32
|
+
})),
|
|
33
|
+
getByText = _render.getByText;
|
|
34
|
+
|
|
35
|
+
expect(getByText("Tab-1")).toBeTruthy();
|
|
36
|
+
expect(getByText("Tab-2")).toBeTruthy();
|
|
37
|
+
expect(getByText("Tab-3")).toBeTruthy();
|
|
38
|
+
});
|
|
39
|
+
test("Tabs render with correct labels and badges", function () {
|
|
40
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
41
|
+
tabs: sampleTabsWithBadge
|
|
42
|
+
})),
|
|
43
|
+
getByText = _render2.getByText;
|
|
44
|
+
|
|
45
|
+
expect(getByText("10")).toBeTruthy();
|
|
46
|
+
expect(getByText("20")).toBeTruthy();
|
|
47
|
+
expect(getByText("+99")).toBeTruthy();
|
|
48
|
+
});
|
|
49
|
+
test("Tabs render with correct icons", function () {
|
|
50
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
51
|
+
tabs: [{
|
|
52
|
+
label: "Tab-1",
|
|
53
|
+
icon: "/testIcon1.png"
|
|
54
|
+
}, {
|
|
55
|
+
label: "Tab-2",
|
|
56
|
+
icon: "/testIcon2.png"
|
|
57
|
+
}, {
|
|
58
|
+
label: "Tab-3",
|
|
59
|
+
icon: "/testIcon3.png"
|
|
60
|
+
}]
|
|
61
|
+
})),
|
|
62
|
+
getAllByRole = _render3.getAllByRole;
|
|
63
|
+
|
|
64
|
+
expect(getAllByRole("img")[0].getAttribute("src")).toBe("/testIcon1.png");
|
|
65
|
+
expect(getAllByRole("img")[1].getAttribute("src")).toBe("/testIcon2.png");
|
|
66
|
+
expect(getAllByRole("img")[2].getAttribute("src")).toBe("/testIcon3.png");
|
|
67
|
+
});
|
|
68
|
+
test("Tabs render with disabled tab", function () {
|
|
69
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
70
|
+
tabs: [{
|
|
71
|
+
label: "Tab-1",
|
|
72
|
+
isDisabled: true
|
|
73
|
+
}, {
|
|
74
|
+
label: "Tab-2"
|
|
75
|
+
}]
|
|
76
|
+
})),
|
|
77
|
+
getAllByRole = _render4.getAllByRole;
|
|
78
|
+
|
|
79
|
+
expect(getAllByRole("tab")[0].hasAttribute("disabled")).toBeTruthy();
|
|
80
|
+
expect(getAllByRole("tab")[1].hasAttribute("disabled")).toBeFalsy();
|
|
81
|
+
});
|
|
82
|
+
test("Uncontrolled tabs", function () {
|
|
83
|
+
var onTabClick = jest.fn();
|
|
84
|
+
|
|
85
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
86
|
+
tabs: sampleTabs,
|
|
87
|
+
onTabClick: onTabClick
|
|
88
|
+
})),
|
|
89
|
+
getByText = _render5.getByText;
|
|
90
|
+
|
|
91
|
+
var tab1 = getByText("Tab-1");
|
|
92
|
+
var tab2 = getByText("Tab-2");
|
|
93
|
+
|
|
94
|
+
_react2.fireEvent.click(tab2);
|
|
95
|
+
|
|
96
|
+
expect(onTabClick).toHaveBeenCalledWith(1);
|
|
97
|
+
|
|
98
|
+
_react2.fireEvent.click(tab1);
|
|
99
|
+
|
|
100
|
+
expect(onTabClick).toHaveBeenCalledWith(0);
|
|
101
|
+
});
|
|
102
|
+
test("Controlled tabs", function () {
|
|
103
|
+
var onTabClick = jest.fn();
|
|
104
|
+
|
|
105
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
|
|
106
|
+
tabs: sampleTabs,
|
|
107
|
+
onTabClick: onTabClick,
|
|
108
|
+
activeTabIndex: 0
|
|
109
|
+
})),
|
|
110
|
+
getByText = _render6.getByText;
|
|
111
|
+
|
|
112
|
+
var tab2 = getByText("Tab-2");
|
|
113
|
+
var tab3 = getByText("Tab-3");
|
|
114
|
+
|
|
115
|
+
_react2.fireEvent.click(tab2);
|
|
116
|
+
|
|
117
|
+
expect(onTabClick).toHaveBeenCalledWith(1);
|
|
118
|
+
|
|
119
|
+
_react2.fireEvent.click(tab3);
|
|
120
|
+
|
|
121
|
+
expect(onTabClick).toHaveBeenCalledWith(2);
|
|
122
|
+
});
|
|
123
|
+
});
|
package/tag/Tag.test.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Tag = _interopRequireDefault(require("./Tag"));
|
|
10
|
+
|
|
11
|
+
describe("Tag component tests", function () {
|
|
12
|
+
test("Tag renders with correct label", function () {
|
|
13
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
14
|
+
label: "tag-test"
|
|
15
|
+
})),
|
|
16
|
+
getByText = _render.getByText;
|
|
17
|
+
|
|
18
|
+
expect(getByText("tag-test")).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
test("Tag renders with correct label before", function () {
|
|
21
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
22
|
+
label: "tag-test",
|
|
23
|
+
labelPosition: "before"
|
|
24
|
+
})),
|
|
25
|
+
getByText = _render2.getByText;
|
|
26
|
+
|
|
27
|
+
expect(getByText("tag-test")).toBeTruthy();
|
|
28
|
+
});
|
|
29
|
+
test("Tag renders with correct icon", function () {
|
|
30
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
31
|
+
label: "tag-test",
|
|
32
|
+
icon: "/test-icon.jpg"
|
|
33
|
+
})),
|
|
34
|
+
getByRole = _render3.getByRole;
|
|
35
|
+
|
|
36
|
+
expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
|
|
37
|
+
});
|
|
38
|
+
test("Tag renders with link href", function () {
|
|
39
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
40
|
+
label: "tag-test",
|
|
41
|
+
linkHref: "/test/page"
|
|
42
|
+
})),
|
|
43
|
+
getByRole = _render4.getByRole;
|
|
44
|
+
|
|
45
|
+
expect(getByRole("link").getAttribute("href")).toBe("/test/page");
|
|
46
|
+
});
|
|
47
|
+
test("Call correct function on click", function () {
|
|
48
|
+
var onClick = jest.fn();
|
|
49
|
+
|
|
50
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
51
|
+
label: "tag-test",
|
|
52
|
+
onClick: onClick
|
|
53
|
+
})),
|
|
54
|
+
getByText = _render5.getByText;
|
|
55
|
+
|
|
56
|
+
_react2.fireEvent.click(getByText("tag-test"));
|
|
57
|
+
|
|
58
|
+
expect(onClick).toHaveBeenCalled();
|
|
59
|
+
});
|
|
60
|
+
});
|
package/text-input/TextInput.js
CHANGED
|
@@ -205,7 +205,7 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
205
205
|
var colorsTheme = (0, _useTheme["default"])();
|
|
206
206
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
207
207
|
var autosuggestId = "".concat(inputId, "-listBox");
|
|
208
|
-
var errorId = "error-
|
|
208
|
+
var errorId = "error-".concat(inputId);
|
|
209
209
|
var numberInputContext = (0, _react.useContext)(_NumberInputContext["default"]);
|
|
210
210
|
var lastOptionIndex = (0, _react.useMemo)(function () {
|
|
211
211
|
return getLastOptionIndex(filteredSuggestions);
|
|
@@ -539,10 +539,11 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
539
539
|
role: isTextInputType() && hasSuggestions() ? "combobox" : "textbox",
|
|
540
540
|
"aria-autocomplete": isTextInputType() && hasSuggestions() ? "list" : undefined,
|
|
541
541
|
"aria-controls": isTextInputType() && hasSuggestions() ? autosuggestId : undefined,
|
|
542
|
+
"aria-disabled": disabled,
|
|
542
543
|
"aria-expanded": isTextInputType() && hasSuggestions() ? isOpen ? "true" : "false" : undefined,
|
|
543
544
|
"aria-activedescendant": isTextInputType() && hasSuggestions() && isOpen && visualFocusedSuggIndex !== -1 ? "suggestion-".concat(visualFocusedSuggIndex) : undefined,
|
|
544
545
|
"aria-invalid": error ? "true" : "false",
|
|
545
|
-
"aria-
|
|
546
|
+
"aria-errormessage": error ? errorId : undefined,
|
|
546
547
|
"aria-required": optional ? "false" : "true"
|
|
547
548
|
}), !disabled && error && /*#__PURE__*/_react["default"].createElement(ErrorIcon, {
|
|
548
549
|
backgroundType: backgroundType,
|
|
@@ -621,7 +622,8 @@ var DxcTextInput = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
|
|
|
621
622
|
backgroundType: backgroundType
|
|
622
623
|
}, textInputIcons.error), "Error fetching data"))), !disabled && typeof error === "string" && /*#__PURE__*/_react["default"].createElement(Error, {
|
|
623
624
|
id: errorId,
|
|
624
|
-
backgroundType: backgroundType
|
|
625
|
+
backgroundType: backgroundType,
|
|
626
|
+
"aria-live": error ? "assertive" : "off"
|
|
625
627
|
}, error)));
|
|
626
628
|
});
|
|
627
629
|
|
|
@@ -113,6 +113,15 @@ export const Chromatic = () => (
|
|
|
113
113
|
action={action}
|
|
114
114
|
/>
|
|
115
115
|
</ExampleContainer>
|
|
116
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
117
|
+
<Title title="Invalid and hovered" theme="light" level={4} />
|
|
118
|
+
<DxcTextInput
|
|
119
|
+
label="Error text input"
|
|
120
|
+
helperText="Help message"
|
|
121
|
+
placeholder="Placeholder"
|
|
122
|
+
error="Error message."
|
|
123
|
+
/>
|
|
124
|
+
</ExampleContainer>
|
|
116
125
|
<ExampleContainer>
|
|
117
126
|
<Title title="Disabled and placeholder" theme="light" level={4} />
|
|
118
127
|
<DxcTextInput label="Disabled text input" disabled placeholder="Placeholder" />
|
|
@@ -168,9 +177,9 @@ export const Chromatic = () => (
|
|
|
168
177
|
/>
|
|
169
178
|
</ExampleContainer>
|
|
170
179
|
<ExampleContainer>
|
|
171
|
-
<Title title="
|
|
180
|
+
<Title title="Invalid" theme="dark" level={4} />
|
|
172
181
|
<DxcTextInput
|
|
173
|
-
label="
|
|
182
|
+
label="Error text input"
|
|
174
183
|
helperText="Help message"
|
|
175
184
|
error="Error message."
|
|
176
185
|
value="Text"
|
|
@@ -178,6 +187,15 @@ export const Chromatic = () => (
|
|
|
178
187
|
action={action}
|
|
179
188
|
/>
|
|
180
189
|
</ExampleContainer>
|
|
190
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
191
|
+
<Title title="Invalid and hovered" theme="dark" level={4} />
|
|
192
|
+
<DxcTextInput
|
|
193
|
+
label="Error text input"
|
|
194
|
+
helperText="Help message"
|
|
195
|
+
placeholder="Placeholder"
|
|
196
|
+
error="Error message."
|
|
197
|
+
/>
|
|
198
|
+
</ExampleContainer>
|
|
181
199
|
<ExampleContainer>
|
|
182
200
|
<Title title="Prefix and suffix" theme="dark" level={4} />
|
|
183
201
|
<DxcTextInput label="With prefix and suffix" prefix="+34" suffix="USD" />
|