dimsum-e2e-tests 3.50.1-next.9 → 3.51.0-beta.2

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 (119) hide show
  1. package/CHANGELOG.md +268 -310
  2. package/ds-autocomplete/DSAutocompleteCO.js +1 -1
  3. package/ds-banner/DSBanner.func.spec.js +55 -0
  4. package/ds-banner/DSBanner.visual.spec.js +14 -0
  5. package/ds-banner/DSBannerCO.js +30 -0
  6. package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
  7. package/ds-breadcrumb/DSBreadcrumb.func.spec.js +69 -40
  8. package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
  9. package/ds-breadcrumb/DSBreadcrumbCO.js +17 -1
  10. package/ds-button-v3/DSButtonV3.func.spec.js +22 -0
  11. package/ds-button-v3/DSButtonV3.visual.spec.js +8 -2
  12. package/ds-button-v3/DSButtonV3CO.js +14 -0
  13. package/ds-card-v3/DSCardV3CO.js +10 -10
  14. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.func.spec.js +4 -4
  15. package/ds-comments-card/DSComments.visual.spec.js +3 -4
  16. package/ds-comments-card/DSCommentsCO.js +2 -2
  17. package/ds-controlled-form/ds-combobox/DSCombobox.func.spec.js +1 -0
  18. package/ds-controlled-form/ds-combobox/DSCombobox.smoke.spec.js +4 -56
  19. package/ds-controlled-form/ds-combobox/DSComboboxCO.js +0 -9
  20. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.keyboard-creatable.func.spec.js +3 -0
  21. package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.axe-core.spec.js +0 -1
  22. package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.keyboard.func.spec.js +5 -0
  23. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js +6 -68
  24. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js +0 -58
  25. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.multi.visual.spec.js +1 -16
  26. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.ten-thousand-options.func.spec.js +2 -22
  27. package/ds-controlled-form/ds-combobox/single-select/DSCombobox.keyboard-single-select.func.spec.js +4 -0
  28. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.axe-core.spec.js +85 -0
  29. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.functional.spec.js +242 -0
  30. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.visual.spec.js +115 -0
  31. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +56 -2
  32. package/ds-controlled-form/ds-controlled-date-range-picker/read-only/DSControlledDateRangePicker.ReadOnly.axe-core.spec.js +17 -0
  33. package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +12 -0
  34. package/ds-controlled-form/ds-controlled-date-time-picker/date-full/DateFull.axe-core.func.spec.js +27 -0
  35. package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.axe-core.func.spec.js +27 -0
  36. package/ds-controlled-form/ds-controlled-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +27 -0
  37. package/ds-controlled-form/ds-controlled-date-time-picker/date-time-input/DateTimeInput.axe-core.func.spec.js +27 -0
  38. package/ds-controlled-form/ds-controlled-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +27 -0
  39. package/ds-controlled-form/ds-controlled-date-time-picker/time-input/TimeInput.axe-core.func.spec.js +27 -0
  40. package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +4 -0
  41. package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +1 -0
  42. package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
  43. package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +4 -4
  44. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +1 -1
  45. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.func.spec.js +36 -0
  46. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +12 -1
  47. package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +14 -12
  48. package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +1 -0
  49. package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
  50. package/ds-data-table-async/basic/DSDataTable.basic.axe-core.func.spec.js +1 -1
  51. package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +5 -4
  52. package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +1 -0
  53. package/ds-data-table-async/components/HeaderCO.js +1 -1
  54. package/ds-data-table-async/components/RowCO.js +4 -0
  55. package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +1 -1
  56. package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +4 -0
  57. package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -0
  58. package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +2 -0
  59. package/ds-data-table-async/select/DSDataTable.select.func.spec.js +2 -86
  60. package/ds-data-table-async/select/DSDataTable.select.shift.func.spec.js +126 -0
  61. package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +6 -0
  62. package/ds-dialog/DSDialog.func.spec.js +14 -14
  63. package/ds-dialog/DSDialogCO.js +1 -1
  64. package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +2 -0
  65. package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +6 -2
  66. package/ds-form-combobox-multi/DSComboboxMultiCO.js +2 -9
  67. package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +2 -11
  68. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.axe-core.func.spec.js +26 -0
  69. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.keyboard-nav.func.spec.js +27 -0
  70. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.visual.spec.js +33 -0
  71. package/ds-form-combobox-single/DSComboboxSingleCO.js +2 -9
  72. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +26 -0
  73. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js +27 -0
  74. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.visual.spec.js +33 -0
  75. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +9 -5
  76. package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +1 -1
  77. package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +2 -2
  78. package/ds-menu-button/DSMenuButtonCO.js +16 -12
  79. package/ds-menu-button/activable/DSMenuButton.activableMenuItem.func.spec.js +32 -0
  80. package/ds-menu-button/{basic/DSMenuButton.activableMenuItem.func.spec.js → activable/DSMenuButton.activableMenuItem.keyboardnav.func.spec.js} +1 -26
  81. package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +20 -0
  82. package/ds-menu-button/disabled/DSMenuButton.disabled.func.spec.js +28 -0
  83. package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +20 -0
  84. package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +28 -0
  85. package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.func.spec.js +34 -0
  86. package/ds-menu-button/{basic/DSMenuButton.multiSelectItem.func.spec.js → multiselect/DSMenuButton.multiSelectItem.keyboardnav.func.spec.js} +0 -29
  87. package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +28 -0
  88. package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.func.spec.js +39 -0
  89. package/ds-menu-button/{basic/DSMenuButton.singleSelectItem.func.spec.js → singleSelect/DSMenuButton.singleSelectItem.keyboardnav.func.spec.js} +11 -42
  90. package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +20 -0
  91. package/ds-menu-button/submenu/DSMenuButton.subMenuItem.func.spec.js +42 -0
  92. package/ds-menu-button/{basic/DSMenuButton.subMenuItem.func.spec.js → submenu/DSMenuButton.subMenuItem.keyboardnav.func.spec.js} +1 -38
  93. package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +1 -1
  94. package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -0
  95. package/ds-pills-v2/DSPills.axe-core.func.spec.js +2 -2
  96. package/ds-pills-v2/DSPills.func.spec.js +26 -0
  97. package/ds-pills-v2/DSPills.visual.spec.js +1 -1
  98. package/ds-pills-v2/DSPillsV2CO.js +19 -1
  99. package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +77 -0
  100. package/ds-pills-v2/selection/DSPills.func.spec.js +155 -0
  101. package/ds-pills-v2/selection/DSPills.visual.spec.js +72 -0
  102. package/ds-query-builder/DSQueryBuilder.visual.spec.js +2 -1
  103. package/ds-query-builder/DSQueryBuilderCO.js +0 -5
  104. package/ds-shuttle-v2/DSShuttleV2CO.js +2 -4
  105. package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +0 -5
  106. package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +46 -66
  107. package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +3 -5
  108. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -7
  109. package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +0 -2
  110. package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +0 -2
  111. package/ds-slider-v2/DSSliderV2CO.js +10 -10
  112. package/ds-toast/DSToastCO.js +1 -1
  113. package/ds-toggle/DSToggle.func.spec.js +21 -18
  114. package/ds-toggle/DSToggle.visual.spec.js +56 -12
  115. package/package.json +119 -119
  116. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +0 -57
  117. package/ds-menu-button/DSMenuButton.axe-core.func.spec.js +0 -66
  118. /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.custom.attributes.spec.js +0 -0
  119. /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.func.spec.js +0 -0
