@dxc-technology/halstack-react 0.0.0-aa03ee1 → 0.0.0-aa15b96
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 +25 -17
- package/accordion/Accordion.test.js +57 -0
- package/accordion-group/AccordionGroup.test.js +133 -0
- package/alert/Alert.test.js +92 -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 -5
- 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/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 +39 -32
- package/radio-group/RadioGroup.stories.tsx +60 -39
- package/radio-group/RadioGroup.test.js +530 -83
- package/radio-group/types.d.ts +80 -2
- package/resultsetTable/ResultsetTable.test.js +306 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.js +43 -172
- package/select/Select.test.js +1900 -0
- package/select/types.d.ts +13 -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.test.js +1691 -0
- package/textarea/Textarea.test.js +436 -0
- package/toggle-group/ToggleGroup.test.js +125 -0
- package/wizard/Wizard.test.js +128 -0
package/select/types.d.ts
CHANGED
|
@@ -163,6 +163,19 @@ declare type MultipleSelect = CommonProps & {
|
|
|
163
163
|
}) => void;
|
|
164
164
|
};
|
|
165
165
|
declare type Props = SingleSelect | MultipleSelect;
|
|
166
|
+
/**
|
|
167
|
+
* Single option of the select component.
|
|
168
|
+
*/
|
|
169
|
+
export declare type OptionProps = {
|
|
170
|
+
id: string;
|
|
171
|
+
option: Option;
|
|
172
|
+
onClick: (option: Option) => void;
|
|
173
|
+
multiple: boolean;
|
|
174
|
+
visualFocused: boolean;
|
|
175
|
+
isGroupedOption: boolean;
|
|
176
|
+
isLastOption: boolean;
|
|
177
|
+
isSelected: boolean;
|
|
178
|
+
};
|
|
166
179
|
/**
|
|
167
180
|
* Reference to the component.
|
|
168
181
|
*/
|
|
@@ -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
|
+
});
|