@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.
Files changed (276) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +108 -134
  7. package/accordion/Accordion.stories.tsx +108 -118
  8. package/accordion/Accordion.test.js +10 -11
  9. package/accordion/types.d.ts +1 -12
  10. package/accordion-group/AccordionGroup.d.ts +5 -4
  11. package/accordion-group/AccordionGroup.js +34 -76
  12. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  13. package/accordion-group/AccordionGroup.test.js +33 -50
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +11 -12
  17. package/alert/Alert.js +9 -10
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +1 -1
  20. package/badge/Badge.d.ts +1 -1
  21. package/badge/Badge.js +5 -3
  22. package/badge/types.d.ts +1 -0
  23. package/bleed/Bleed.js +1 -34
  24. package/bleed/Bleed.stories.tsx +95 -95
  25. package/bleed/types.d.ts +1 -1
  26. package/box/Box.d.ts +1 -1
  27. package/box/Box.js +19 -48
  28. package/box/Box.stories.tsx +38 -51
  29. package/box/Box.test.js +1 -1
  30. package/box/types.d.ts +0 -11
  31. package/bulleted-list/BulletedList.d.ts +7 -0
  32. package/bulleted-list/BulletedList.js +125 -0
  33. package/bulleted-list/BulletedList.stories.tsx +206 -0
  34. package/bulleted-list/types.d.ts +38 -0
  35. package/button/Button.js +52 -70
  36. package/button/Button.stories.tsx +159 -8
  37. package/button/Button.test.js +1 -1
  38. package/button/types.d.ts +5 -5
  39. package/card/Card.d.ts +1 -1
  40. package/card/Card.js +37 -58
  41. package/card/Card.stories.tsx +12 -42
  42. package/card/Card.test.js +1 -1
  43. package/card/types.d.ts +1 -6
  44. package/checkbox/Checkbox.d.ts +2 -2
  45. package/checkbox/Checkbox.js +104 -101
  46. package/checkbox/Checkbox.stories.tsx +198 -130
  47. package/checkbox/Checkbox.test.js +94 -17
  48. package/checkbox/types.d.ts +7 -3
  49. package/chip/Chip.js +28 -49
  50. package/chip/Chip.stories.tsx +121 -26
  51. package/chip/Chip.test.js +3 -5
  52. package/chip/types.d.ts +1 -1
  53. package/common/OpenSans.css +68 -80
  54. package/common/coreTokens.d.ts +146 -0
  55. package/common/coreTokens.js +167 -0
  56. package/common/utils.d.ts +1 -0
  57. package/common/utils.js +4 -4
  58. package/common/variables.d.ts +1482 -0
  59. package/common/variables.js +1100 -1112
  60. package/date-input/Calendar.d.ts +4 -0
  61. package/date-input/Calendar.js +258 -0
  62. package/date-input/DateInput.js +155 -240
  63. package/date-input/DateInput.stories.tsx +199 -33
  64. package/date-input/DateInput.test.js +502 -159
  65. package/date-input/DatePicker.d.ts +4 -0
  66. package/date-input/DatePicker.js +146 -0
  67. package/date-input/Icons.d.ts +6 -0
  68. package/date-input/Icons.js +75 -0
  69. package/date-input/YearPicker.d.ts +4 -0
  70. package/date-input/YearPicker.js +126 -0
  71. package/date-input/types.d.ts +63 -9
  72. package/dialog/Dialog.d.ts +1 -1
  73. package/dialog/Dialog.js +68 -103
  74. package/dialog/Dialog.stories.tsx +154 -171
  75. package/dialog/Dialog.test.js +334 -5
  76. package/dialog/types.d.ts +0 -12
  77. package/dropdown/Dropdown.d.ts +1 -1
  78. package/dropdown/Dropdown.js +246 -253
  79. package/dropdown/Dropdown.stories.tsx +245 -56
  80. package/dropdown/Dropdown.test.js +507 -110
  81. package/dropdown/DropdownMenu.d.ts +4 -0
  82. package/dropdown/DropdownMenu.js +74 -0
  83. package/dropdown/DropdownMenuItem.d.ts +4 -0
  84. package/dropdown/DropdownMenuItem.js +79 -0
  85. package/dropdown/types.d.ts +23 -3
  86. package/file-input/FileInput.d.ts +2 -2
  87. package/file-input/FileInput.js +180 -223
  88. package/file-input/FileInput.stories.tsx +122 -11
  89. package/file-input/FileInput.test.js +14 -14
  90. package/file-input/FileItem.d.ts +4 -14
  91. package/file-input/FileItem.js +44 -66
  92. package/file-input/types.d.ts +18 -1
  93. package/flex/Flex.d.ts +4 -0
  94. package/flex/Flex.js +71 -0
  95. package/flex/Flex.stories.tsx +112 -0
  96. package/flex/types.d.ts +97 -0
  97. package/footer/Footer.d.ts +1 -1
  98. package/footer/Footer.js +49 -142
  99. package/footer/Footer.stories.tsx +37 -16
  100. package/footer/Footer.test.js +16 -26
  101. package/footer/Icons.js +1 -1
  102. package/footer/types.d.ts +11 -12
  103. package/grid/Grid.d.ts +7 -0
  104. package/grid/Grid.js +91 -0
  105. package/grid/Grid.stories.tsx +219 -0
  106. package/grid/types.d.ts +115 -0
  107. package/header/Header.d.ts +4 -3
  108. package/header/Header.js +102 -150
  109. package/header/Header.stories.tsx +152 -63
  110. package/header/Header.test.js +20 -4
  111. package/header/Icons.js +2 -2
  112. package/header/types.d.ts +0 -13
  113. package/heading/Heading.js +1 -1
  114. package/heading/Heading.test.js +1 -1
  115. package/inset/Inset.js +1 -34
  116. package/inset/Inset.stories.tsx +37 -36
  117. package/inset/types.d.ts +25 -1
  118. package/layout/ApplicationLayout.d.ts +16 -6
  119. package/layout/ApplicationLayout.js +78 -135
  120. package/layout/ApplicationLayout.stories.tsx +84 -93
  121. package/layout/Icons.d.ts +5 -0
  122. package/layout/Icons.js +13 -2
  123. package/layout/SidenavContext.d.ts +5 -0
  124. package/layout/SidenavContext.js +19 -0
  125. package/layout/types.d.ts +19 -35
  126. package/link/Link.d.ts +3 -2
  127. package/link/Link.js +60 -77
  128. package/link/Link.stories.tsx +155 -53
  129. package/link/Link.test.js +9 -19
  130. package/link/types.d.ts +5 -21
  131. package/main.d.ts +8 -10
  132. package/main.js +47 -57
  133. package/nav-tabs/NavTabs.d.ts +8 -0
  134. package/nav-tabs/NavTabs.js +122 -0
  135. package/nav-tabs/NavTabs.stories.tsx +274 -0
  136. package/nav-tabs/NavTabs.test.js +82 -0
  137. package/nav-tabs/Tab.d.ts +4 -0
  138. package/nav-tabs/Tab.js +146 -0
  139. package/nav-tabs/types.d.ts +52 -0
  140. package/number-input/NumberInput.test.js +46 -12
  141. package/number-input/types.d.ts +13 -10
  142. package/package.json +19 -23
  143. package/paginator/Icons.d.ts +5 -0
  144. package/paginator/Icons.js +16 -28
  145. package/paginator/Paginator.js +20 -49
  146. package/paginator/Paginator.stories.tsx +24 -0
  147. package/paginator/Paginator.test.js +91 -39
  148. package/paragraph/Paragraph.d.ts +5 -0
  149. package/paragraph/Paragraph.js +38 -0
  150. package/paragraph/Paragraph.stories.tsx +44 -0
  151. package/password-input/PasswordInput.js +7 -4
  152. package/password-input/PasswordInput.test.js +17 -19
  153. package/password-input/types.d.ts +14 -11
  154. package/progress-bar/ProgressBar.js +61 -55
  155. package/progress-bar/ProgressBar.stories.jsx +47 -12
  156. package/progress-bar/ProgressBar.test.js +68 -23
  157. package/quick-nav/QuickNav.js +77 -26
  158. package/quick-nav/QuickNav.stories.tsx +145 -26
  159. package/quick-nav/types.d.ts +4 -4
  160. package/radio-group/Radio.d.ts +1 -1
  161. package/radio-group/Radio.js +46 -31
  162. package/radio-group/RadioGroup.js +37 -36
  163. package/radio-group/RadioGroup.stories.tsx +132 -18
  164. package/radio-group/RadioGroup.test.js +124 -97
  165. package/radio-group/types.d.ts +2 -2
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +51 -0
  168. package/resultsetTable/ResultsetTable.js +49 -108
  169. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  170. package/resultsetTable/ResultsetTable.test.js +61 -42
  171. package/resultsetTable/types.d.ts +1 -1
  172. package/select/Listbox.d.ts +4 -0
  173. package/select/Listbox.js +169 -0
  174. package/select/Option.js +11 -24
  175. package/select/Select.js +150 -224
  176. package/select/Select.stories.tsx +522 -133
  177. package/select/Select.test.js +551 -339
  178. package/select/types.d.ts +32 -13
  179. package/sidenav/Icons.d.ts +7 -0
  180. package/sidenav/Icons.js +51 -0
  181. package/sidenav/Sidenav.d.ts +6 -5
  182. package/sidenav/Sidenav.js +146 -44
  183. package/sidenav/Sidenav.stories.tsx +251 -151
  184. package/sidenav/Sidenav.test.js +25 -37
  185. package/sidenav/types.d.ts +52 -26
  186. package/slider/Slider.d.ts +2 -2
  187. package/slider/Slider.js +121 -97
  188. package/slider/Slider.stories.tsx +64 -1
  189. package/slider/Slider.test.js +122 -22
  190. package/slider/types.d.ts +4 -0
  191. package/spinner/Spinner.js +18 -24
  192. package/spinner/Spinner.stories.jsx +53 -27
  193. package/spinner/Spinner.test.js +1 -1
  194. package/switch/Switch.d.ts +2 -2
  195. package/switch/Switch.js +138 -68
  196. package/switch/Switch.stories.tsx +49 -38
  197. package/switch/Switch.test.js +145 -18
  198. package/switch/types.d.ts +6 -2
  199. package/table/Table.js +3 -3
  200. package/table/Table.stories.jsx +80 -1
  201. package/table/Table.test.js +2 -2
  202. package/tabs/Tab.d.ts +4 -0
  203. package/tabs/Tab.js +132 -0
  204. package/tabs/Tabs.d.ts +1 -1
  205. package/tabs/Tabs.js +360 -112
  206. package/tabs/Tabs.stories.tsx +119 -13
  207. package/tabs/Tabs.test.js +244 -17
  208. package/tabs/types.d.ts +17 -3
  209. package/tag/Tag.js +12 -17
  210. package/tag/Tag.stories.tsx +14 -1
  211. package/tag/Tag.test.js +1 -1
  212. package/tag/types.d.ts +1 -1
  213. package/text-input/Icons.d.ts +8 -0
  214. package/text-input/Icons.js +60 -0
  215. package/text-input/Suggestion.d.ts +4 -0
  216. package/text-input/Suggestion.js +84 -0
  217. package/text-input/Suggestions.d.ts +4 -0
  218. package/text-input/Suggestions.js +134 -0
  219. package/text-input/TextInput.js +221 -346
  220. package/text-input/TextInput.stories.tsx +280 -185
  221. package/text-input/TextInput.test.js +756 -758
  222. package/text-input/types.d.ts +46 -12
  223. package/textarea/Textarea.js +13 -23
  224. package/textarea/Textarea.stories.jsx +60 -1
  225. package/textarea/Textarea.test.js +2 -4
  226. package/textarea/types.d.ts +10 -7
  227. package/toggle-group/ToggleGroup.d.ts +2 -2
  228. package/toggle-group/ToggleGroup.js +12 -8
  229. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  230. package/toggle-group/ToggleGroup.test.js +36 -5
  231. package/toggle-group/types.d.ts +10 -2
  232. package/typography/Typography.d.ts +4 -0
  233. package/typography/Typography.js +32 -0
  234. package/typography/Typography.stories.tsx +198 -0
  235. package/typography/types.d.ts +18 -0
  236. package/typography/types.js +5 -0
  237. package/useTheme.d.ts +1234 -1
  238. package/useTheme.js +3 -3
  239. package/useTranslatedLabels.d.ts +85 -0
  240. package/useTranslatedLabels.js +20 -0
  241. package/utils/BaseTypography.d.ts +21 -0
  242. package/utils/BaseTypography.js +108 -0
  243. package/utils/FocusLock.d.ts +13 -0
  244. package/utils/FocusLock.js +138 -0
  245. package/wizard/Wizard.js +44 -45
  246. package/wizard/Wizard.stories.tsx +40 -1
  247. package/wizard/Wizard.test.js +1 -1
  248. package/wizard/types.d.ts +3 -3
  249. package/ThemeContext.d.ts +0 -10
  250. package/ThemeContext.js +0 -243
  251. package/card/ice-cream.jpg +0 -0
  252. package/common/RequiredComponent.js +0 -32
  253. package/list/List.d.ts +0 -4
  254. package/list/List.js +0 -47
  255. package/list/List.stories.tsx +0 -95
  256. package/list/types.d.ts +0 -7
  257. package/radio/Radio.d.ts +0 -4
  258. package/radio/Radio.js +0 -174
  259. package/radio/Radio.stories.tsx +0 -192
  260. package/radio/Radio.test.js +0 -71
  261. package/radio/types.d.ts +0 -54
  262. package/row/Row.d.ts +0 -3
  263. package/row/Row.js +0 -127
  264. package/row/Row.stories.tsx +0 -237
  265. package/row/types.d.ts +0 -28
  266. package/stack/Stack.d.ts +0 -3
  267. package/stack/Stack.js +0 -97
  268. package/stack/Stack.stories.tsx +0 -164
  269. package/stack/types.d.ts +0 -24
  270. package/text/Text.d.ts +0 -7
  271. package/text/Text.js +0 -30
  272. package/text/Text.stories.tsx +0 -19
  273. /package/{list → bulleted-list}/types.js +0 -0
  274. /package/{radio → flex}/types.js +0 -0
  275. /package/{row → grid}/types.js +0 -0
  276. /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 _DateInput = _interopRequireDefault(require("./DateInput"));
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("button");
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(d.toLocaleString("en-US", options))).toBeTruthy();
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("button");
119
- var d = new Date();
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(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
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("button");
138
- var d = new Date(2019, 9, 20);
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(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
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("button");
155
- var d = new Date(2010, 0, 1);
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(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
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("button");
179
- var d = new Date();
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(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
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("button");
301
+ var calendarAction = getByRole("combobox");
212
302
 
213
303
  _userEvent["default"].click(calendarAction);
214
304
 
215
- var dayButton = getByText("10").closest("button");
305
+ var dayButton = getAllByText("10")[0].closest("button");
216
306
 
217
307
  _react2.fireEvent.click(dayButton);
218
308
 
219
- var d = new Date();
220
- d.setDate(10);
221
- var options = {
222
- weekday: "short",
223
- month: "short",
224
- day: "numeric"
225
- };
226
- expect(getByText(d.toLocaleString("en-US", options))).toBeTruthy();
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: "Esc",
230
- code: "Esc",
375
+ key: "Escape",
376
+ code: "Escape",
231
377
  keyCode: 27,
232
378
  charCode: 27
233
379
  });
234
380
 
235
- expect(input.value).toBe("".concat(d.getMonth() + 1, "-10-").concat(d.getFullYear()));
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 _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], null)),
239
- getByRole = _render11.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("button");
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
- _react2.fireEvent.keyDown(document, {
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
- _react2.fireEvent.keyDown(document, {
256
- key: "ArrowRight",
257
- code: "ArrowRight",
258
- keyCode: 39,
259
- charCode: 39
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
- _react2.fireEvent.keyDown(document, {
263
- key: "ArrowRight",
264
- code: "ArrowRight",
265
- keyCode: 39,
266
- charCode: 39
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
- _react2.fireEvent.keyDown(document, {
270
- key: "ArrowLeft",
271
- code: "ArrowLeft",
272
- keyCode: 37,
273
- charCode: 37
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: "Esc",
278
- code: "Esc",
492
+ key: "Escape",
493
+ code: "Escape",
279
494
  keyCode: 27,
280
495
  charCode: 27
281
496
  });
282
497
 
283
- expect(input.value).toBe("03-01-2010");
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 _render12 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
572
+ var _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
290
573
  onChange: onChange,
291
574
  onBlur: onBlur
292
575
  })),
293
- getByRole = _render12.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 _render13 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
602
+ var _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
322
603
  onChange: onChange,
323
604
  onBlur: onBlur
324
605
  })),
325
- getByRole = _render13.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 _render14 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
630
+ var _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
352
631
  onBlur: onBlur
353
632
  })),
354
- getByRole = _render14.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 _render15 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
667
+ var _render19 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
391
668
  onBlur: onBlur,
392
669
  optional: true
393
670
  })),
394
- getByRole = _render15.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 _render16 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
700
+ var _render20 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
427
701
  onBlur: onBlur,
428
702
  onChange: onChange
429
703
  })),
430
- getByRole = _render16.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 _render17 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
728
+ var _render21 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
457
729
  disabled: true
458
730
  })),
459
- getByRole = _render17.getByRole,
460
- queryByText = _render17.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 _render18 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
748
+ var _render22 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_DateInput["default"], {
477
749
  label: "Date input label"
478
750
  })),
479
- getByRole = _render18.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("button");
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
  });