@@ -0,0 +1,242 @@
1
+ /* eslint-disable max-lines */
2
+ import DSControlledDateRangePickerCO from './DSControlledDateRangePickerCO';
3
+ import { Key } from 'webdriverio';
4
+ import { type } from '../../helpers';
5
+ import DSFormLayoutBlockItemCO from '../../ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO';
6
+
7
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
+ describe('PUI-14860 - DSControlledDateRangePicker:: Basic -Func', () => {
9
+ before('loading page', async () => {
10
+ const errorOnGo = await DSControlledDateRangePickerCO.basic.go();
11
+ if (errorOnGo) throw errorOnGo;
12
+ });
13
+ it('01: should pupulate input', async () => {
14
+ await browser.keys(Key.Tab);
15
+ await type('02032020');
16
+ await browser.keys(Key.Tab);
17
+ await type('02082020');
18
+ const startingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
19
+ const startingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(0);
20
+ const startingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(0);
21
+ const endingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(1);
22
+ const endingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(1);
23
+ const endingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(1);
24
+ await expect(startingMonth).toHaveValueContaining('02');
25
+ await expect(startingDay).toHaveValueContaining('03');
26
+ await expect(startingYear).toHaveValueContaining('2020');
27
+ await expect(endingMonth).toHaveValueContaining('02');
28
+ await expect(endingDay).toHaveValueContaining('08');
29
+ await expect(endingYear).toHaveValueContaining('2020');
30
+ await expect(endingYear).toBeFocused();
31
+ });
32
+ it('02: should have the input date selected on calendar', async () => {
33
+ const openPickerBtn = await DSControlledDateRangePickerCO.getPickerBtn();
34
+ await openPickerBtn.click();
35
+ const startDate = await DSControlledDateRangePickerCO.getRangeStartDay();
36
+ const endDate = await DSControlledDateRangePickerCO.getRangeEndDay();
37
+ await expect(startDate).toHaveAttribute('aria-label', 'February third 2020, Monday');
38
+ await expect(endDate).toHaveAttribute('aria-label', 'February eighth 2020, Saturday');
39
+ });
40
+ it('03: should change the text input to the picked date (mouse)', async () => {
41
+ const exampleDate1 = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(16);
42
+ await exampleDate1.click();
43
+ const exampleDate2 = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(20);
44
+ await exampleDate2.click();
45
+ const startingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
46
+ const startingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(0);
47
+ const startingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(0);
48
+ const endingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(1);
49
+ const endingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(1);
50
+ const endingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(1);
51
+ await expect(startingMonth).toHaveValueContaining('02');
52
+ await expect(startingDay).toHaveValueContaining('07');
53
+ await expect(startingYear).toHaveValueContaining('2020');
54
+ await expect(endingMonth).toHaveValueContaining('02');
55
+ await expect(endingDay).toHaveValueContaining('09');
56
+ await expect(endingYear).toHaveValueContaining('2020');
57
+ });
58
+ it('04: should change the text input to the picked date (KB)', async () => {
59
+ await browser.keys(Key.ArrowDown);
60
+ await browser.keys(Key.Return);
61
+ await browser.keys(Key.ArrowRight);
62
+ await browser.keys(Key.ArrowRight);
63
+ await browser.keys(Key.Space);
64
+ const startingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
65
+ const startingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(0);
66
+ const startingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(0);
67
+ const endingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(1);
68
+ const endingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(1);
69
+ const endingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(1);
70
+ await expect(startingMonth).toHaveValueContaining('02');
71
+ await expect(startingDay).toHaveValueContaining('14');
72
+ await expect(startingYear).toHaveValueContaining('2020');
73
+ await expect(endingMonth).toHaveValueContaining('02');
74
+ await expect(endingDay).toHaveValueContaining('16');
75
+ await expect(endingYear).toHaveValueContaining('2020');
76
+ });
77
+ });
78
+
79
+ describe('PUI-14861 - DSControlledDateRangePicker:: Disabled -Func', () => {
80
+ before('loading page', async () => {
81
+ const errorOnGo = await DSControlledDateRangePickerCO.disabled.go();
82
+ if (errorOnGo) throw errorOnGo;
83
+ });
84
+ it('01: should not be able to trigger/focus disabled date range picker', async () => {
85
+ const openPickerBtn = await DSControlledDateRangePickerCO.getPickerBtn();
86
+ await openPickerBtn.click();
87
+ const calendar = await DSControlledDateRangePickerCO.getDayOnCalendarWrapper();
88
+ await expect(openPickerBtn).toHaveAttribute('disabled', 'true');
89
+ await expect(calendar).not.toBeDisplayedInViewport();
90
+ });
91
+ it('02: should not be able to focus disabled date range picker', async () => {
92
+ await browser.keys(Key.Tab);
93
+ const monthInput = await DSControlledDateRangePickerCO.getMonthInput();
94
+ await expect(monthInput).not.toBeFocused();
95
+ });
96
+ });
97
+
98
+ describe('PUI-14856 - DSControlledDateRangePicker:: Clearable -Func', () => {
99
+ before('loading page', async () => {
100
+ const errorOnGo = await DSControlledDateRangePickerCO.clearable.go();
101
+ if (errorOnGo) throw errorOnGo;
102
+ });
103
+ it('01: should have clearable date range pickers w/o clear button since theyre empty', async () => {
104
+ const openPickerBtn = await DSControlledDateRangePickerCO.getPickerBtn();
105
+ await openPickerBtn.waitForDisplayed();
106
+ const clearableBtn = await DSControlledDateRangePickerCO.getClearableByIndex(0);
107
+ await expect(clearableBtn).not.toBeDisplayedInViewport();
108
+ });
109
+ it('02: should populate one input and show only one clearable btn', async () => {
110
+ await browser.keys(Key.Tab);
111
+ await type('02032020');
112
+ const clearableStart = await DSControlledDateRangePickerCO.getClearableByIndex(0);
113
+ const clearableEnd = await DSControlledDateRangePickerCO.getClearableByIndex(1);
114
+ await expect(clearableStart).toBeDisplayedInViewport();
115
+ await expect(clearableEnd).not.toBeDisplayedInViewport();
116
+ });
117
+ it('03: should populate one input and show both clearable btns', async () => {
118
+ await browser.keys(Key.Tab);
119
+ await type('02032020');
120
+ const clearableStart = await DSControlledDateRangePickerCO.getClearableByIndex(0);
121
+ const clearableEnd = await DSControlledDateRangePickerCO.getClearableByIndex(1);
122
+ await expect(clearableStart).toBeDisplayedInViewport();
123
+ await expect(clearableEnd).toBeDisplayedInViewport();
124
+ });
125
+ it('04: should clear both inputs (one with mouse one with keyboard)', async () => {
126
+ await browser.keys(Key.Space);
127
+ const clearableBtn = await DSControlledDateRangePickerCO.getClearableByIndex(0);
128
+ await clearableBtn.click();
129
+ const startingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
130
+ const startingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(0);
131
+ const startingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(0);
132
+ const endingMonth = await DSControlledDateRangePickerCO.getMonthInputByIndex(1);
133
+ const endingDay = await DSControlledDateRangePickerCO.getDayInputByIndex(1);
134
+ const endingYear = await DSControlledDateRangePickerCO.getYearInputByIndex(1);
135
+ await expect(startingMonth).toHaveValueContaining('');
136
+ await expect(startingDay).toHaveValueContaining('');
137
+ await expect(startingYear).toHaveValueContaining('');
138
+ await expect(endingMonth).toHaveValueContaining('');
139
+ await expect(endingDay).toHaveValueContaining('');
140
+ await expect(endingYear).toHaveValueContaining('');
141
+ });
142
+ });
143
+
144
+ describe('PUI-14864 - DSControlledDateRangePicker:: Invalid selection -Func', () => {
145
+ before('loading page', async () => {
146
+ const errorOnGo = await DSControlledDateRangePickerCO.invalidSelection.go();
147
+ if (errorOnGo) throw errorOnGo;
148
+ });
149
+ it('01: should have invalid date range picker', async () => {
150
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
151
+ await calendarTrigger.waitForDisplayed();
152
+ const errorMessage = DSFormLayoutBlockItemCO.getErrorMessage();
153
+ const firstInput = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
154
+ await expect(firstInput).toHaveAttribute('aria-invalid', 'true');
155
+ await expect(errorMessage).toBeDisplayedInViewport();
156
+ });
157
+ it('02: should change the error message for feedback message after fixing the error', async () => {
158
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
159
+ await calendarTrigger.click();
160
+ const exampleDate1 = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(10);
161
+ await exampleDate1.click();
162
+ const exampleDate2 = await DSControlledDateRangePickerCO.getInRangeDayByIndex(2);
163
+ await exampleDate2.click();
164
+ const errorMessage = await DSFormLayoutBlockItemCO.getErrorMessage();
165
+ const feedbackMessage = await DSFormLayoutBlockItemCO.getFeedbackMessage();
166
+ const firstInput = await DSControlledDateRangePickerCO.getMonthInputByIndex(0);
167
+ await expect(firstInput).toHaveAttribute('aria-invalid', 'false');
168
+ await expect(errorMessage).not.toBeDisplayedInViewport();
169
+ await expect(feedbackMessage).toBeDisplayedInViewport();
170
+ });
171
+ });
172
+
173
+ describe('PUI-14863 - DSControlledDateRangePicker:: TabStops & Nav -Func', () => {
174
+ before('loading page', async () => {
175
+ const errorOnGo = await DSControlledDateRangePickerCO.clearable.go();
176
+ if (errorOnGo) throw errorOnGo;
177
+ });
178
+ it('01: should tab and have first input focused', async () => {
179
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
180
+ await calendarTrigger.waitForDisplayed();
181
+ await browser.keys(Key.Tab);
182
+ const monthInput = await DSControlledDateRangePickerCO.getMonthInput();
183
+ await expect(monthInput).toBeFocused();
184
+ });
185
+ it('02: should move to the next input after populating the current one', async () => {
186
+ await type('10');
187
+ const dayInput = await DSControlledDateRangePickerCO.getDayInput();
188
+ await expect(dayInput).toBeFocused();
189
+ });
190
+ it('03: should tab to clearable button', async () => {
191
+ await browser.keys(Key.Tab);
192
+ await browser.keys(Key.Tab);
193
+ await browser.keys(Key.Tab);
194
+ await browser.keys([Key.Shift, Key.Tab]);
195
+ const clearableBtn = await DSControlledDateRangePickerCO.getClearableByIndex(0);
196
+ await expect(clearableBtn).toBeFocused();
197
+ });
198
+ it('04: should tab through next input to picker trigger', async () => {
199
+ await browser.keys(Key.Tab);
200
+ await browser.keys(Key.Tab);
201
+ await browser.keys(Key.Tab);
202
+ await browser.keys(Key.Tab);
203
+ const clearableBtn = await DSControlledDateRangePickerCO.getPickerBtn();
204
+ await expect(clearableBtn).toBeFocused();
205
+ });
206
+ it('05: should open trigger and have first navigation button focused', async () => {
207
+ await browser.keys(Key.Return);
208
+ await browser.keys(Key.Return);
209
+ const prevMonthBtn = await DSControlledDateRangePickerCO.getPrevMonthBtn();
210
+ const calendarLabel = await (await DSControlledDateRangePickerCO.getCalendarHeaderLabel()).getText();
211
+ await expect(calendarLabel).toEqual('September 2000');
212
+ await expect(prevMonthBtn).toBeFocused();
213
+ });
214
+ it('06: should tab through navigation buttons to last one', async () => {
215
+ await browser.keys(Key.Tab);
216
+ await browser.keys(Key.Tab);
217
+ await browser.keys(Key.Tab);
218
+ await browser.keys(Key.Return);
219
+ const nextYearBtn = await DSControlledDateRangePickerCO.getNextYearBtn();
220
+ const calendarLabel = await (await DSControlledDateRangePickerCO.getCalendarHeaderLabel()).getText();
221
+ await expect(calendarLabel).toEqual('September 2001');
222
+ await expect(nextYearBtn).toBeFocused();
223
+ });
224
+ it('07: should tab and navigate using header controllers with KB', async () => {
225
+ await browser.keys([Key.Shift, Key.Tab]);
226
+ await browser.keys(Key.Return);
227
+ await browser.keys([Key.Shift, Key.Tab]);
228
+ await browser.keys(Key.Return);
229
+ const nextYearBtn = await DSControlledDateRangePickerCO.getNextMonthBtn();
230
+ const calendarLabel = await (await DSControlledDateRangePickerCO.getCalendarHeaderLabel()).getText();
231
+ await expect(calendarLabel).toEqual('October 2000');
232
+ await expect(nextYearBtn).toBeFocused();
233
+ });
234
+ it('08: should tab to calendar and have day focused', async () => {
235
+ await browser.keys(Key.Tab);
236
+ await browser.keys(Key.Tab);
237
+ await browser.keys(Key.Tab);
238
+ const focusedDay = await DSControlledDateRangePickerCO.getFocusedDay();
239
+ await expect(focusedDay).toBeFocused();
240
+ });
241
+ });
242
+ }
@@ -0,0 +1,115 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSControlledDateRangePickerCO from './DSControlledDateRangePickerCO';
3
+ import { type } from '../../helpers';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ describe('PUI-9219 - DSControlledDateRangePicker:: Basic -Visual', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DSControlledDateRangePickerCO.basic.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display contr. date range picker empty and closed', async () => {
12
+ await browser.eyesOpen();
13
+ const snapshot = await browser.eyesCheckSnapshot(
14
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-empty'),
15
+ );
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+ it('02: should display contr. date range picker open and with 1 date selected', async () => {
19
+ await browser.eyesOpen();
20
+ const openDatePicker = await DSControlledDateRangePickerCO.getPickerBtn();
21
+ await openDatePicker.click();
22
+ const day = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(10);
23
+ await day.click();
24
+ const snapshot = await browser.eyesCheckSnapshot(
25
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-one-date'),
26
+ );
27
+ await expect(snapshot).toEqual(0);
28
+ });
29
+ it('03: should display contr. date range picker open and with 2 dates selected', async () => {
30
+ await browser.eyesOpen();
31
+ const day = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(20);
32
+ await day.click();
33
+ const snapshot = await browser.eyesCheckSnapshot(
34
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-two-date'),
35
+ );
36
+ await expect(snapshot).toEqual(0);
37
+ });
38
+ it('04: should display contr. date range picker open and with long range end', async () => {
39
+ await browser.eyesOpen();
40
+ const nextMonthArrow = await DSControlledDateRangePickerCO.getNextMonthBtn();
41
+ await nextMonthArrow.click();
42
+ const day = await DSControlledDateRangePickerCO.getDayOnCalendarByIndex(10);
43
+ await day.click();
44
+ const snapshot = await browser.eyesCheckSnapshot(
45
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-long-end'),
46
+ );
47
+ await expect(snapshot).toEqual(0);
48
+ });
49
+ it('05: should display contr. date range picker open and with long range start', async () => {
50
+ await browser.eyesOpen();
51
+ const prevMonthArrow = await DSControlledDateRangePickerCO.getPrevMonthBtn();
52
+ await prevMonthArrow.click();
53
+ const snapshot = await browser.eyesCheckSnapshot(
54
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-long-start'),
55
+ );
56
+ await expect(snapshot).toEqual(0);
57
+ });
58
+ });
59
+
60
+ describe('PUI-14859 - DSControlledDateRangePicker:: Invalid selection -Visual', () => {
61
+ before('loading page', async () => {
62
+ const errorOnGo = await DSControlledDateRangePickerCO.invalidSelection.go();
63
+ if (errorOnGo) throw errorOnGo;
64
+ });
65
+ it('01: should display invalid date range picker with closed calendar matching baseline', async () => {
66
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
67
+ await calendarTrigger.waitForDisplayed();
68
+ const snapshot = await browser.eyesCheckSnapshot(
69
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-invalid-close'),
70
+ );
71
+ await expect(snapshot).toEqual(0);
72
+ });
73
+ it('02: should display invalid date range picker with expanded calendar matching baseline', async () => {
74
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
75
+ await calendarTrigger.click();
76
+ const snapshot = await browser.eyesCheckSnapshot(
77
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-invalid-open'),
78
+ );
79
+ await expect(snapshot).toEqual(0);
80
+ });
81
+ });
82
+
83
+ describe('PUI-14858 - DSControlledDateRangePicker:: Disabled -Visual', () => {
84
+ before('loading page', async () => {
85
+ const errorOnGo = await DSControlledDateRangePickerCO.disabled.go();
86
+ if (errorOnGo) throw errorOnGo;
87
+ });
88
+ it('01: should display disabled date range picker and matching baseline', async () => {
89
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
90
+ await calendarTrigger.waitForDisplayed();
91
+ const snapshot = await browser.eyesCheckSnapshot(
92
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-disabled'),
93
+ );
94
+ await expect(snapshot).toEqual(0);
95
+ });
96
+ });
97
+
98
+ describe('PUI-14857 - DSControlledDateRangePicker:: Clearable -Visual', () => {
99
+ before('loading page', async () => {
100
+ const errorOnGo = await DSControlledDateRangePickerCO.clearable.go();
101
+ if (errorOnGo) throw errorOnGo;
102
+ });
103
+ it('01: should display two clearable inputs. One populated, one empty', async () => {
104
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
105
+ await calendarTrigger.waitForDisplayed();
106
+ await browser.keys(Key.Tab);
107
+ await browser.keys(Key.Tab);
108
+ await type('02032020');
109
+ const snapshot = await browser.eyesCheckSnapshot(
110
+ DSControlledDateRangePickerCO.snapshotPath('date-range-picker-clearable'),
111
+ );
112
+ await expect(snapshot).toEqual(0);
113
+ });
114
+ });
115
+ }
@@ -1,10 +1,22 @@
1
1
  /* eslint-disable import/no-relative-packages */
