@dxc-technology/halstack-react 0.0.0-0271b6e → 0.0.0-0276e5a
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 +108 -134
- package/accordion/Accordion.stories.tsx +108 -118
- package/accordion/Accordion.test.js +10 -11
- package/accordion/types.d.ts +1 -12
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +34 -76
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +33 -50
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +11 -12
- package/alert/Alert.js +9 -10
- 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 +95 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -48
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +0 -11
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +125 -0
- package/bulleted-list/BulletedList.stories.tsx +206 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.js +52 -70
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +5 -5
- package/card/Card.d.ts +1 -1
- package/card/Card.js +37 -58
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -6
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +104 -101
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +94 -17
- package/checkbox/types.d.ts +7 -3
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1482 -0
- package/common/variables.js +1100 -1112
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +155 -240
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +502 -159
- 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 +63 -9
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -103
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +0 -12
- 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 +74 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +79 -0
- package/dropdown/types.d.ts +23 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +180 -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 +18 -1
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +71 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +49 -142
- package/footer/Footer.stories.tsx +37 -16
- package/footer/Footer.test.js +16 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +11 -12
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +102 -150
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +0 -13
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +78 -135
- 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 +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +60 -77
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +5 -21
- package/main.d.ts +8 -10
- package/main.js +47 -57
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +122 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +146 -0
- package/nav-tabs/types.d.ts +52 -0
- package/number-input/NumberInput.test.js +46 -12
- package/number-input/types.d.ts +13 -10
- package/package.json +19 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +20 -49
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +91 -39
- package/paragraph/Paragraph.d.ts +5 -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.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/quick-nav/QuickNav.js +77 -26
- package/quick-nav/QuickNav.stories.tsx +145 -26
- package/quick-nav/types.d.ts +4 -4
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +46 -31
- package/radio-group/RadioGroup.js +37 -36
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +124 -97
- package/radio-group/types.d.ts +2 -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 +1 -1
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.js +11 -24
- package/select/Select.js +150 -224
- package/select/Select.stories.tsx +522 -133
- package/select/Select.test.js +551 -339
- package/select/types.d.ts +32 -13
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +146 -44
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +121 -97
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +122 -22
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +18 -24
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +138 -68
- package/switch/Switch.stories.tsx +49 -38
- package/switch/Switch.test.js +145 -18
- package/switch/types.d.ts +6 -2
- 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 +132 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +360 -112
- package/tabs/Tabs.stories.tsx +119 -13
- package/tabs/Tabs.test.js +244 -17
- package/tabs/types.d.ts +17 -3
- package/tag/Tag.js +12 -17
- package/tag/Tag.stories.tsx +14 -1
- 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 -346
- package/text-input/TextInput.stories.tsx +280 -185
- package/text-input/TextInput.test.js +756 -758
- package/text-input/types.d.ts +46 -12
- package/textarea/Textarea.js +13 -23
- package/textarea/Textarea.stories.jsx +60 -1
- package/textarea/Textarea.test.js +2 -4
- package/textarea/types.d.ts +10 -7
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +12 -8
- package/toggle-group/ToggleGroup.stories.tsx +46 -4
- package/toggle-group/ToggleGroup.test.js +36 -5
- package/toggle-group/types.d.ts +10 -2
- 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 +138 -0
- package/wizard/Wizard.js +44 -45
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +3 -3
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- 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 -28
- 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 -24
- 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 → grid}/types.js +0 -0
- /package/{stack → nav-tabs}/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"], {
|
|
@@ -55,116 +103,161 @@ describe("DateInput component tests", function () {
|
|
|
55
103
|
getByRole = _render3.getByRole;
|
|
56
104
|
|
|
57
105
|
var input = getByRole("textbox");
|
|
58
|
-
var calendarAction = getByRole("
|
|
59
|
-
var d = new Date(2015, 9, 21);
|
|
60
|
-
var options = {
|
|
61
|
-
weekday: "short",
|
|
62
|
-
month: "short",
|
|
63
|
-
day: "numeric"
|
|
64
|
-
};
|
|
106
|
+
var calendarAction = getByRole("combobox");
|
|
65
107
|
expect(input.value).toBe("21-10-2015");
|
|
66
108
|
|
|
67
109
|
_userEvent["default"].click(calendarAction);
|
|
68
110
|
|
|
69
|
-
expect(getByText(
|
|
70
|
-
|
|
71
|
-
test("Renders with correct format: user typed date but it's invalid, onBlur error", function () {
|
|
72
|
-
var onBlur = jest.fn(function (_ref) {
|
|
73
|
-
var value = _ref.value,
|
|
74
|
-
error = _ref.error;
|
|
75
|
-
expect(value).toBe("10/90/2010");
|
|
76
|
-
expect(error).toBe("Invalid date.");
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
80
|
-
label: "With format MM/dd/yyyy",
|
|
81
|
-
format: "MM/dd/yyyy",
|
|
82
|
-
onBlur: onBlur
|
|
83
|
-
})),
|
|
84
|
-
getByRole = _render4.getByRole;
|
|
85
|
-
|
|
86
|
-
var input = getByRole("textbox");
|
|
87
|
-
|
|
88
|
-
_userEvent["default"].type(input, "10/90/2010");
|
|
89
|
-
|
|
90
|
-
_react2.fireEvent.blur(input);
|
|
91
|
-
});
|
|
92
|
-
test("Renders with correct format: user typed date but it's invalid, onChange error", function () {
|
|
93
|
-
var onChange = jest.fn();
|
|
94
|
-
|
|
95
|
-
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
96
|
-
label: "With format MM/dd/yyyy",
|
|
97
|
-
format: "MM/dd/yyyy",
|
|
98
|
-
onChange: onChange
|
|
99
|
-
})),
|
|
100
|
-
getByRole = _render5.getByRole;
|
|
101
|
-
|
|
102
|
-
var input = getByRole("textbox");
|
|
103
|
-
|
|
104
|
-
_userEvent["default"].type(input, "10/90/2010");
|
|
105
|
-
|
|
106
|
-
expect(onChange).toHaveBeenCalledTimes(10);
|
|
107
|
-
expect(onChange).toHaveBeenCalledWith({
|
|
108
|
-
value: "10/90/2010",
|
|
109
|
-
error: "Invalid date.",
|
|
110
|
-
date: null
|
|
111
|
-
});
|
|
111
|
+
expect(getByText("21").getAttribute("aria-selected")).toBe("true");
|
|
112
|
+
expect(getByText("October 2015")).toBeTruthy();
|
|
112
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
|
+
})));
|
|
113
215
|
test("Calendar renders with correct date: today's date", function () {
|
|
114
216
|
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
115
217
|
getByText = _render6.getByText,
|
|
116
|
-
getByRole = _render6.getByRole
|
|
218
|
+
getByRole = _render6.getByRole,
|
|
219
|
+
getAllByText = _render6.getAllByText;
|
|
117
220
|
|
|
118
|
-
var calendarAction = getByRole("
|
|
119
|
-
var d =
|
|
120
|
-
var options = {
|
|
121
|
-
weekday: "short",
|
|
122
|
-
month: "short",
|
|
123
|
-
day: "numeric"
|
|
124
|
-
};
|
|
221
|
+
var calendarAction = getByRole("combobox");
|
|
222
|
+
var d = (0, _dayjs["default"])();
|
|
125
223
|
|
|
126
224
|
_userEvent["default"].click(calendarAction);
|
|
127
225
|
|
|
128
|
-
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();
|
|
129
228
|
});
|
|
130
229
|
test("Calendar renders with correct date: value prop", function () {
|
|
131
230
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
132
231
|
value: "20-10-2019"
|
|
133
232
|
})),
|
|
134
233
|
getByText = _render7.getByText,
|
|
135
|
-
getByRole = _render7.getByRole
|
|
234
|
+
getByRole = _render7.getByRole,
|
|
235
|
+
getAllByText = _render7.getAllByText;
|
|
136
236
|
|
|
137
|
-
var calendarAction = getByRole("
|
|
138
|
-
var d =
|
|
139
|
-
var options = {
|
|
140
|
-
weekday: "short",
|
|
141
|
-
month: "short",
|
|
142
|
-
day: "numeric"
|
|
143
|
-
};
|
|
237
|
+
var calendarAction = getByRole("combobox");
|
|
238
|
+
var d = (0, _dayjs["default"])("2019-10-20");
|
|
144
239
|
|
|
145
240
|
_userEvent["default"].click(calendarAction);
|
|
146
241
|
|
|
147
|
-
expect(
|
|
242
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
243
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
148
244
|
});
|
|
149
245
|
test("Calendar renders with correct date: user typed value", function () {
|
|
150
246
|
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
|
|
151
247
|
getByText = _render8.getByText,
|
|
152
|
-
getByRole = _render8.getByRole
|
|
248
|
+
getByRole = _render8.getByRole,
|
|
249
|
+
getAllByText = _render8.getAllByText;
|
|
153
250
|
|
|
154
|
-
var calendarAction = getByRole("
|
|
155
|
-
var d =
|
|
156
|
-
var options = {
|
|
157
|
-
weekday: "short",
|
|
158
|
-
month: "short",
|
|
159
|
-
day: "numeric"
|
|
160
|
-
};
|
|
251
|
+
var calendarAction = getByRole("combobox");
|
|
252
|
+
var d = (0, _dayjs["default"])("2010-1-1");
|
|
161
253
|
var input = getByRole("textbox");
|
|
162
254
|
|
|
163
255
|
_userEvent["default"].type(input, "01-01-2010");
|
|
164
256
|
|
|
165
257
|
_userEvent["default"].click(calendarAction);
|
|
166
258
|
|
|
167
|
-
expect(
|
|
259
|
+
expect(getAllByText(d.get("date"))[0].getAttribute("aria-selected")).toBe("true");
|
|
260
|
+
expect(getByText(d.format("MMMM YYYY"))).toBeTruthy();
|
|
168
261
|
});
|
|
169
262
|
test("Calendar renders with correct date: invalid date, renders with today's date", function () {
|
|
170
263
|
var onBlur = jest.fn();
|
|
@@ -173,15 +266,11 @@ describe("DateInput component tests", function () {
|
|
|
173
266
|
onBlur: onBlur
|
|
174
267
|
})),
|
|
175
268
|
getByText = _render9.getByText,
|
|
176
|
-
getByRole = _render9.getByRole
|
|
269
|
+
getByRole = _render9.getByRole,
|
|
270
|
+
getAllByText = _render9.getAllByText;
|
|
177
271
|
|
|
178
|
-
var calendarAction = getByRole("
|
|
179
|
-
var d =
|
|
180
|
-
var options = {
|
|
181
|
-
weekday: "short",
|
|
182
|
-
month: "short",
|
|
183
|
-
day: "numeric"
|
|
184
|
-
};
|
|
272
|
+
var calendarAction = getByRole("combobox");
|
|
273
|
+
var d = (0, _dayjs["default"])();
|
|
185
274
|
var input = getByRole("textbox");
|
|
186
275
|
|
|
187
276
|
_userEvent["default"].type(input, "01-01-xxxx");
|
|
@@ -191,106 +280,300 @@ describe("DateInput component tests", function () {
|
|
|
191
280
|
expect(onBlur).toHaveBeenCalled();
|
|
192
281
|
expect(onBlur).toHaveBeenCalledWith({
|
|
193
282
|
value: "01-01-xxxx",
|
|
194
|
-
error: "Invalid date."
|
|
195
|
-
date: null
|
|
283
|
+
error: "Invalid date."
|
|
196
284
|
});
|
|
197
285
|
|
|
198
286
|
_userEvent["default"].click(calendarAction);
|
|
199
287
|
|
|
200
|
-
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();
|
|
201
290
|
});
|
|
202
291
|
test("Selecting a date from the calendar with an specific format", function () {
|
|
203
292
|
var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
204
293
|
label: "With format M-dd-yyyy",
|
|
205
294
|
format: "M-dd-yyyy"
|
|
206
295
|
})),
|
|
296
|
+
getAllByText = _render10.getAllByText,
|
|
207
297
|
getByText = _render10.getByText,
|
|
208
298
|
getByRole = _render10.getByRole;
|
|
209
299
|
|
|
210
300
|
var input = getByRole("textbox");
|
|
211
|
-
var calendarAction = getByRole("
|
|
301
|
+
var calendarAction = getByRole("combobox");
|
|
212
302
|
|
|
213
303
|
_userEvent["default"].click(calendarAction);
|
|
214
304
|
|
|
215
|
-
var dayButton =
|
|
305
|
+
var dayButton = getAllByText("10")[0].closest("button");
|
|
216
306
|
|
|
217
307
|
_react2.fireEvent.click(dayButton);
|
|
218
308
|
|
|
219
|
-
var d =
|
|
220
|
-
d.
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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();
|
|
227
373
|
|
|
228
374
|
_react2.fireEvent.keyDown(document, {
|
|
229
|
-
key: "
|
|
230
|
-
code: "
|
|
375
|
+
key: "Escape",
|
|
376
|
+
code: "Escape",
|
|
231
377
|
keyCode: 27,
|
|
232
378
|
charCode: 27
|
|
233
379
|
});
|
|
234
380
|
|
|
235
|
-
expect(input.value).toBe(
|
|
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")));
|
|
405
|
+
|
|
406
|
+
_react2.fireEvent.keyDown(document, {
|
|
407
|
+
key: "Escape",
|
|
408
|
+
code: "Escape",
|
|
409
|
+
keyCode: 27,
|
|
410
|
+
charCode: 27
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
expect(input.value).toBe(d.format("DD-MM-YYYY"));
|
|
236
414
|
});
|
|
237
415
|
test("Selecting a date from the calendar (using keyboard presses)", function () {
|
|
238
|
-
var
|
|
239
|
-
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;
|
|
240
420
|
|
|
241
|
-
var calendarAction = getByRole("
|
|
421
|
+
var calendarAction = getByRole("combobox");
|
|
242
422
|
var input = getByRole("textbox");
|
|
243
423
|
|
|
244
424
|
_userEvent["default"].type(input, "01-01-2010");
|
|
245
425
|
|
|
426
|
+
expect(input.value).toBe("01-01-2010");
|
|
427
|
+
|
|
246
428
|
_userEvent["default"].click(calendarAction);
|
|
247
429
|
|
|
248
|
-
|
|
430
|
+
expect(document.activeElement === getAllByText("1")[0].closest("button")).toBeTruthy();
|
|
431
|
+
|
|
432
|
+
_react2.fireEvent.keyDown(getAllByText("1")[0].closest("button"), {
|
|
249
433
|
key: "ArrowRight",
|
|
250
434
|
code: "ArrowRight",
|
|
251
435
|
keyCode: 39,
|
|
252
436
|
charCode: 39
|
|
253
437
|
});
|
|
254
438
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
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
|
|
260
446
|
});
|
|
261
447
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
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
|
|
267
456
|
});
|
|
268
457
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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
|
|
274
477
|
});
|
|
275
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
|
|
487
|
+
});
|
|
488
|
+
|
|
489
|
+
expect(getAllByText("2")[0].closest("button").getAttribute("aria-selected")).toBe("true");
|
|
490
|
+
|
|
276
491
|
_react2.fireEvent.keyDown(document, {
|
|
277
|
-
key: "
|
|
278
|
-
code: "
|
|
492
|
+
key: "Escape",
|
|
493
|
+
code: "Escape",
|
|
279
494
|
keyCode: 27,
|
|
280
495
|
charCode: 27
|
|
281
496
|
});
|
|
282
497
|
|
|
283
|
-
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");
|
|
284
567
|
});
|
|
285
568
|
test("onChange & onBlur functions are called correctly", function () {
|
|
286
569
|
var onBlur = jest.fn();
|
|
287
570
|
var onChange = jest.fn();
|
|
288
571
|
|
|
289
|
-
var
|
|
572
|
+
var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
290
573
|
onChange: onChange,
|
|
291
574
|
onBlur: onBlur
|
|
292
575
|
})),
|
|
293
|
-
getByRole =
|
|
576
|
+
getByRole = _render16.getByRole;
|
|
294
577
|
|
|
295
578
|
var input = getByRole("textbox");
|
|
296
579
|
var d = new Date(2011, 9, 10);
|
|
@@ -301,7 +584,6 @@ describe("DateInput component tests", function () {
|
|
|
301
584
|
expect(onChange).toHaveBeenCalledTimes(10);
|
|
302
585
|
expect(onChange).toHaveBeenCalledWith({
|
|
303
586
|
value: "10-10-2011",
|
|
304
|
-
error: null,
|
|
305
587
|
date: d
|
|
306
588
|
});
|
|
307
589
|
|
|
@@ -310,7 +592,6 @@ describe("DateInput component tests", function () {
|
|
|
310
592
|
expect(onBlur).toHaveBeenCalled();
|
|
311
593
|
expect(onBlur).toHaveBeenCalledWith({
|
|
312
594
|
value: "10-10-2011",
|
|
313
|
-
error: null,
|
|
314
595
|
date: d
|
|
315
596
|
});
|
|
316
597
|
});
|
|
@@ -318,11 +599,11 @@ describe("DateInput component tests", function () {
|
|
|
318
599
|
var onBlur = jest.fn();
|
|
319
600
|
var onChange = jest.fn();
|
|
320
601
|
|
|
321
|
-
var
|
|
602
|
+
var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
322
603
|
onChange: onChange,
|
|
323
604
|
onBlur: onBlur
|
|
324
605
|
})),
|
|
325
|
-
getByRole =
|
|
606
|
+
getByRole = _render17.getByRole;
|
|
326
607
|
|
|
327
608
|
var input = getByRole("textbox");
|
|
328
609
|
|
|
@@ -332,8 +613,7 @@ describe("DateInput component tests", function () {
|
|
|
332
613
|
expect(onChange).toHaveBeenCalledTimes(6);
|
|
333
614
|
expect(onChange).toHaveBeenCalledWith({
|
|
334
615
|
value: "10-10-",
|
|
335
|
-
error: "Invalid date."
|
|
336
|
-
date: null
|
|
616
|
+
error: "Invalid date."
|
|
337
617
|
});
|
|
338
618
|
|
|
339
619
|
_react2.fireEvent.blur(input);
|
|
@@ -341,17 +621,16 @@ describe("DateInput component tests", function () {
|
|
|
341
621
|
expect(onBlur).toHaveBeenCalled();
|
|
342
622
|
expect(onBlur).toHaveBeenCalledWith({
|
|
343
623
|
value: "10-10-",
|
|
344
|
-
error: "Invalid date."
|
|
345
|
-
date: null
|
|
624
|
+
error: "Invalid date."
|
|
346
625
|
});
|
|
347
626
|
});
|
|
348
627
|
test("onBlur function removes the error when it is fixed", function () {
|
|
349
628
|
var onBlur = jest.fn();
|
|
350
629
|
|
|
351
|
-
var
|
|
630
|
+
var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
352
631
|
onBlur: onBlur
|
|
353
632
|
})),
|
|
354
|
-
getByRole =
|
|
633
|
+
getByRole = _render18.getByRole;
|
|
355
634
|
|
|
356
635
|
var input = getByRole("textbox");
|
|
357
636
|
var d = new Date(2002, 1, 20);
|
|
@@ -365,8 +644,7 @@ describe("DateInput component tests", function () {
|
|
|
365
644
|
expect(onBlur).toHaveBeenCalled();
|
|
366
645
|
expect(onBlur).toHaveBeenCalledWith({
|
|
367
646
|
value: "test",
|
|
368
|
-
error: "Invalid date."
|
|
369
|
-
date: null
|
|
647
|
+
error: "Invalid date."
|
|
370
648
|
});
|
|
371
649
|
|
|
372
650
|
_userEvent["default"].clear(input);
|
|
@@ -380,18 +658,17 @@ describe("DateInput component tests", function () {
|
|
|
380
658
|
expect(onBlur).toHaveBeenCalled();
|
|
381
659
|
expect(onBlur).toHaveBeenCalledWith({
|
|
382
660
|
value: "20-02-2002",
|
|
383
|
-
error: null,
|
|
384
661
|
date: d
|
|
385
662
|
});
|
|
386
663
|
});
|
|
387
664
|
test("onBlur function removes the error when the input is empty", function () {
|
|
388
665
|
var onBlur = jest.fn();
|
|
389
666
|
|
|
390
|
-
var
|
|
667
|
+
var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
391
668
|
onBlur: onBlur,
|
|
392
669
|
optional: true
|
|
393
670
|
})),
|
|
394
|
-
getByRole =
|
|
671
|
+
getByRole = _render19.getByRole;
|
|
395
672
|
|
|
396
673
|
var input = getByRole("textbox");
|
|
397
674
|
|
|
@@ -404,8 +681,7 @@ describe("DateInput component tests", function () {
|
|
|
404
681
|
expect(onBlur).toHaveBeenCalled();
|
|
405
682
|
expect(onBlur).toHaveBeenCalledWith({
|
|
406
683
|
value: "test",
|
|
407
|
-
error: "Invalid date."
|
|
408
|
-
date: null
|
|
684
|
+
error: "Invalid date."
|
|
409
685
|
});
|
|
410
686
|
|
|
411
687
|
_userEvent["default"].clear(input);
|
|
@@ -414,20 +690,18 @@ describe("DateInput component tests", function () {
|
|
|
414
690
|
|
|
415
691
|
expect(onBlur).toHaveBeenCalled();
|
|
416
692
|
expect(onBlur).toHaveBeenCalledWith({
|
|
417
|
-
value: ""
|
|
418
|
-
error: null,
|
|
419
|
-
date: null
|
|
693
|
+
value: ""
|
|
420
694
|
});
|
|
421
695
|
});
|
|
422
696
|
test("onBlur & onChange functions error: required field (not optional)", function () {
|
|
423
697
|
var onBlur = jest.fn();
|
|
424
698
|
var onChange = jest.fn();
|
|
425
699
|
|
|
426
|
-
var
|
|
700
|
+
var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
427
701
|
onBlur: onBlur,
|
|
428
702
|
onChange: onChange
|
|
429
703
|
})),
|
|
430
|
-
getByRole =
|
|
704
|
+
getByRole = _render20.getByRole;
|
|
431
705
|
|
|
432
706
|
var date = getByRole("textbox");
|
|
433
707
|
|
|
@@ -442,22 +716,20 @@ describe("DateInput component tests", function () {
|
|
|
442
716
|
expect(onBlur).toHaveBeenCalled();
|
|
443
717
|
expect(onBlur).toHaveBeenCalledWith({
|
|
444
718
|
value: "",
|
|
445
|
-
error: "This field is required. Please, enter a value."
|
|
446
|
-
date: null
|
|
719
|
+
error: "This field is required. Please, enter a value."
|
|
447
720
|
});
|
|
448
721
|
expect(onChange).toHaveBeenCalled();
|
|
449
722
|
expect(onChange).toHaveBeenCalledWith({
|
|
450
723
|
value: "",
|
|
451
|
-
error: "This field is required. Please, enter a value."
|
|
452
|
-
date: null
|
|
724
|
+
error: "This field is required. Please, enter a value."
|
|
453
725
|
});
|
|
454
726
|
});
|
|
455
727
|
test("Disabled date input (calendar action must be shown but not clickable)", function () {
|
|
456
|
-
var
|
|
728
|
+
var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
457
729
|
disabled: true
|
|
458
730
|
})),
|
|
459
|
-
getByRole =
|
|
460
|
-
queryByText =
|
|
731
|
+
getByRole = _render21.getByRole,
|
|
732
|
+
queryByText = _render21.queryByText;
|
|
461
733
|
|
|
462
734
|
var calendarAction = getByRole("button");
|
|
463
735
|
var d = new Date();
|
|
@@ -473,20 +745,91 @@ describe("DateInput component tests", function () {
|
|
|
473
745
|
expect(queryByText(d.toLocaleString("en-US", options))).toBeFalsy();
|
|
474
746
|
});
|
|
475
747
|
test("Input has correct accesibility attributes", function () {
|
|
476
|
-
var
|
|
748
|
+
var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
|
|
477
749
|
label: "Date input label"
|
|
478
750
|
})),
|
|
479
|
-
getByRole =
|
|
751
|
+
getByRole = _render22.getByRole;
|
|
480
752
|
|
|
481
753
|
var input = getByRole("textbox");
|
|
482
754
|
expect(input.getAttribute("aria-autocomplete")).toBeNull();
|
|
483
755
|
expect(input.getAttribute("aria-controls")).toBeNull();
|
|
484
756
|
expect(input.getAttribute("aria-expanded")).toBeNull();
|
|
485
|
-
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");
|
|
486
763
|
|
|
487
764
|
_userEvent["default"].click(calendarAction);
|
|
488
765
|
|
|
489
766
|
var datePicker = getByRole("dialog");
|
|
490
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();
|
|
491
834
|
});
|
|
492
835
|
});
|