@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3ac293
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.d.ts +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1336 -0
- package/HalstackContext.js +335 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +118 -126
- package/accordion/Accordion.stories.tsx +115 -27
- package/accordion/Accordion.test.js +26 -12
- package/accordion/types.d.ts +9 -4
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +17 -38
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +31 -38
- package/accordion-group/types.d.ts +14 -3
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +25 -1
- package/box/Box.js +25 -37
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/button/Button.js +52 -69
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +7 -7
- package/card/Card.js +25 -28
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +107 -110
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +101 -11
- package/checkbox/types.d.ts +13 -5
- package/chip/Chip.js +18 -24
- package/chip/Chip.stories.tsx +96 -9
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1625 -0
- package/common/variables.js +483 -352
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +169 -258
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +521 -155
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +67 -9
- package/dialog/Dialog.js +76 -93
- package/dialog/Dialog.stories.tsx +230 -123
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -253
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +181 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/footer/Footer.js +16 -89
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +14 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +108 -129
- package/header/Header.stories.tsx +189 -36
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +72 -132
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +59 -76
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +7 -23
- package/main.d.ts +8 -10
- package/main.js +46 -56
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +125 -0
- package/nav-tabs/NavTabs.stories.tsx +260 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +150 -0
- package/nav-tabs/types.d.ts +53 -0
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +46 -12
- package/number-input/types.d.ts +17 -10
- package/package.json +20 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +78 -39
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +17 -19
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +32 -28
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +145 -117
- package/radio-group/types.d.ts +79 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +2 -2
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +97 -0
- package/select/Select.js +179 -384
- package/select/Select.stories.tsx +531 -142
- package/select/Select.test.js +652 -324
- package/select/types.d.ts +53 -13
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +183 -53
- package/sidenav/Sidenav.stories.tsx +249 -149
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +124 -98
- package/slider/Slider.stories.tsx +72 -9
- package/slider/Slider.test.js +143 -22
- package/slider/types.d.ts +10 -2
- package/spinner/Spinner.js +4 -4
- package/spinner/Spinner.stories.jsx +27 -1
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -69
- package/switch/Switch.stories.tsx +53 -42
- package/switch/Switch.test.js +156 -4
- package/switch/types.d.ts +12 -4
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +363 -109
- package/tabs/Tabs.stories.tsx +119 -13
- package/tabs/Tabs.test.js +241 -14
- package/tabs/types.d.ts +19 -5
- package/tag/Tag.js +17 -22
- package/tag/Tag.stories.tsx +25 -8
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +221 -344
- package/text-input/TextInput.stories.tsx +290 -195
- package/text-input/TextInput.test.js +763 -731
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +17 -26
- package/textarea/Textarea.stories.jsx +65 -6
- package/textarea/Textarea.test.js +38 -37
- package/textarea/types.d.ts +18 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +6 -5
- package/toggle-group/ToggleGroup.stories.tsx +46 -4
- package/toggle-group/ToggleGroup.test.js +36 -5
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +3 -3
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +59 -55
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +37 -24
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → nav-tabs}/types.js +0 -0
- /package/{stack → quick-nav}/types.js +0 -0
|
@@ -2,14 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
|
|
11
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
|
+
|
|
5
13
|
var _react = _interopRequireDefault(require("react"));
|
|
6
14
|
|
|
7
15
|
var _react2 = require("@testing-library/react");
|
|
8
16
|
|
|
9
17
|
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
10
18
|
|
|
11
|
-
var
|
|
12
|
-
|
|
19
|
+
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
20
|
+
|
|
21
|
+
var _DateInput = _interopRequireDefault(require("./DateInput.tsx"));
|
|
22
|
+
|
|
23
|
+
// Mocking DOMRect for Radix Primitive Popover
|
|
24
|
+
global.globalThis = global;
|
|
25
|
+
|
|
26
|
+
global.ResizeObserver = /*#__PURE__*/function () {
|
|
27
|
+
function ResizeObserver(cb) {
|
|
28
|
+
(0, _classCallCheck2["default"])(this, ResizeObserver);
|
|
29
|
+
this.cb = cb;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
(0, _createClass2["default"])(ResizeObserver, [{
|
|
33
|
+
key: "observe",
|
|
34
|
+
value: function observe() {
|
|
35
|
+
this.cb([{
|
|
36
|
+
borderBoxSize: {
|
|
37
|
+
inlineSize: 0,
|
|
38
|
+
blockSize: 0
|
|
39
|
+
}
|
|
40
|
+
}]);
|
|
41
|
+
}
|
|
42
|
+
}, {
|
|
43
|
+
key: "unobserve",
|
|
44
|
+
value: function unobserve() {}
|
|
45
|
+
}]);
|
|
46
|
+
return ResizeObserver;
|
|
47
|
+
}();
|
|
48
|
+
|
|
49
|
+
global.DOMRect = {
|
|
50
|
+
fromRect: function fromRect() {
|
|
51
|
+
return {
|
|
52
|
+
top: 0,
|
|
53
|
+
left: 0,
|
|
54
|
+
bottom: 0,
|
|
55
|
+
right: 0,
|
|
56
|
+
width: 0,
|
|
57
|
+
height: 0
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
};
|
|
13
61
|
describe("DateInput component tests", function () {
|
|
14
62
|
test("Renders with correct label, helper text, optional, placeholder and clearable action", function () {
|
|
15
63
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
@@ -37,7 +85,7 @@ describe("DateInput component tests", function () {
|
|
|
37
85
|
|
|
38
86
|
expect(input.value).toBe("");
|
|
39
87
|
});
|
|
40
|
-
test("Renders with
|
|
88
|
+
test("Renders with custom error", function () {
|
|
41
89
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
42
90
|
error: "Personalized error."
|
|
43
91
|
})),
|
|
@@ -45,120 +93,184 @@ describe("DateInput component tests", function () {
|
|
|
45
93
|
|
|
46
94
|
expect(getByText("Personalized error.")).toBeTruthy();
|
|
47
95
|
});
|
|
48
|
-
test("Renders with
|
|
49
|
-
var onBlur = jest.fn(function (_ref) {
|
|
50
|
-
var value = _ref.value,
|
|
51
|
-
error = _ref.error;
|
|
52
|
-
expect(value).toBe("10/90/2010");
|
|
53
|
-
expect(error).toBe("Invalid date.");
|
|
54
|
-
});
|
|
55
|
-
|
|
96
|
+
test("Renders with an initial value when it is uncontrolled", function () {
|
|
56
97
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
57
|
-
label: "
|
|
58
|
-
|
|
59
|
-
|
|
98
|
+
label: "Default label",
|
|
99
|
+
placeholder: "Placeholder",
|
|
100
|
+
defaultValue: "21-10-2015"
|
|
60
101
|
})),
|
|
102
|
+
getByText = _render3.getByText,
|
|
61
103
|
getByRole = _render3.getByRole;
|
|
62
104
|
|
|
63
105
|
var input = getByRole("textbox");
|
|
106
|
+
var calendarAction = getByRole("combobox");
|
|
107
|
+
expect(input.value).toBe("21-10-2015");
|
|
64
108
|
|
|
65
|
-
_userEvent["default"].
|
|
66
|
-
|
|
67
|
-
_react2.fireEvent.blur(input);
|
|
68
|
-
});
|
|
69
|
-
test("Renders with correct format: user typed date but it's invalid, onChange error", function () {
|
|
70
|
-
var onChange = jest.fn();
|
|
71
|
-
|
|
72
|
-
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
73
|
-
label: "With format MM/dd/yyyy",
|
|
74
|
-
format: "MM/dd/yyyy",
|
|
75
|
-
onChange: onChange
|
|
76
|
-
})),
|
|
77
|
-
getByRole = _render4.getByRole;
|
|
78
|
-
|
|
79
|
-
var input = getByRole("textbox");
|
|
80
|
-
|
|
81
|
-
_userEvent["default"].type(input, "10/90/2010");
|
|
109
|
+
_userEvent["default"].click(calendarAction);
|
|
82
110
|
|
|
83
|
-
expect(
|
|
84
|
-
expect(
|
|
85
|
-
value: "10/90/2010",
|
|
86
|
-
error: "Invalid date.",
|
|
87
|
-
date: null
|
|
88
|
-
});
|
|
111
|
+
expect(getByText("21").getAttribute("aria-selected")).toBe("true");
|
|
112
|
+
expect(getByText("October 2015")).toBeTruthy();
|
|
89
113
|
});
|
|
114
|
+
test("Renders with correct format: user typed date but it's invalid, onBlur error", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
115
|
+
var onBlur, _render4, getByRole, input;
|
|
116
|
+
|
|
117
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
118
|
+
while (1) {
|
|
119
|
+
switch (_context.prev = _context.next) {
|
|
120
|
+
case 0:
|
|
121
|
+
onBlur = jest.fn(function (_ref2) {
|
|
122
|
+
var value = _ref2.value,
|
|
123
|
+
error = _ref2.error;
|
|
124
|
+
expect(value).toBe("10/90/2010");
|
|
125
|
+
expect(error).toBe("Invalid date.");
|
|
126
|
+
});
|
|
127
|
+
_render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
128
|
+
label: "With format MM/dd/yyyy",
|
|
129
|
+
format: "MM/dd/yyyy",
|
|
130
|
+
onBlur: onBlur
|
|
131
|
+
})), getByRole = _render4.getByRole;
|
|
132
|
+
input = getByRole("textbox");
|
|
133
|
+
|
|
134
|
+
_userEvent["default"].click(input);
|
|
135
|
+
|
|
136
|
+
_context.next = 6;
|
|
137
|
+
return _userEvent["default"].keyboard("10");
|
|
138
|
+
|
|
139
|
+
case 6:
|
|
140
|
+
_context.next = 8;
|
|
141
|
+
return _userEvent["default"].keyboard("/");
|
|
142
|
+
|
|
143
|
+
case 8:
|
|
144
|
+
_context.next = 10;
|
|
145
|
+
return _userEvent["default"].keyboard("90");
|
|
146
|
+
|
|
147
|
+
case 10:
|
|
148
|
+
_context.next = 12;
|
|
149
|
+
return _userEvent["default"].keyboard("/");
|
|
150
|
+
|
|
151
|
+
case 12:
|
|
152
|
+
_context.next = 14;
|
|
153
|
+
return _userEvent["default"].keyboard("2010");
|
|
154
|
+
|
|
155
|
+
case 14:
|
|
156
|
+
_react2.fireEvent.blur(input);
|
|
157
|
+
|
|
158
|
+
case 15:
|
|
159
|
+
case "end":
|
|
160
|
+
return _context.stop();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}, _callee);
|
|
164
|
+
})));
|
|
165
|
+
test("Renders with correct format: user typed date but it's invalid, onChange error", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
166
|
+
var onChange, _render5, getByRole, input;
|
|
167
|
+
|
|
168
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
169
|
+
while (1) {
|
|
170
|
+
switch (_context2.prev = _context2.next) {
|
|
171
|
+
case 0:
|
|
172
|
+
onChange = jest.fn();
|
|
173
|
+
_render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
174
|
+
label: "With format MM/dd/yyyy",
|
|
175
|
+
format: "MM/dd/yyyy",
|
|
176
|
+
onChange: onChange
|
|
177
|
+
})), getByRole = _render5.getByRole;
|
|
178
|
+
input = getByRole("textbox");
|
|
179
|
+
|
|
180
|
+
_userEvent["default"].click(input);
|
|
181
|
+
|
|
182
|
+
_context2.next = 6;
|
|
183
|
+
return _userEvent["default"].keyboard("10");
|
|
184
|
+
|
|
185
|
+
case 6:
|
|
186
|
+
_context2.next = 8;
|
|
187
|
+
return _userEvent["default"].keyboard("/");
|
|
188
|
+
|
|
189
|
+
case 8:
|
|
190
|
+
_context2.next = 10;
|
|
191
|
+
return _userEvent["default"].keyboard("90");
|
|
192
|
+
|
|
193
|
+
case 10:
|
|
194
|
+
_context2.next = 12;
|
|
195
|
+
return _userEvent["default"].keyboard("/");
|
|
196
|
+
|
|
197
|
+
case 12:
|
|
198
|
+
_context2.next = 14;
|
|
199
|
+
return _userEvent["default"].keyboard("2010");
|
|
200
|
+
|
|
201
|
+
case 14:
|
|
202
|
+
expect(onChange).toHaveBeenCalledTimes(10);
|
|
203
|
+
expect(onChange).toHaveBeenCalledWith({
|
|
204
|
+
value: "10/90/2010",
|
|
205
|
+
error: "Invalid date."
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
case 16:
|
|
209
|
+
case "end":
|
|
210
|
+
return _context2.stop();
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}, _callee2);
|
|
214
|
+
})));
|
|
90
215
|
test("Calendar renders with correct date: today's date", function () {
|
|
91
|
-
var
|
|
92
|
-
getByText =
|
|
93
|
-
getByRole =
|
|
216
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
217
|
+
getByText = _render6.getByText,
|
|
218
|
+
getByRole = _render6.getByRole,
|
|
219
|
+
getAllByText = _render6.getAllByText;
|
|
94
220
|
|
|
95
|
-
var calendarAction = getByRole("
|
|
96
|
-
var d =
|
|
97
|
-
var options = {
|
|
98
|
-
weekday: "short",
|
|
99
|
-
month: "short",
|
|
100
|
-
day: "numeric"
|
|
101
|
-
};
|
|
221
|
+
var calendarAction = getByRole("combobox");
|
|
222
|
+
var d = (0, _dayjs["default"])();
|
|
102
223
|
|
|
103
224
|
_userEvent["default"].click(calendarAction);
|
|
104
225
|
|
|
105
|
-
expect(
|
|
226
|
+
expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
|
|
227
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
106
228
|
});
|
|
107
229
|
test("Calendar renders with correct date: value prop", function () {
|
|
108
|
-
var
|
|
230
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
109
231
|
value: "20-10-2019"
|
|
110
232
|
})),
|
|
111
|
-
getByText =
|
|
112
|
-
getByRole =
|
|
233
|
+
getByText = _render7.getByText,
|
|
234
|
+
getByRole = _render7.getByRole,
|
|
235
|
+
getAllByText = _render7.getAllByText;
|
|
113
236
|
|
|
114
|
-
var calendarAction = getByRole("
|
|
115
|
-
var d =
|
|
116
|
-
var options = {
|
|
117
|
-
weekday: "short",
|
|
118
|
-
month: "short",
|
|
119
|
-
day: "numeric"
|
|
120
|
-
};
|
|
237
|
+
var calendarAction = getByRole("combobox");
|
|
238
|
+
var d = (0, _dayjs["default"])("2019-10-20");
|
|
121
239
|
|
|
122
240
|
_userEvent["default"].click(calendarAction);
|
|
123
241
|
|
|
124
|
-
expect(
|
|
242
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
243
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
125
244
|
});
|
|
126
245
|
test("Calendar renders with correct date: user typed value", function () {
|
|
127
|
-
var
|
|
128
|
-
getByText =
|
|
129
|
-
getByRole =
|
|
246
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
247
|
+
getByText = _render8.getByText,
|
|
248
|
+
getByRole = _render8.getByRole,
|
|
249
|
+
getAllByText = _render8.getAllByText;
|
|
130
250
|
|
|
131
|
-
var calendarAction = getByRole("
|
|
132
|
-
var d =
|
|
133
|
-
var options = {
|
|
134
|
-
weekday: "short",
|
|
135
|
-
month: "short",
|
|
136
|
-
day: "numeric"
|
|
137
|
-
};
|
|
251
|
+
var calendarAction = getByRole("combobox");
|
|
252
|
+
var d = (0, _dayjs["default"])("2010-1-1");
|
|
138
253
|
var input = getByRole("textbox");
|
|
139
254
|
|
|
140
255
|
_userEvent["default"].type(input, "01-01-2010");
|
|
141
256
|
|
|
142
257
|
_userEvent["default"].click(calendarAction);
|
|
143
258
|
|
|
144
|
-
expect(
|
|
259
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
260
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
145
261
|
});
|
|
146
262
|
test("Calendar renders with correct date: invalid date, renders with today's date", function () {
|
|
147
263
|
var onBlur = jest.fn();
|
|
148
264
|
|
|
149
|
-
var
|
|
265
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
150
266
|
onBlur: onBlur
|
|
151
267
|
})),
|
|
152
|
-
getByText =
|
|
153
|
-
getByRole =
|
|
268
|
+
getByText = _render9.getByText,
|
|
269
|
+
getByRole = _render9.getByRole,
|
|
270
|
+
getAllByText = _render9.getAllByText;
|
|
154
271
|
|
|
155
|
-
var calendarAction = getByRole("
|
|
156
|
-
var d =
|
|
157
|
-
var options = {
|
|
158
|
-
weekday: "short",
|
|
159
|
-
month: "short",
|
|
160
|
-
day: "numeric"
|
|
161
|
-
};
|
|
272
|
+
var calendarAction = getByRole("combobox");
|
|
273
|
+
var d = (0, _dayjs["default"])();
|
|
162
274
|
var input = getByRole("textbox");
|
|
163
275
|
|
|
164
276
|
_userEvent["default"].type(input, "01-01-xxxx");
|
|
@@ -168,106 +280,300 @@ describe("DateInput component tests", function () {
|
|
|
168
280
|
expect(onBlur).toHaveBeenCalled();
|
|
169
281
|
expect(onBlur).toHaveBeenCalledWith({
|
|
170
282
|
value: "01-01-xxxx",
|
|
171
|
-
error: "Invalid date."
|
|
172
|
-
date: null
|
|
283
|
+
error: "Invalid date."
|
|
173
284
|
});
|
|
174
285
|
|
|
175
286
|
_userEvent["default"].click(calendarAction);
|
|
176
287
|
|
|
177
|
-
expect(
|
|
288
|
+
expect(document.activeElement === getAllByText(d.get("date")).length === 2 && +d.get("date") > 20 ? getAllByText(d.get("date"))[1] : getAllByText(d.get("date"))[0]).toBeTruthy();
|
|
289
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
178
290
|
});
|
|
179
291
|
test("Selecting a date from the calendar with an specific format", function () {
|
|
180
|
-
var
|
|
292
|
+
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
181
293
|
label: "With format M-dd-yyyy",
|
|
182
294
|
format: "M-dd-yyyy"
|
|
183
295
|
})),
|
|
184
|
-
|
|
185
|
-
|
|
296
|
+
getAllByText = _render10.getAllByText,
|
|
297
|
+
getByText = _render10.getByText,
|
|
298
|
+
getByRole = _render10.getByRole;
|
|
186
299
|
|
|
187
300
|
var input = getByRole("textbox");
|
|
188
|
-
var calendarAction = getByRole("
|
|
301
|
+
var calendarAction = getByRole("combobox");
|
|
189
302
|
|
|
190
303
|
_userEvent["default"].click(calendarAction);
|
|
191
304
|
|
|
192
|
-
var dayButton =
|
|
305
|
+
var dayButton = getAllByText("10")[0].closest("button");
|
|
193
306
|
|
|
194
307
|
_react2.fireEvent.click(dayButton);
|
|
195
308
|
|
|
196
|
-
var d =
|
|
197
|
-
d.
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
309
|
+
var d = (0, _dayjs["default"])();
|
|
310
|
+
d = d.set("date", 10);
|
|
311
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
312
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
313
|
+
|
|
314
|
+
_react2.fireEvent.keyDown(document, {
|
|
315
|
+
key: "Escape",
|
|
316
|
+
code: "Escape",
|
|
317
|
+
keyCode: 27,
|
|
318
|
+
charCode: 27
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
expect(input.value).toBe(d.format("M-DD-YYYY"));
|
|
322
|
+
});
|
|
323
|
+
test("Changing months using the arrows", function () {
|
|
324
|
+
var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
325
|
+
label: "label",
|
|
326
|
+
format: "dd-mm-yyyy",
|
|
327
|
+
defaultValue: "10-10-2000"
|
|
328
|
+
})),
|
|
329
|
+
getByText = _render11.getByText,
|
|
330
|
+
getByRole = _render11.getByRole,
|
|
331
|
+
getByTitle = _render11.getByTitle;
|
|
332
|
+
|
|
333
|
+
var calendarAction = getByRole("combobox");
|
|
334
|
+
|
|
335
|
+
_userEvent["default"].click(calendarAction);
|
|
336
|
+
|
|
337
|
+
var d = (0, _dayjs["default"])("10-10-2000", "DD-MM-YYYY", true);
|
|
338
|
+
d = d.set("date", 10);
|
|
339
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
340
|
+
var previousMonth = getByTitle("Previous month");
|
|
341
|
+
|
|
342
|
+
_userEvent["default"].click(previousMonth);
|
|
343
|
+
|
|
344
|
+
expect(getByText(d.set("month", d.get("month") - 1).format("MMMM YYYY"))).toBeTruthy();
|
|
345
|
+
var nextMonth = getByTitle("Next month");
|
|
346
|
+
|
|
347
|
+
_userEvent["default"].click(nextMonth);
|
|
348
|
+
|
|
349
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
350
|
+
});
|
|
351
|
+
test("Selecting a date from the calendar from another month", function () {
|
|
352
|
+
var _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
353
|
+
format: "dd-mm-yyyy",
|
|
354
|
+
defaultValue: "10-08-2021"
|
|
355
|
+
})),
|
|
356
|
+
getAllByText = _render12.getAllByText,
|
|
357
|
+
getByText = _render12.getByText,
|
|
358
|
+
getByRole = _render12.getByRole;
|
|
359
|
+
|
|
360
|
+
var input = getByRole("textbox");
|
|
361
|
+
var calendarAction = getByRole("combobox");
|
|
362
|
+
|
|
363
|
+
_userEvent["default"].click(calendarAction);
|
|
364
|
+
|
|
365
|
+
var dayButton = getAllByText("31")[0].closest("button");
|
|
366
|
+
|
|
367
|
+
_react2.fireEvent.click(dayButton);
|
|
368
|
+
|
|
369
|
+
var d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
|
|
370
|
+
d = d.set("date", 31).set("month", 6);
|
|
371
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
372
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
373
|
+
|
|
374
|
+
_react2.fireEvent.keyDown(document, {
|
|
375
|
+
key: "Escape",
|
|
376
|
+
code: "Escape",
|
|
377
|
+
keyCode: 27,
|
|
378
|
+
charCode: 27
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
expect(input.value).toBe(d.format("DD-MM-YYYY"));
|
|
382
|
+
});
|
|
383
|
+
test("Selecting a year from the calendar year picker", function () {
|
|
384
|
+
var _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
385
|
+
format: "dd-mm-yyyy",
|
|
386
|
+
defaultValue: "10-08-2021"
|
|
387
|
+
})),
|
|
388
|
+
getByText = _render13.getByText,
|
|
389
|
+
getByRole = _render13.getByRole;
|
|
390
|
+
|
|
391
|
+
var input = getByRole("textbox");
|
|
392
|
+
var calendarAction = getByRole("combobox");
|
|
393
|
+
|
|
394
|
+
_userEvent["default"].click(calendarAction);
|
|
395
|
+
|
|
396
|
+
var d = (0, _dayjs["default"])("10-08-2021", "DD-MM-YYYY", true);
|
|
397
|
+
|
|
398
|
+
_userEvent["default"].click(getByText(d.format("MMMM YYYY")));
|
|
399
|
+
|
|
400
|
+
expect(getByText("2024")).toBeTruthy();
|
|
401
|
+
|
|
402
|
+
_userEvent["default"].click(getByText("2024"));
|
|
403
|
+
|
|
404
|
+
_userEvent["default"].click(getByText(d.set("year", 2024).format("MMMM YYYY")));
|
|
204
405
|
|
|
205
406
|
_react2.fireEvent.keyDown(document, {
|
|
206
|
-
key: "
|
|
207
|
-
code: "
|
|
407
|
+
key: "Escape",
|
|
408
|
+
code: "Escape",
|
|
208
409
|
keyCode: 27,
|
|
209
410
|
charCode: 27
|
|
210
411
|
});
|
|
211
412
|
|
|
212
|
-
expect(input.value).toBe(
|
|
413
|
+
expect(input.value).toBe(d.format("DD-MM-YYYY"));
|
|
213
414
|
});
|
|
214
415
|
test("Selecting a date from the calendar (using keyboard presses)", function () {
|
|
215
|
-
var
|
|
216
|
-
getByRole =
|
|
416
|
+
var _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
417
|
+
getByRole = _render14.getByRole,
|
|
418
|
+
getAllByText = _render14.getAllByText,
|
|
419
|
+
getByText = _render14.getByText;
|
|
217
420
|
|
|
218
|
-
var calendarAction = getByRole("
|
|
421
|
+
var calendarAction = getByRole("combobox");
|
|
219
422
|
var input = getByRole("textbox");
|
|
220
423
|
|
|
221
424
|
_userEvent["default"].type(input, "01-01-2010");
|
|
222
425
|
|
|
426
|
+
expect(input.value).toBe("01-01-2010");
|
|
427
|
+
|
|
223
428
|
_userEvent["default"].click(calendarAction);
|
|
224
429
|
|
|
225
|
-
|
|
430
|
+
expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
|
|
431
|
+
|
|
432
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
|
|
226
433
|
key: "ArrowRight",
|
|
227
434
|
code: "ArrowRight",
|
|
228
435
|
keyCode: 39,
|
|
229
436
|
charCode: 39
|
|
230
437
|
});
|
|
231
438
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
439
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
440
|
+
|
|
441
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
442
|
+
key: "PageUp",
|
|
443
|
+
code: "PageUp",
|
|
444
|
+
keyCode: 33,
|
|
445
|
+
charCode: 33
|
|
237
446
|
});
|
|
238
447
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
448
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
449
|
+
expect(getByText("December 2009")).toBeTruthy();
|
|
450
|
+
|
|
451
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
452
|
+
key: "PageDown",
|
|
453
|
+
code: "PageDown",
|
|
454
|
+
keyCode: 34,
|
|
455
|
+
charCode: 34
|
|
244
456
|
});
|
|
245
457
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
458
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
459
|
+
expect(getByText("January 2010")).toBeTruthy();
|
|
460
|
+
|
|
461
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
462
|
+
key: "PageDown",
|
|
463
|
+
code: "PageDown",
|
|
464
|
+
keyCode: 34,
|
|
465
|
+
charCode: 34,
|
|
466
|
+
shiftKey: true
|
|
467
|
+
});
|
|
468
|
+
|
|
469
|
+
expect(getByText("January 2011")).toBeTruthy();
|
|
470
|
+
|
|
471
|
+
_react2.fireEvent.keyDown(getAllByText("2")[0].closest("button"), {
|
|
472
|
+
key: "PageUp",
|
|
473
|
+
code: "PageUp",
|
|
474
|
+
keyCode: 33,
|
|
475
|
+
charCode: 33,
|
|
476
|
+
shiftKey: true
|
|
477
|
+
});
|
|
478
|
+
|
|
479
|
+
expect(getByText("January 2010")).toBeTruthy();
|
|
480
|
+
expect(document.activeElement === getAllByText("2")[0].closest("button")).toBeTruthy();
|
|
481
|
+
|
|
482
|
+
_react2.fireEvent.click(getAllByText("2")[0].closest("button"), {
|
|
483
|
+
key: " ",
|
|
484
|
+
code: "Space",
|
|
485
|
+
keyCode: 32,
|
|
486
|
+
charCode: 32
|
|
251
487
|
});
|
|
252
488
|
|
|
489
|
+
expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBe("true");
|
|
490
|
+
|
|
253
491
|
_react2.fireEvent.keyDown(document, {
|
|
254
|
-
key: "
|
|
255
|
-
code: "
|
|
492
|
+
key: "Escape",
|
|
493
|
+
code: "Escape",
|
|
256
494
|
keyCode: 27,
|
|
257
495
|
charCode: 27
|
|
258
496
|
});
|
|
259
497
|
|
|
260
|
-
expect(input.value).toBe("
|
|
498
|
+
expect(input.value).toBe("02-01-2010");
|
|
499
|
+
});
|
|
500
|
+
test("Selecting a date from the calendar (using keyboard presses) part II", function () {
|
|
501
|
+
var _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
502
|
+
getByRole = _render15.getByRole,
|
|
503
|
+
getAllByText = _render15.getAllByText;
|
|
504
|
+
|
|
505
|
+
var calendarAction = getByRole("combobox");
|
|
506
|
+
var input = getByRole("textbox");
|
|
507
|
+
|
|
508
|
+
_userEvent["default"].type(input, "01-01-2010");
|
|
509
|
+
|
|
510
|
+
expect(input.value).toBe("01-01-2010");
|
|
511
|
+
|
|
512
|
+
_userEvent["default"].click(calendarAction);
|
|
513
|
+
|
|
514
|
+
expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
|
|
515
|
+
|
|
516
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
|
|
517
|
+
key: "ArrowDown",
|
|
518
|
+
code: "ArrowDown",
|
|
519
|
+
keyCode: 40,
|
|
520
|
+
charCode: 40
|
|
521
|
+
});
|
|
522
|
+
|
|
523
|
+
expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
|
|
524
|
+
|
|
525
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
|
|
526
|
+
key: "ArrowDown",
|
|
527
|
+
code: "ArrowDown",
|
|
528
|
+
keyCode: 40,
|
|
529
|
+
charCode: 40
|
|
530
|
+
});
|
|
531
|
+
|
|
532
|
+
expect(document.activeElement === getAllByText("15")[0].closest("button")).toBeTruthy();
|
|
533
|
+
|
|
534
|
+
_react2.fireEvent.keyDown(getAllByText("15")[0].closest("button"), {
|
|
535
|
+
key: "ArrowUp",
|
|
536
|
+
code: "ArrowUp",
|
|
537
|
+
keyCode: 38,
|
|
538
|
+
charCode: 38
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
expect(document.activeElement === getAllByText("8")[0].closest("button")).toBeTruthy();
|
|
542
|
+
|
|
543
|
+
_react2.fireEvent.keyDown(getAllByText("8")[0].closest("button"), {
|
|
544
|
+
key: "End",
|
|
545
|
+
code: "End",
|
|
546
|
+
keyCode: 35,
|
|
547
|
+
charCode: 35
|
|
548
|
+
});
|
|
549
|
+
|
|
550
|
+
expect(document.activeElement === getAllByText("10")[0].closest("button")).toBeTruthy();
|
|
551
|
+
|
|
552
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
|
|
553
|
+
key: "Home",
|
|
554
|
+
code: "Home",
|
|
555
|
+
keyCode: 36,
|
|
556
|
+
charCode: 36
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
_react2.fireEvent.keyDown(getAllByText("10")[0].closest("button"), {
|
|
560
|
+
key: " ",
|
|
561
|
+
code: "Space",
|
|
562
|
+
keyCode: 32,
|
|
563
|
+
charCode: 32
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
expect(input.value).toBe("10-01-2010");
|
|
261
567
|
});
|
|
262
568
|
test("onChange & onBlur functions are called correctly", function () {
|
|
263
569
|
var onBlur = jest.fn();
|
|
264
570
|
var onChange = jest.fn();
|
|
265
571
|
|
|
266
|
-
var
|
|
572
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
267
573
|
onChange: onChange,
|
|
268
574
|
onBlur: onBlur
|
|
269
575
|
})),
|
|
270
|
-
getByRole =
|
|
576
|
+
getByRole = _render16.getByRole;
|
|
271
577
|
|
|
272
578
|
var input = getByRole("textbox");
|
|
273
579
|
var d = new Date(2011, 9, 10);
|
|
@@ -278,7 +584,6 @@ describe("DateInput component tests", function () {
|
|
|
278
584
|
expect(onChange).toHaveBeenCalledTimes(10);
|
|
279
585
|
expect(onChange).toHaveBeenCalledWith({
|
|
280
586
|
value: "10-10-2011",
|
|
281
|
-
error: null,
|
|
282
587
|
date: d
|
|
283
588
|
});
|
|
284
589
|
|
|
@@ -287,7 +592,6 @@ describe("DateInput component tests", function () {
|
|
|
287
592
|
expect(onBlur).toHaveBeenCalled();
|
|
288
593
|
expect(onBlur).toHaveBeenCalledWith({
|
|
289
594
|
value: "10-10-2011",
|
|
290
|
-
error: null,
|
|
291
595
|
date: d
|
|
292
596
|
});
|
|
293
597
|
});
|
|
@@ -295,11 +599,11 @@ describe("DateInput component tests", function () {
|
|
|
295
599
|
var onBlur = jest.fn();
|
|
296
600
|
var onChange = jest.fn();
|
|
297
601
|
|
|
298
|
-
var
|
|
602
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
299
603
|
onChange: onChange,
|
|
300
604
|
onBlur: onBlur
|
|
301
605
|
})),
|
|
302
|
-
getByRole =
|
|
606
|
+
getByRole = _render17.getByRole;
|
|
303
607
|
|
|
304
608
|
var input = getByRole("textbox");
|
|
305
609
|
|
|
@@ -309,8 +613,7 @@ describe("DateInput component tests", function () {
|
|
|
309
613
|
expect(onChange).toHaveBeenCalledTimes(6);
|
|
310
614
|
expect(onChange).toHaveBeenCalledWith({
|
|
311
615
|
value: "10-10-",
|
|
312
|
-
error: "Invalid date."
|
|
313
|
-
date: null
|
|
616
|
+
error: "Invalid date."
|
|
314
617
|
});
|
|
315
618
|
|
|
316
619
|
_react2.fireEvent.blur(input);
|
|
@@ -318,17 +621,16 @@ describe("DateInput component tests", function () {
|
|
|
318
621
|
expect(onBlur).toHaveBeenCalled();
|
|
319
622
|
expect(onBlur).toHaveBeenCalledWith({
|
|
320
623
|
value: "10-10-",
|
|
321
|
-
error: "Invalid date."
|
|
322
|
-
date: null
|
|
624
|
+
error: "Invalid date."
|
|
323
625
|
});
|
|
324
626
|
});
|
|
325
627
|
test("onBlur function removes the error when it is fixed", function () {
|
|
326
628
|
var onBlur = jest.fn();
|
|
327
629
|
|
|
328
|
-
var
|
|
630
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
329
631
|
onBlur: onBlur
|
|
330
632
|
})),
|
|
331
|
-
getByRole =
|
|
633
|
+
getByRole = _render18.getByRole;
|
|
332
634
|
|
|
333
635
|
var input = getByRole("textbox");
|
|
334
636
|
var d = new Date(2002, 1, 20);
|
|
@@ -342,8 +644,7 @@ describe("DateInput component tests", function () {
|
|
|
342
644
|
expect(onBlur).toHaveBeenCalled();
|
|
343
645
|
expect(onBlur).toHaveBeenCalledWith({
|
|
344
646
|
value: "test",
|
|
345
|
-
error: "Invalid date."
|
|
346
|
-
date: null
|
|
647
|
+
error: "Invalid date."
|
|
347
648
|
});
|
|
348
649
|
|
|
349
650
|
_userEvent["default"].clear(input);
|
|
@@ -357,18 +658,17 @@ describe("DateInput component tests", function () {
|
|
|
357
658
|
expect(onBlur).toHaveBeenCalled();
|
|
358
659
|
expect(onBlur).toHaveBeenCalledWith({
|
|
359
660
|
value: "20-02-2002",
|
|
360
|
-
error: null,
|
|
361
661
|
date: d
|
|
362
662
|
});
|
|
363
663
|
});
|
|
364
664
|
test("onBlur function removes the error when the input is empty", function () {
|
|
365
665
|
var onBlur = jest.fn();
|
|
366
666
|
|
|
367
|
-
var
|
|
667
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
368
668
|
onBlur: onBlur,
|
|
369
669
|
optional: true
|
|
370
670
|
})),
|
|
371
|
-
getByRole =
|
|
671
|
+
getByRole = _render19.getByRole;
|
|
372
672
|
|
|
373
673
|
var input = getByRole("textbox");
|
|
374
674
|
|
|
@@ -381,8 +681,7 @@ describe("DateInput component tests", function () {
|
|
|
381
681
|
expect(onBlur).toHaveBeenCalled();
|
|
382
682
|
expect(onBlur).toHaveBeenCalledWith({
|
|
383
683
|
value: "test",
|
|
384
|
-
error: "Invalid date."
|
|
385
|
-
date: null
|
|
684
|
+
error: "Invalid date."
|
|
386
685
|
});
|
|
387
686
|
|
|
388
687
|
_userEvent["default"].clear(input);
|
|
@@ -391,20 +690,18 @@ describe("DateInput component tests", function () {
|
|
|
391
690
|
|
|
392
691
|
expect(onBlur).toHaveBeenCalled();
|
|
393
692
|
expect(onBlur).toHaveBeenCalledWith({
|
|
394
|
-
value: ""
|
|
395
|
-
error: null,
|
|
396
|
-
date: null
|
|
693
|
+
value: ""
|
|
397
694
|
});
|
|
398
695
|
});
|
|
399
696
|
test("onBlur & onChange functions error: required field (not optional)", function () {
|
|
400
697
|
var onBlur = jest.fn();
|
|
401
698
|
var onChange = jest.fn();
|
|
402
699
|
|
|
403
|
-
var
|
|
700
|
+
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
404
701
|
onBlur: onBlur,
|
|
405
702
|
onChange: onChange
|
|
406
703
|
})),
|
|
407
|
-
getByRole =
|
|
704
|
+
getByRole = _render20.getByRole;
|
|
408
705
|
|
|
409
706
|
var date = getByRole("textbox");
|
|
410
707
|
|
|
@@ -419,22 +716,20 @@ describe("DateInput component tests", function () {
|
|
|
419
716
|
expect(onBlur).toHaveBeenCalled();
|
|
420
717
|
expect(onBlur).toHaveBeenCalledWith({
|
|
421
718
|
value: "",
|
|
422
|
-
error: "This field is required. Please, enter a value."
|
|
423
|
-
date: null
|
|
719
|
+
error: "This field is required. Please, enter a value."
|
|
424
720
|
});
|
|
425
721
|
expect(onChange).toHaveBeenCalled();
|
|
426
722
|
expect(onChange).toHaveBeenCalledWith({
|
|
427
723
|
value: "",
|
|
428
|
-
error: "This field is required. Please, enter a value."
|
|
429
|
-
date: null
|
|
724
|
+
error: "This field is required. Please, enter a value."
|
|
430
725
|
});
|
|
431
726
|
});
|
|
432
727
|
test("Disabled date input (calendar action must be shown but not clickable)", function () {
|
|
433
|
-
var
|
|
728
|
+
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
434
729
|
disabled: true
|
|
435
730
|
})),
|
|
436
|
-
getByRole =
|
|
437
|
-
queryByText =
|
|
731
|
+
getByRole = _render21.getByRole,
|
|
732
|
+
queryByText = _render21.queryByText;
|
|
438
733
|
|
|
439
734
|
var calendarAction = getByRole("button");
|
|
440
735
|
var d = new Date();
|
|
@@ -450,20 +745,91 @@ describe("DateInput component tests", function () {
|
|
|
450
745
|
expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
|
|
451
746
|
});
|
|
452
747
|
test("Input has correct accesibility attributes", function () {
|
|
453
|
-
var
|
|
748
|
+
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
454
749
|
label: "Date input label"
|
|
455
750
|
})),
|
|
456
|
-
getByRole =
|
|
751
|
+
getByRole = _render22.getByRole;
|
|
457
752
|
|
|
458
753
|
var input = getByRole("textbox");
|
|
459
754
|
expect(input.getAttribute("aria-autocomplete")).toBeNull();
|
|
460
755
|
expect(input.getAttribute("aria-controls")).toBeNull();
|
|
461
756
|
expect(input.getAttribute("aria-expanded")).toBeNull();
|
|
462
|
-
var calendarAction = getByRole("
|
|
757
|
+
var calendarAction = getByRole("combobox");
|
|
758
|
+
expect(calendarAction.getAttribute("aria-autocomplete")).toBeNull();
|
|
759
|
+
expect(calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
760
|
+
expect(calendarAction.getAttribute("aria-describedby")).toBeTruthy();
|
|
761
|
+
expect(calendarAction.getAttribute("aria-describedby") === calendarAction.getAttribute("aria-controls")).toBeTruthy();
|
|
762
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
|
|
463
763
|
|
|
464
764
|
_userEvent["default"].click(calendarAction);
|
|
465
765
|
|
|
466
766
|
var datePicker = getByRole("dialog");
|
|
467
767
|
expect(datePicker.getAttribute("aria-modal")).toBe("true");
|
|
768
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("true");
|
|
769
|
+
expect(document.getElementById(calendarAction.getAttribute("aria-describedby"))).toBeTruthy();
|
|
770
|
+
|
|
771
|
+
_react2.fireEvent.keyDown(document, {
|
|
772
|
+
key: "Escape",
|
|
773
|
+
code: "Escape",
|
|
774
|
+
keyCode: 27,
|
|
775
|
+
charCode: 27
|
|
776
|
+
});
|
|
777
|
+
|
|
778
|
+
expect(calendarAction.getAttribute("aria-expanded")).toBe("false");
|
|
779
|
+
});
|
|
780
|
+
test("Chooses the correct year when two digit format", function () {
|
|
781
|
+
var _render23 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
782
|
+
label: "Default label",
|
|
783
|
+
placeholder: "Placeholder",
|
|
784
|
+
format: "dd-mm-yy",
|
|
785
|
+
defaultValue: "21-10-80"
|
|
786
|
+
})),
|
|
787
|
+
getByText = _render23.getByText,
|
|
788
|
+
getByRole = _render23.getByRole,
|
|
789
|
+
getAllByText = _render23.getAllByText;
|
|
790
|
+
|
|
791
|
+
var input = getByRole("textbox");
|
|
792
|
+
var calendarAction = getByRole("combobox");
|
|
793
|
+
expect(input.value).toBe("21-10-80");
|
|
794
|
+
|
|
795
|
+
_userEvent["default"].click(calendarAction);
|
|
796
|
+
|
|
797
|
+
expect(getByText("21").getAttribute("aria-selected")).toBe("true");
|
|
798
|
+
expect(getByText("October 1980")).toBeTruthy();
|
|
799
|
+
|
|
800
|
+
_react2.fireEvent.keyDown(document, {
|
|
801
|
+
key: "Escape",
|
|
802
|
+
code: "Escape",
|
|
803
|
+
keyCode: 27,
|
|
804
|
+
charCode: 27
|
|
805
|
+
});
|
|
806
|
+
|
|
807
|
+
_react2.fireEvent.change(input, {
|
|
808
|
+
target: {
|
|
809
|
+
value: "21-10-10"
|
|
810
|
+
}
|
|
811
|
+
});
|
|
812
|
+
|
|
813
|
+
_userEvent["default"].click(calendarAction);
|
|
814
|
+
|
|
815
|
+
expect(getByText("October 1910")).toBeTruthy();
|
|
816
|
+
|
|
817
|
+
_userEvent["default"].click(getByText("October 1910"));
|
|
818
|
+
|
|
819
|
+
_userEvent["default"].click(getByText("2010"));
|
|
820
|
+
|
|
821
|
+
_userEvent["default"].click(getAllByText("1")[0]);
|
|
822
|
+
|
|
823
|
+
expect(input.value).toBe("01-10-10");
|
|
824
|
+
|
|
825
|
+
_react2.fireEvent.change(input, {
|
|
826
|
+
target: {
|
|
827
|
+
value: "21-10-80"
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
|
|
831
|
+
_userEvent["default"].click(calendarAction);
|
|
832
|
+
|
|
833
|
+
expect(getByText("October 2080")).toBeTruthy();
|
|
468
834
|
});
|
|
469
835
|
});
|