2
2
  /* eslint-disable max-lines */
3
- import { PATH_E2E_CONTROLLEDFORM } from '../../../environments/storybook/paths';
3
+ import { PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER } from '../../../environments/storybook/paths';
4
4
  import { PageObject, Urlbuilder, getElementByIndex } from '../../helpers';
5
5
 
6
6
  export default class DSControlledDateRangePickerCO extends PageObject {
7
- static basic = new Urlbuilder(PATH_E2E_CONTROLLEDFORM, 'basic-date-range');
7
+ static basic = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'basic-test');
8
+
9
+ static clearable = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'clearable-test');
10
+
11
+ static invalidSelection = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'invalid-selection-test');
12
+
13
+ static fullFeatures = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'full-features-test');
14
+
15
+ static disabled = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'disabled-test');
16
+
17
+ static withValidation = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'example-with-validation-test');
18
+
19
+ static readOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'read-only-test');
8
20
 
9
21
  // Story elements
10
22
 
@@ -12,6 +24,10 @@ export default class DSControlledDateRangePickerCO extends PageObject {
12
24
 
13
25
  static getPrevMonthBtn = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-prev-month"]');
14
26
 
27
+ static getNextYearBtn = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-next-year"]');
28
+
29
+ static getPrevYearBtn = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-prev-year"]');
30
+
15
31
  // DateInput
16
32
  static getMonthInput = async () => $('[data-testid="ds-controlled-date-time-picker-month-input"]');
17
33
 
@@ -19,6 +35,20 @@ export default class DSControlledDateRangePickerCO extends PageObject {
19
35
 
20
36
  static getYearInput = async () => $('[data-testid="ds-controlled-date-time-picker-year-input"]');
21
37
 
38
+ static getMonthInputByIndex = async (index = 0) =>
39
+ $$('[data-testid="ds-controlled-date-time-picker-month-input"]')[index];
40
+
41
+ static getDayInputByIndex = async (index = 0) =>
42
+ $$('[data-testid="ds-controlled-date-time-picker-day-input"]')[index];
43
+
44
+ static getYearInputByIndex = async (index = 0) =>
45
+ $$('[data-testid="ds-controlled-date-time-picker-year-input"]')[index];
46
+
47
+ static getClearableBtns = async () => $$(`[data-testid="ds-controlled-date-time-picker-clear-btn"]`);
48
+
49
+ static getClearableByIndex = async (index = 0) =>
50
+ $$(`[data-testid="ds-controlled-date-time-picker-clear-btn"]`)[index];
51
+
22
52
  // TimeInput
23
53
  static getHourInput = async () => $('[data-testid="ds-controlled-date-time-picker-hour-input"]');
24
54
 
@@ -30,6 +60,9 @@ export default class DSControlledDateRangePickerCO extends PageObject {
30
60
 
31
61
  static getDayOnCalendarByIndex = async (index) => getElementByIndex(this.getDaysOnCalendar, index);
32
62
 
63
+ static getInRangeDayByIndex = async (index = 0) =>
64
+ $$('[data-testid="ds-controlled-date-time-picker-calendar-in-range-day"]')[index];
65
+
33
66
  // Picker
34
67
  static getPickerBtn = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-trigger-icon"]');
35
68
 
@@ -44,7 +77,28 @@ export default class DSControlledDateRangePickerCO extends PageObject {
44
77
  return $(`[data-testid="ds-controlled-date-time-picker-timewheel-minute"]=${value}`);
45
78
  }
46
79
 
80
+ static async getRangeStartDay() {
81
+ return $(`[data-testid="ds-controlled-date-time-picker-calendar-start-range-day"]`);
82
+ }
83
+
84
+ static async getRangeEndDay() {
85
+ return $(`[data-testid="ds-controlled-date-time-picker-calendar-end-range-day"]`);
86
+ }
87
+
88
+ static async getFocusedDay() {
89
+ return $(`[data-testid="ds-controlled-date-time-picker-calendar-focused-day"]`);
90
+ }
91
+
47
92
  // Calendar
93
+
94
+ static async getDayOnCalendarWrapper() {
95
+ return $(`[data-testid="ds-controlled-date-time-picker-calendar-context-content-wrapper"]`);
96
+ }
97
+
98
+ static async getCalendarHeaderLabel() {
99
+ return $(`[data-testid="ds-controlled-date-time-picker-calendar-header-label"]`);
100
+ }
101
+
48
102
  // Time Wheel
49
103
  // Screenshots
50
104
  static snapshotPath(example = 'basic') {
@@ -0,0 +1,17 @@
1
+ import DSControlledDateRangePickerCO from '../DSControlledDateRangePickerCO';
2
+ import { axeCoreCheck } from '../../../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-15082 - DSControlledDateRangePicker:: ReadOnly -AxeCore', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSControlledDateRangePickerCO.readOnly.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+ it('01: should display a readOnly dateRangePicker with the calendar opened and pass axe-core scan', async () => {
11
+ const calendarTrigger = await DSControlledDateRangePickerCO.getPickerBtn();
12
+ await calendarTrigger.waitForDisplayed();
13
+ const result = await axeCoreCheck();
14
+ expect(result.length).toBe(0);
15
+ });
16
+ });
17
+ }
@@ -84,6 +84,18 @@ export default class DSDateTimePickerCO extends PageObject {
84
84
  'custom-aria-and-data-attributes-test',
85
85
  );
86
86
 
87
+ static dateInputReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'date-input-read-only');
88
+
89
+ static dateFullReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'date-full-read-only');
90
+
91
+ static dateTimeInputReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'date-time-input-read-only');
92
+
93
+ static dateTimeFullReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'date-time-full-read-only');
94
+
95
+ static timeInputReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'time-input-read-only');
96
+
97
+ static timeFullReadOnly = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_TIME_PICKER, 'time-full-read-only');
98
+
87
99
  // Story elements
88
100
  static getButton = async (text) => $(`button*=${text}`);
89
101
 
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { axeCoreCheck } from '../../../helpers';
5
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
6
+
7
+ if (
8
+ (!browser.capabilities['ice:options'].isPhone &&
9
+ !browser.capabilities['ice:options'].isTablet &&
10
+ browser.capabilities.browserName === 'chrome') ||
11
+ browser.capabilities.browserName === 'Chrome'
12
+ ) {
13
+ describe('PUI-15078 - DateFull:: ReadOnly - AxeCore', () => {
14
+ before('loading page', async () => {
15
+ const errorOnGo = await DateTimePickerCO.dateFullReadOnly.go();
16
+ if (errorOnGo) throw errorOnGo;
17
+ });
18
+ it('01: should display a date full with readOnly and pass axe-core scan', async () => {
19
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
20
+ await picker.click();
21
+ const calendar = await DateTimePickerCO.getControllerCalendar();
22
+ await calendar.waitForDisplayed();
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { Key } from 'webdriverio';
5
+ import { axeCoreCheck } from '../../../helpers';
6
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
7
+
8
+ if (
9
+ (!browser.capabilities['ice:options'].isPhone &&
10
+ !browser.capabilities['ice:options'].isTablet &&
11
+ browser.capabilities.browserName === 'chrome') ||
12
+ browser.capabilities.browserName === 'Chrome'
13
+ ) {
14
+ describe('PUI-15077 - DateInput:: ReadOnly - AxeCore', () => {
15
+ before('loading page', async () => {
16
+ const errorOnGo = await DateTimePickerCO.dateInputReadOnly.go();
17
+ if (errorOnGo) throw errorOnGo;
18
+ });
19
+ it('01: should display a date input with readOnly and pass axe-core scan', async () => {
20
+ const month = await DateTimePickerCO.getMonthInput();
21
+ await month.waitForDisplayed();
22
+ await browser.keys(Key.Tab);
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { axeCoreCheck } from '../../../helpers';
5
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
6
+
7
+ if (
8
+ (!browser.capabilities['ice:options'].isPhone &&
9
+ !browser.capabilities['ice:options'].isTablet &&
10
+ browser.capabilities.browserName === 'chrome') ||
11
+ browser.capabilities.browserName === 'Chrome'
12
+ ) {
13
+ describe('PUI-15082 - DateTimeFull:: ReadOnly - AxeCore', () => {
14
+ before('loading page', async () => {
15
+ const errorOnGo = await DateTimePickerCO.dateTimeFullReadOnly.go();
16
+ if (errorOnGo) throw errorOnGo;
17
+ });
18
+ it('01: should display a date time full with readOnly and pass axe-core scan', async () => {
19
+ const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
20
+ await picker.click();
21
+ const calendar = await DateTimePickerCO.getControllerCalendarTimeWheel();
22
+ await calendar.waitForDisplayed();
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { Key } from 'webdriverio';
5
+ import { axeCoreCheck } from '../../../helpers';
6
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
7
+
8
+ if (
9
+ (!browser.capabilities['ice:options'].isPhone &&
10
+ !browser.capabilities['ice:options'].isTablet &&
11
+ browser.capabilities.browserName === 'chrome') ||
12
+ browser.capabilities.browserName === 'Chrome'
13
+ ) {
14
+ describe('PUI-15081 - DateTimeInput:: ReadOnly - AxeCore', () => {
15
+ before('loading page', async () => {
16
+ const errorOnGo = await DateTimePickerCO.dateTimeInputReadOnly.go();
17
+ if (errorOnGo) throw errorOnGo;
18
+ });
19
+ it('01: should display a date time input with readOnly and pass axe-core scan', async () => {
20
+ const month = await DateTimePickerCO.getMonthInput();
21
+ await month.waitForDisplayed();
22
+ await browser.keys(Key.Tab);
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { axeCoreCheck } from '../../../helpers';
5
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
6
+
7
+ if (
8
+ (!browser.capabilities['ice:options'].isPhone &&
9
+ !browser.capabilities['ice:options'].isTablet &&
10
+ browser.capabilities.browserName === 'chrome') ||
11
+ browser.capabilities.browserName === 'Chrome'
12
+ ) {
13
+ describe('PUI-15080 - TimeFull:: ReadOnly - AxeCore', () => {
14
+ before('loading page', async () => {
15
+ const errorOnGo = await DateTimePickerCO.timeFullReadOnly.go();
16
+ if (errorOnGo) throw errorOnGo;
17
+ });
18
+ it('01: should display a time full with readOnly and pass axe-core scan', async () => {
19
+ const picker = await DateTimePickerCO.getTimeWheelPickerBtn();
20
+ await picker.click();
21
+ const calendar = await DateTimePickerCO.getContextualMenuTimeWheel();
22
+ await calendar.waitForDisplayed();
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }
@@ -0,0 +1,27 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { Key } from 'webdriverio';
5
+ import { axeCoreCheck } from '../../../helpers';
6
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
7
+
8
+ if (
9
+ (!browser.capabilities['ice:options'].isPhone &&
10
+ !browser.capabilities['ice:options'].isTablet &&
11
+ browser.capabilities.browserName === 'chrome') ||
12
+ browser.capabilities.browserName === 'Chrome'
13
+ ) {
14
+ describe('PUI-15079 - TimeInput:: ReadOnly - AxeCore', () => {
15
+ before('loading page', async () => {
16
+ const errorOnGo = await DateTimePickerCO.timeInputReadOnly.go();
17
+ if (errorOnGo) throw errorOnGo;
18
+ });
19
+ it('01: should display a time input with readOnly and pass axe-core scan', async () => {
20
+ const hour = await DateTimePickerCO.getHourInput();
21
+ await hour.waitForDisplayed();
22
+ await browser.keys(Key.Tab);
23
+ const result = await axeCoreCheck();
24
+ expect(result.length).toBe(0);
25
+ });
26
+ });
27
+ }