dimsum-e2e-tests 3.53.0-alpha.1 → 3.53.0-alpha.3
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/CHANGELOG.md +8 -0
- package/ds-accordion/DSAccordionCO.js +15 -11
- package/ds-accordion/role/DSAccordion.role-heading.func.spec.js +21 -0
- package/ds-accordion/scrollable-content/DSAccordion.scrollable-content.visual.spec.js +42 -0
- package/ds-accordion/slots/DSAccordion.slots.func.spec.js +12 -0
- package/ds-accordion/wrapLabel/DSAccordion.wrap-label.visual.spec.js +20 -0
- package/ds-autocomplete/DSAutocompleteCO.js +18 -0
- package/ds-autocomplete/slots/DSAutocomplete.slots.axe-core.func.spec.js +20 -0
- package/ds-autocomplete/slots/DSAutocomplete.slots.func.spec.js +45 -0
- package/ds-autocomplete/slots/DSAutocomplete.slots.visual.spec.js +21 -0
- package/ds-banner/DSBanner.func.spec.js +4 -60
- package/ds-banner/DSBanner.text-resize.visual.spec.js +15 -0
- package/ds-banner/DSBanner.text-wrapping.visual.spec.js +31 -0
- package/ds-banner/DSBanner.visual.spec.js +0 -29
- package/ds-banner/DSBannerCO.js +24 -2
- package/ds-banner/aria-and-role/DSBanner.aria-and-role.func.spec.js +63 -0
- package/ds-banner/slots/DSBanner.slots.func.spec.js +65 -0
- package/ds-banner/slots/DSBanner.slots.visual.spec.js +17 -0
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +5 -3
- package/ds-button-v3/DSButtonV3.type-submit.func.spec.js +28 -0
- package/ds-button-v3/DSButtonV3.visual.spec.js +7 -2
- package/ds-button-v3/DSButtonV3CO.js +2 -0
- package/ds-card-navigation/CardNavigationCO.js +56 -0
- package/ds-card-navigation/DSCardNavigation.func.spec.js +50 -1
- package/ds-card-navigation/DSCardNavigation.slots.func.spec.js +127 -0
- package/ds-card-navigation/DSCardNavigation.slots.visual.spec.js +26 -0
- package/ds-card-navigation/DSCardNavigation.visual.spec.js +16 -0
- package/ds-card-v3/DSCardV3CO.js +20 -0
- package/ds-card-v3/drag-n-drop/DSCardV3.DnD.visual.spec.js +1 -1
- package/ds-card-v3/slots/DSCardV3.slots.axe-core.spec.js +22 -0
- package/ds-card-v3/slots/DSCardV3.slots.func.spec.js +36 -0
- package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +18 -0
- package/ds-chat/DSChat.func.spec.js +3 -2
- package/ds-chat/DSChat.visual.spec.js +3 -2
- package/ds-chat/DSChatCO.js +0 -8
- package/ds-chat/floatingbutton/DSChat-floating-button.visual.spec.js +1 -1
- package/ds-chip/DSChipCO.js +24 -0
- package/ds-chip/slots/DSChip.slots.axe-core.spec.js +17 -0
- package/ds-chip/slots/DSChip.slots.func.spec.js +39 -0
- package/ds-chip/slots/DSChip.slots.visual.spec.js +17 -0
- package/ds-circular-indeterminate-indicator/DSCircularIndicator.visual.spec.js +2 -1
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable.visual.spec.js +6 -4
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -0
- package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.func.spec.js +19 -0
- package/ds-controlled-form/ds-controlled-radio-group/DSControlledRadioGroup.axe-core.func.spec.js +31 -0
- package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +1 -0
- package/ds-data-table-async/DSDataTableCO.js +173 -108
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -45
- package/ds-data-table-async/components/FilterBarCO.js +8 -0
- package/ds-data-table-async/components/FiltersCO.js +12 -0
- package/ds-data-table-async/components/HeaderCO.js +5 -0
- package/ds-data-table-async/components/PaginationNavCO.js +1 -1
- package/ds-data-table-async/date-filters/DSDataTable.date-switcher.single.func.spec.js +1 -1
- package/ds-data-table-async/date-filters/DSDataTable.date-switcher.visual.spec.js +18 -8
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +3 -1
- package/ds-data-table-async/dnd/DSDataTable.dnd_fixed-width.visual.spec.js +33 -0
- package/ds-data-table-async/empty-state/DSDataTable.empty-state.visual.spec.js +13 -0
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +5 -5
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.visual.spec.js +1 -0
- package/ds-data-table-async/filters/DSDataTable.filters.visual.spec.js +18 -1
- package/ds-data-table-async/filters/DSDataTable.free-text-search.keyboard.func.spec.js +242 -0
- package/ds-data-table-async/filters/DSDataTable.free-text-search.visual.spec.js +54 -0
- package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +3 -3
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +56 -0
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +55 -0
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.visual.spec.js +27 -0
- package/ds-data-table-async/more/DSDataTable.headers.visual.spec.js +0 -63
- package/ds-data-table-async/select/DSDataTable.select.func.spec.js +1 -1
- package/ds-data-table-async/slots/DSDataTable.slots.func.spec.js +40 -0
- package/ds-data-table-async/slots/DSDataTable.slots.visual.spec.js +19 -0
- package/ds-data-table-async/sorting/DSDataTable.sorting.visual.spec.js +118 -0
- package/ds-dataviz/DSDataViz.axis.visual.spec.js +2 -1
- package/ds-dataviz/DSDataViz.scroll.visual.spec.js +1 -0
- package/ds-dataviz/DSDataViz.ticks.visual.spec.js +2 -1
- package/ds-dialog/DSDialog.cases.visual.spec.js +3 -4
- package/ds-dialog/DSDialog.visual.spec.js +7 -14
- package/ds-dialog/DSDialogCO.js +5 -13
- package/ds-dialog/axe-core/DSDialog.error.axe-core.func.spec.js +24 -0
- package/ds-dialog/axe-core/DSDialog.info.axe-core.func.spec.js +24 -0
- package/ds-dialog/axe-core/DSDialog.scroll-body.axe-core.func.spec.js +24 -0
- package/ds-dialog/axe-core/DSDialog.success.axe-core.func.spec.js +24 -0
- package/ds-dialog/axe-core/DSDialog.warning.axe-core.spec.func.js +24 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2.visual.spec.js +5 -5
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +96 -1
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +7 -3
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.mouse.func.spec.js +25 -0
- package/ds-form-combobox-multi/menu-position/DSComboboxMulti.menu-position.visual.spec.js +42 -0
- package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.func.spec.js +100 -0
- package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.visual.spec.js +51 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +97 -1
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.mouse.func.spec.js +25 -0
- package/ds-form-combobox-single/menu-position/DSComboboxSingle.menu-position.visual.spec.js +93 -0
- package/ds-form-combobox-single/slots/DSComboboxSingle.slots.func.spec.js +100 -0
- package/ds-form-combobox-single/slots/DSComboboxSingle.slots.visual.spec.js +53 -0
- package/ds-form-date-range-picker/aria-disabled/DateRangePicker.applyAriaDisabled.keyboard-nav.func.spec.js +31 -5
- package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +7 -5
- package/ds-form-date-time-picker/date-input/DateInput.keyboard-nav.func.spec.js +2 -2
- package/ds-form-date-time-picker/date-time-full/DateTimeFull.applyAriaDisabled.axe-core.func.spec.js +1 -1
- package/ds-form-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +25 -0
- package/ds-form-date-time-picker/date-time-full/DateTimePicker.applyAriaDisabled.keyboard-nav.func.spec.js +6 -1
- package/ds-form-date-time-picker/date-time-full/DateTimePicker.func.spec.js +32 -2
- package/ds-form-date-time-picker/date-time-full/DateTimePicker.keyboard-nav.func.spec.js +6 -1
- package/ds-form-date-time-picker/date-time-full/DateTimePicker.readOnly.keyboard-nav.func.spec.js +6 -1
- package/ds-form-date-time-picker/date-time-input/DateTimeInput.applyAriaDisabled.keyboard-nav.func.spec.js +40 -4
- package/ds-form-date-time-picker/showcase/DateTimePicker.applyAriaDisabled-showcase.visual.spec.js +2 -2
- package/ds-form-date-time-picker/showcase/DateTimePicker.readOnly-showcase.visual.spec.js +2 -2
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.axe-core.func.spec.js +4 -1
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +4 -0
- package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +57 -0
- package/ds-form-native-select/NativeSelectCO.js +35 -0
- package/{ds-toggle → ds-form-toggle}/DSToggle.axe-core.func.spec.js +6 -2
- package/{ds-toggle → ds-form-toggle}/DSToggle.func.spec.js +13 -8
- package/{ds-toggle → ds-form-toggle}/DSToggle.visual.spec.js +2 -2
- package/{ds-toggle → ds-form-toggle}/DSToggleCO.js +1 -1
- package/ds-global-header/GlobalHeader.axe-core.func.spec.js +13 -0
- package/ds-global-header/GlobalHeaderCO.js +2 -0
- package/{ds-controlled-form → ds-hooks}/useMask/Number/UseNumberMask.func.spec.js +25 -12
- package/{ds-controlled-form → ds-hooks}/useMask/Number/UseNumberMask.visual.spec.js +4 -1
- package/{ds-controlled-form → ds-hooks}/useMask/Phone/UsePhoneMask.func.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/Phone/UsePhoneMask.visual.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/RegExp/UseRegExpMask.func.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/SSN/UseSsnMask.func.spec.js +1 -1
- package/{ds-controlled-form → ds-hooks}/useMask/ZipCode/UseZipCodeMask.func.spec.js +1 -1
- package/ds-indeterminate-progress-indicator/DSIndetermintateProgressIndicator.axe-core.func.spec.js +31 -0
- package/ds-menu-button/DSMenuButtonCO.js +2 -0
- package/ds-menu-button/basic/DSMenuButton.basic.func.spec.js +28 -0
- package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +6 -1
- package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +6 -1
- package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +7 -2
- package/ds-menu-item/DSMenuItems.visual.spec.js +8 -32
- package/ds-mobile/MobileDatePicker/MobileDatePicker.visual.spec.js +0 -13
- package/ds-modal-slide/ModalSlideCO.js +2 -0
- package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -1
- package/ds-pagination/DSPagination.axe-core.func.spec.js +64 -0
- package/ds-pagination/DSPaginationCO.js +12 -0
- package/ds-pills-v2/DSPills.visual.spec.js +3 -1
- package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +6 -1
- package/ds-pills-v2/selection/DSPills.func.spec.js +32 -30
- package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +31 -0
- package/ds-progress-indicator/DSProgressIndicator.func.spec.js +8 -3
- package/ds-progress-indicator/DSProgressIndicator.visual.spec.js +12 -2
- package/ds-progress-indicator/DSProgressIndicatorCO.js +5 -3
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +10 -3
- package/ds-read-more/DSReadMore.func.spec.js +0 -58
- package/ds-read-more/DSReadMore.keyboard-nav.func.spec.js +66 -0
- package/ds-read-more/DSReadMore.slots.func.spec.js +58 -0
- package/ds-read-more/DSReadMore.slots.visual.spec.js +23 -0
- package/ds-read-more/DSReadMore.visual.spec.js +41 -17
- package/ds-read-more/DSReadMore.width-change.visual.spec.js +85 -0
- package/ds-read-more/DSReadMore.with-tooltip.func.spec.js +63 -0
- package/ds-read-more/DSReadMoreCO.js +20 -0
- package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +3 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +0 -79
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.func.spec.js +6 -2
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +21 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +8 -3
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +43 -0
- package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +3 -2
- package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +1 -1
- package/ds-shuttle-v2/load-more/DSShuttleV2.load-more.keyboard.func.spec.js +61 -0
- package/ds-slider-v2/DSSliderV2.extra.func.spec.js +44 -0
- package/ds-slider-v2/DSSliderV2.func.spec.js +98 -0
- package/ds-slider-v2/DSSliderV2CO.js +8 -0
- package/ds-svg/DSSvg.axe-core.func.spec.js +32 -0
- package/ds-svg/DSSvgCO.js +2 -3
- package/ds-tabs/DSTabs.onTabChange.func.spec.js +33 -0
- package/ds-tabs/DSTabsCO.js +29 -1
- package/ds-tabs/slots/DSTabs.slots.func.spec.js +77 -0
- package/ds-tabs/slots/DSTabs.slots.visual.spec.js +49 -0
- package/ds-tabs/with-carousel/DSTabs.with-carousel.visual.spec.js +5 -4
- package/ds-tooltip-v3/DSTooltipV3CO.js +6 -2
- package/ds-treeview/DSTreeViewCO.js +8 -0
- package/ds-treeview/dragAndDrop/TreeView-dnd.func.spec.js +0 -50
- package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +61 -0
- package/package.json +188 -187
- package/paths.js +17 -1
- package/ds-dialog/DSDialog.smoke.spec.js +0 -133
- package/ds-slider-v2/DSSliderV2.skipped.js +0 -46
- /package/ds-form-combobox-multi/iframe/{DSComboboxMulti.insideIframe.func.spec.js → DSComboboxMulti.insideIframe.visual.spec.js} +0 -0
- /package/{ds-controlled-form → ds-hooks}/useMask/useMaskCO.js +0 -0
- /package/ds-indeterminate-progress-indicator/{DSIndetermintateProgressIndicator.func.spec.js → DSIndetermintateProgressIndicator.func.spec copy.js} +0 -0
|
@@ -5,7 +5,7 @@ import { type } from '../../helpers';
|
|
|
5
5
|
import DateRangePickerCO from '../DateRangePickerCO';
|
|
6
6
|
|
|
7
7
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
-
describe('PUI-
|
|
8
|
+
describe('PUI-16204 - DateTimePicker:: ApplyAriaDisabled: keyboard navigation', () => {
|
|
9
9
|
before('loading page', async () => {
|
|
10
10
|
const errorOnGo = await DateRangePickerCO.applyAriaDisabled.go();
|
|
11
11
|
if (errorOnGo) throw errorOnGo;
|
|
@@ -75,17 +75,43 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
75
75
|
const picker = await DateRangePickerCO.getPickerBtn();
|
|
76
76
|
await expect(picker).toBeFocused();
|
|
77
77
|
});
|
|
78
|
-
it('14: should
|
|
78
|
+
it('14: should open the calendar - "Enter"', async () => {
|
|
79
79
|
await browser.keys(Key.Enter);
|
|
80
80
|
const calendar = await DateRangePickerCO.getControllerCalendar();
|
|
81
|
+
await expect(calendar).toBeDisplayed();
|
|
82
|
+
});
|
|
83
|
+
it('15: should close the calendar - "Escape"', async () => {
|
|
84
|
+
await browser.keys(Key.Escape);
|
|
85
|
+
const calendar = await DateRangePickerCO.getControllerCalendar();
|
|
81
86
|
await expect(calendar).not.toBeDisplayed();
|
|
82
87
|
});
|
|
83
|
-
it('
|
|
88
|
+
it('16: should open the calendar - "Space"', async () => {
|
|
84
89
|
await browser.keys(Key.Space);
|
|
85
90
|
const calendar = await DateRangePickerCO.getControllerCalendar();
|
|
86
|
-
await expect(calendar).
|
|
91
|
+
await expect(calendar).toBeDisplayed();
|
|
87
92
|
});
|
|
88
|
-
it('
|
|
93
|
+
it('17: should not change "from" and "to" dates', async () => {
|
|
94
|
+
await browser.keys(Key.ArrowDown);
|
|
95
|
+
await browser.keys(Key.ArrowDown);
|
|
96
|
+
await browser.keys(Key.ArrowDown);
|
|
97
|
+
await browser.keys(Key.Enter);
|
|
98
|
+
|
|
99
|
+
const fromMonth = await DateRangePickerCO.getMonthInputByIndex(0);
|
|
100
|
+
const fromDay = await DateRangePickerCO.getDayInputByIndex(0);
|
|
101
|
+
const fromYear = await DateRangePickerCO.getYearInputByIndex(0);
|
|
102
|
+
const toMonth = await DateRangePickerCO.getMonthInputByIndex(1);
|
|
103
|
+
const toDay = await DateRangePickerCO.getDayInputByIndex(1);
|
|
104
|
+
const toYear = await DateRangePickerCO.getYearInputByIndex(1);
|
|
105
|
+
|
|
106
|
+
await expect(fromMonth).toHaveValue('12');
|
|
107
|
+
await expect(fromDay).toHaveValue('04');
|
|
108
|
+
await expect(fromYear).toHaveValue('2024');
|
|
109
|
+
await expect(toMonth).toHaveValue('12');
|
|
110
|
+
await expect(toDay).toHaveValue('19');
|
|
111
|
+
await expect(toYear).toHaveValue('2024');
|
|
112
|
+
});
|
|
113
|
+
it('18: should return to month input - "Shift+Tab"', async () => {
|
|
114
|
+
await browser.keys(Key.Escape);
|
|
89
115
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
90
116
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
91
117
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
@@ -29,15 +29,17 @@ export default class DSDateTimePickerCO extends PageObject {
|
|
|
29
29
|
|
|
30
30
|
static dateAndDatePicker = new Urlbuilder(PATH_E2E_FORM_DATE, 'date-and-date-picker-test');
|
|
31
31
|
|
|
32
|
-
static basic = new Urlbuilder(PATH_E2E_FORM_DATE, 'basic-test');
|
|
33
|
-
|
|
34
32
|
// date-time
|
|
33
|
+
static basic = new Urlbuilder(PATH_E2E_FORM_DATE_TIME, 'basic-test');
|
|
34
|
+
|
|
35
35
|
static invalidSelectionDateTime = new Urlbuilder(PATH_E2E_FORM_DATE_TIME, 'invalid-selection-date-time-test');
|
|
36
36
|
|
|
37
37
|
static dateTimeFull = new Urlbuilder(PATH_E2E_FORM_DATE_TIME, 'date-time-full');
|
|
38
38
|
|
|
39
39
|
static dateTimeOnly = new Urlbuilder(PATH_E2E_FORM_DATE_TIME, 'date-time-only-test');
|
|
40
40
|
|
|
41
|
+
static PUI17084updatingValues = new Urlbuilder(PATH_E2E_FORM_DATE_TIME, 'pui-17084-updatingvalues');
|
|
42
|
+
|
|
41
43
|
static dateTimePickerControlledOnly = new Urlbuilder(
|
|
42
44
|
PATH_E2E_FORM_DATE_TIME,
|
|
43
45
|
'date-time-picker-controller-only-test',
|
|
@@ -193,7 +195,7 @@ export default class DSDateTimePickerCO extends PageObject {
|
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
static getYearInputByIndex = async (index = 0) =>
|
|
196
|
-
|
|
198
|
+
$$(`[data-testid="ds-controlled-date-time-picker-year-input"]`)[index];
|
|
197
199
|
|
|
198
200
|
// TIME INPUTS
|
|
199
201
|
static async getHourInput(testId) {
|
|
@@ -279,10 +281,10 @@ export default class DSDateTimePickerCO extends PageObject {
|
|
|
279
281
|
static getTimeWheelPrevMinute = async () => $(`[data-testid="ds-controlled-date-time-picker-timewheel-prev-minute"]`);
|
|
280
282
|
|
|
281
283
|
static getTimeWheelMinute = async (value) =>
|
|
282
|
-
$(
|
|
284
|
+
$(`[data-testid="ds-controlled-date-time-picker-timewheel-minute"]*=${value}`);
|
|
283
285
|
|
|
284
286
|
static getTimeWheelMeridiemByValue = async (value) =>
|
|
285
|
-
$(
|
|
287
|
+
$(`[data-testid="ds-controlled-date-time-picker-timewheel-meridiem"]*=${value}`);
|
|
286
288
|
|
|
287
289
|
static getTimeWheelCurrentMinute = async () =>
|
|
288
290
|
$(`[data-testid="ds-controlled-date-time-picker-timewheel-current-minute"]`);
|
|
@@ -131,7 +131,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
131
131
|
});
|
|
132
132
|
});
|
|
133
133
|
describe('PUI-9614 - DSControlledDateTimePicker:: DateInput: keyboard nav - Regressive Backspace', () => {
|
|
134
|
-
|
|
134
|
+
before('loading page', async () => {
|
|
135
135
|
const errorOnGo = await DateTimePickerCO.dateShowcase.go();
|
|
136
136
|
if (errorOnGo) throw errorOnGo;
|
|
137
137
|
});
|
|
@@ -145,7 +145,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
145
145
|
await expect(month).toHaveValue(expect.stringContaining('01'));
|
|
146
146
|
await expect(day).toHaveValue(expect.stringContaining('02'));
|
|
147
147
|
await expect(year).toHaveValue(expect.stringContaining('0732'));
|
|
148
|
-
await DateTimePickerCO.pressBackspace(
|
|
148
|
+
await DateTimePickerCO.pressBackspace(10);
|
|
149
149
|
await expect(month).toHaveValue(expect.stringContaining(''));
|
|
150
150
|
await expect(day).toHaveValue(expect.stringContaining(''));
|
|
151
151
|
await expect(year).toHaveValue(expect.stringContaining(''));
|
package/ds-form-date-time-picker/date-time-full/DateTimeFull.applyAriaDisabled.axe-core.func.spec.js
CHANGED
|
@@ -10,7 +10,7 @@ if (
|
|
|
10
10
|
browser.capabilities.browserName === 'chrome') ||
|
|
11
11
|
browser.capabilities.browserName === 'Chrome'
|
|
12
12
|
) {
|
|
13
|
-
describe('PUI-
|
|
13
|
+
describe('PUI-16974 - DateTimeFull:: applyAriaDisabled - AxeCore', () => {
|
|
14
14
|
before('loading page', async () => {
|
|
15
15
|
const errorOnGo = await DateTimePickerCO.dateTimeFullApplyAriaDisabled.go();
|
|
16
16
|
if (errorOnGo) throw errorOnGo;
|
|
@@ -0,0 +1,25 @@
|
|
|
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-16975 - DateTimeFull:: basic - AxeCore', () => {
|
|
14
|
+
before('loading page', async () => {
|
|
15
|
+
const errorOnGo = await DateTimePickerCO.dateTimeFull.go();
|
|
16
|
+
if (errorOnGo) throw errorOnGo;
|
|
17
|
+
});
|
|
18
|
+
it('01: should display a date time full and pass axe-core scan', async () => {
|
|
19
|
+
const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
|
|
20
|
+
await picker.click();
|
|
21
|
+
const result = await axeCoreCheck();
|
|
22
|
+
expect(result.length).toBe(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -138,7 +138,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
138
138
|
const hourBtn = await DateTimePickerCO.getTimeWheelCurrentHour();
|
|
139
139
|
await expect(hourBtn).toBeFocused();
|
|
140
140
|
});
|
|
141
|
-
it('25: should
|
|
141
|
+
it('25: should focus selected day - Shift+Tab', async () => {
|
|
142
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
143
|
+
const selectedDay = await DateTimePickerCO.getCalendarFocusedDay();
|
|
144
|
+
await expect(selectedDay).toBeFocused();
|
|
145
|
+
});
|
|
146
|
+
it('26: should close calendar - Escape', async () => {
|
|
142
147
|
await browser.keys(Key.Escape);
|
|
143
148
|
const calendar = await DateTimePickerCO.getControllerCalendarTimeWheel();
|
|
144
149
|
const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
|
|
@@ -85,16 +85,46 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
87
|
describe('PUI-16076 - DateTimePicker:: focus current day -Func', () => {
|
|
88
|
-
|
|
88
|
+
beforeEach('loading page', async () => {
|
|
89
89
|
const errorOnGo = await DateTimePickerCO.basic.go();
|
|
90
90
|
if (errorOnGo) throw errorOnGo;
|
|
91
91
|
});
|
|
92
92
|
it('01: should focus current day when openend calendar', async () => {
|
|
93
93
|
const currentDay = await new Date().getDate().toString();
|
|
94
|
-
const dateTrigger = await DateTimePickerCO.
|
|
94
|
+
const dateTrigger = await DateTimePickerCO.getCalendarTimeWheelPickerBtnByIndex(0);
|
|
95
95
|
await dateTrigger.click();
|
|
96
96
|
const focusedDay = await DateTimePickerCO.getCalendarFocusedDay();
|
|
97
97
|
await expect(await focusedDay.getText()).toBe(currentDay);
|
|
98
98
|
});
|
|
99
|
+
it('02: should focus selected day when openend calendar', async () => {
|
|
100
|
+
const dateTrigger = await DateTimePickerCO.getCalendarTimeWheelPickerBtnByIndex(1);
|
|
101
|
+
await dateTrigger.click();
|
|
102
|
+
const focusedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
|
|
103
|
+
await expect(await focusedDay.getText()).toBe('3');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
describe('PUI-17240 - DateTimePicker:: Not to remove prepopulated values when changing time -Func', () => {
|
|
108
|
+
before('loading page', async () => {
|
|
109
|
+
const errorOnGo = await DateTimePickerCO.PUI17084updatingValues.go();
|
|
110
|
+
if (errorOnGo) throw errorOnGo;
|
|
111
|
+
});
|
|
112
|
+
it('01: should change the time and the date should be maintained', async () => {
|
|
113
|
+
const defaultDayInput = await (await DateTimePickerCO.getDayInputByIndex()).getAttribute('value'); // 19
|
|
114
|
+
const dateTrigger = await DateTimePickerCO.getCalendarTimeWheelPickerBtnByIndex(0);
|
|
115
|
+
await dateTrigger.click();
|
|
116
|
+
const nextHour = await DateTimePickerCO.getTimeWheelNextHour();
|
|
117
|
+
await nextHour.click(); // This sets time at 06
|
|
118
|
+
const focusedDay = await (await DateTimePickerCO.getCalendarSelectedFocusedDay()).getAttribute('aria-label');
|
|
119
|
+
const dayInput = await (await DateTimePickerCO.getDayInputByIndex()).getAttribute('value');
|
|
120
|
+
const monthInput = await (await DateTimePickerCO.getMonthInputByIndex()).getAttribute('value');
|
|
121
|
+
const yearInput = await (await DateTimePickerCO.getYearInputByIndex()).getAttribute('value');
|
|
122
|
+
const hourInput = await (await DateTimePickerCO.getHourInput()).getAttribute('value');
|
|
123
|
+
await expect(focusedDay).toEqual('August ninteenth 2025, Tuesday');
|
|
124
|
+
await expect(dayInput).toEqual(defaultDayInput);
|
|
125
|
+
await expect(hourInput).toEqual('06');
|
|
126
|
+
await expect(monthInput).toEqual('08');
|
|
127
|
+
await expect(yearInput).toEqual('2025');
|
|
128
|
+
});
|
|
99
129
|
});
|
|
100
130
|
}
|
|
@@ -137,7 +137,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
137
137
|
const hourBtn = await DateTimePickerCO.getTimeWheelCurrentHour();
|
|
138
138
|
await expect(hourBtn).toBeFocused();
|
|
139
139
|
});
|
|
140
|
-
it('25: should
|
|
140
|
+
it('25: should focus selected day - Shift+Tab', async () => {
|
|
141
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
142
|
+
const selectedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
|
|
143
|
+
await expect(selectedDay).toBeFocused();
|
|
144
|
+
});
|
|
145
|
+
it('26: should close calendar - Escape', async () => {
|
|
141
146
|
await browser.keys(Key.Escape);
|
|
142
147
|
const calendar = await DateTimePickerCO.getControllerCalendarTimeWheel();
|
|
143
148
|
const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
|
package/ds-form-date-time-picker/date-time-full/DateTimePicker.readOnly.keyboard-nav.func.spec.js
CHANGED
|
@@ -138,7 +138,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
138
138
|
const hourBtn = await DateTimePickerCO.getTimeWheelCurrentHour();
|
|
139
139
|
await expect(hourBtn).toBeFocused();
|
|
140
140
|
});
|
|
141
|
-
it('25: should
|
|
141
|
+
it('25: should focus selected day - Shift+Tab', async () => {
|
|
142
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
143
|
+
const selectedDay = await DateTimePickerCO.getCalendarFocusedDay();
|
|
144
|
+
await expect(selectedDay).toBeFocused();
|
|
145
|
+
});
|
|
146
|
+
it('26: should close calendar - Escape', async () => {
|
|
142
147
|
await browser.keys(Key.Escape);
|
|
143
148
|
const calendar = await DateTimePickerCO.getControllerCalendarTimeWheel();
|
|
144
149
|
const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
|
|
@@ -75,17 +75,53 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
75
75
|
const picker = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
|
|
76
76
|
await expect(picker).toBeFocused();
|
|
77
77
|
});
|
|
78
|
-
it('14: should
|
|
78
|
+
it('14: should open the calendar - "Enter"', async () => {
|
|
79
79
|
await browser.keys(Key.Enter);
|
|
80
80
|
const calendar = await DateTimePickerCO.getControllerCalendar();
|
|
81
|
+
await expect(calendar).toBeDisplayed();
|
|
82
|
+
});
|
|
83
|
+
it('15: should close the calendar - "Escape"', async () => {
|
|
84
|
+
await browser.keys(Key.Escape);
|
|
85
|
+
const calendar = await DateTimePickerCO.getControllerCalendar();
|
|
81
86
|
await expect(calendar).not.toBeDisplayed();
|
|
82
87
|
});
|
|
83
|
-
it('
|
|
88
|
+
it('16: should open the calendar - "Space"', async () => {
|
|
84
89
|
await browser.keys(Key.Space);
|
|
85
90
|
const calendar = await DateTimePickerCO.getControllerCalendar();
|
|
86
|
-
await expect(calendar).
|
|
91
|
+
await expect(calendar).toBeDisplayed();
|
|
92
|
+
});
|
|
93
|
+
it('17: should not change de day', async () => {
|
|
94
|
+
await browser.keys(Key.ArrowDown);
|
|
95
|
+
await browser.keys(Key.Enter);
|
|
96
|
+
const day = await DateTimePickerCO.getDayInput();
|
|
97
|
+
await expect(day).toHaveValue('15');
|
|
98
|
+
});
|
|
99
|
+
it('18: should not change the month and year', async () => {
|
|
100
|
+
await browser.keys(Key.ArrowDown);
|
|
101
|
+
await browser.keys(Key.ArrowDown);
|
|
102
|
+
await browser.keys(Key.ArrowDown);
|
|
103
|
+
await browser.keys(Key.Enter);
|
|
104
|
+
const month = await DateTimePickerCO.getMonthInput();
|
|
105
|
+
const year = await DateTimePickerCO.getYearInput();
|
|
106
|
+
await expect(month).toHaveValue('12');
|
|
107
|
+
await expect(year).toHaveValue('2024');
|
|
108
|
+
});
|
|
109
|
+
it('19: should not change hour/min/meridiem', async () => {
|
|
110
|
+
await browser.keys(Key.Tab);
|
|
111
|
+
await browser.keys(Key.ArrowDown);
|
|
112
|
+
await browser.keys(Key.Tab);
|
|
113
|
+
await browser.keys(Key.ArrowDown);
|
|
114
|
+
await browser.keys(Key.Tab);
|
|
115
|
+
await browser.keys(Key.ArrowDown);
|
|
116
|
+
const hour = await DateTimePickerCO.getHourInput();
|
|
117
|
+
const min = await DateTimePickerCO.getMinutesInput();
|
|
118
|
+
const meridiem = await DateTimePickerCO.getMeridiemInput();
|
|
119
|
+
await expect(hour).toHaveValue('10');
|
|
120
|
+
await expect(min).toHaveValue('30');
|
|
121
|
+
await expect(meridiem).toHaveValue('PM');
|
|
87
122
|
});
|
|
88
|
-
it('
|
|
123
|
+
it('20: should return to month input - "Shift+Tab"', async () => {
|
|
124
|
+
await browser.keys(Key.Escape);
|
|
89
125
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
90
126
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
91
127
|
await browser.keys([Key.Shift, Key.Tab]);
|
package/ds-form-date-time-picker/showcase/DateTimePicker.applyAriaDisabled-showcase.visual.spec.js
CHANGED
|
@@ -9,9 +9,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
9
9
|
if (errorOnGo) throw errorOnGo;
|
|
10
10
|
});
|
|
11
11
|
it('01: should display the showcase of all the variants in ApplyAriaDisabled state', async () => {
|
|
12
|
-
const
|
|
12
|
+
const selectedDay = await DateTimePickerCO.getCalendarSelectedDay();
|
|
13
13
|
const day10 = await DateTimePickerCO.getCalendarDay(10);
|
|
14
|
-
await
|
|
14
|
+
await selectedDay.click();
|
|
15
15
|
await mouseOver(day10);
|
|
16
16
|
const snapshot = await browser.checkSnapshot(DateTimePickerCO.snapshotPath('applyAriaDisabled-showcase'));
|
|
17
17
|
await expect(snapshot).toEqual(0);
|
|
@@ -9,9 +9,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
9
9
|
if (errorOnGo) throw errorOnGo;
|
|
10
10
|
});
|
|
11
11
|
it('01: should display the showcase of all the variants in readOnly state', async () => {
|
|
12
|
-
const
|
|
12
|
+
const selectedDay = await DateTimePickerCO.getCalendarSelectedDay();
|
|
13
13
|
const day10 = await DateTimePickerCO.getCalendarDay(10);
|
|
14
|
-
await
|
|
14
|
+
await selectedDay.click();
|
|
15
15
|
await mouseOver(day10);
|
|
16
16
|
const snapshot = await browser.checkSnapshot(DateTimePickerCO.snapshotPath('readOnly-showcase'));
|
|
17
17
|
await expect(snapshot).toEqual(0);
|
package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.axe-core.func.spec.js
CHANGED
|
@@ -142,10 +142,13 @@ if (
|
|
|
142
142
|
const result = await axeCoreCheck();
|
|
143
143
|
expect(result.length).toBe(0);
|
|
144
144
|
});
|
|
145
|
-
it('02: should have required attribute for required formLayoutBlock label', async () => {
|
|
145
|
+
it('02: should have required attribute and aria-hidden for required formLayoutBlock label', async () => {
|
|
146
146
|
const formLayout = await DSFormLayoutBlockItemCO.getBlockContainersByIndex(0);
|
|
147
147
|
await formLayout.waitForDisplayed();
|
|
148
|
+
const star = await DSFormLayoutBlockItemCO.getRequiredStarFromIndex();
|
|
149
|
+
const ariaHidden = await star.getAttribute('aria-hidden');
|
|
148
150
|
const isRequired = await formLayout.getAttribute('required');
|
|
151
|
+
expect(ariaHidden).toEqual('true');
|
|
149
152
|
expect(isRequired).toBe('true');
|
|
150
153
|
});
|
|
151
154
|
});
|
|
@@ -43,6 +43,10 @@ export default class DSFormLayoutBlockItemCO extends PageObject {
|
|
|
43
43
|
return $$('[data-testid="ds-inputtext-input"]')[index];
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
static async getRequiredStarFromIndex(index = 0) {
|
|
47
|
+
return $$('[data-testid="ds-formlayoutblockitem-mark"]')[index];
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
static async getTextFocuseableByIndex(index = 0) {
|
|
47
51
|
return $$(`[data-testid="ds-input-text-root"]`)[index];
|
|
48
52
|
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import { axeCoreCheck } from '../helpers';
|
|
3
|
+
import NativeSelect from './NativeSelectCO';
|
|
4
|
+
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-17516 - NativeSelect: Basic -AxeCore', () => {
|
|
12
|
+
before(async () => {
|
|
13
|
+
const errorOnGo = await NativeSelect.controlledURL.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
});
|
|
16
|
+
it('01: should have empty controlled native select and pass axe-core scan', async () => {
|
|
17
|
+
const nativeSelect = await NativeSelect.getRootByIndex(0);
|
|
18
|
+
await nativeSelect.waitForDisplayed();
|
|
19
|
+
const result = await axeCoreCheck();
|
|
20
|
+
expect(result.length).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
it('02: should have pupulated controlled native select and pass axe-core scan', async () => {
|
|
23
|
+
await browser.keys(Key.Tab);
|
|
24
|
+
await browser.keys(Key.ArrowDown);
|
|
25
|
+
await browser.keys(Key.ArrowDown);
|
|
26
|
+
await browser.keys(Key.Space);
|
|
27
|
+
const result = await axeCoreCheck();
|
|
28
|
+
expect(result.length).toBe(0);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe('PUI-17517 - NativeSelect: Disabled -AxeCore', () => {
|
|
33
|
+
before(async () => {
|
|
34
|
+
const errorOnGo = await NativeSelect.disabledURL.go();
|
|
35
|
+
if (errorOnGo) throw errorOnGo;
|
|
36
|
+
});
|
|
37
|
+
it('01: should have disabled native select and pass axe-core scan', async () => {
|
|
38
|
+
const nativeSelect = await NativeSelect.getRootByIndex(0);
|
|
39
|
+
await nativeSelect.waitForDisplayed();
|
|
40
|
+
const result = await axeCoreCheck();
|
|
41
|
+
expect(result.length).toBe(0);
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('PUI-17518 - NativeSelect: Errored -AxeCore', () => {
|
|
46
|
+
before(async () => {
|
|
47
|
+
const errorOnGo = await NativeSelect.errorURL.go();
|
|
48
|
+
if (errorOnGo) throw errorOnGo;
|
|
49
|
+
});
|
|
50
|
+
it('01: should have errored native select and pass axe-core scan', async () => {
|
|
51
|
+
const nativeSelect = await NativeSelect.getRootByIndex(0);
|
|
52
|
+
await nativeSelect.waitForDisplayed();
|
|
53
|
+
const result = await axeCoreCheck();
|
|
54
|
+
expect(result.length).toBe(0);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* eslint-disable import/no-relative-packages */
|
|
2
|
+
import { PATH_E2E_NATIVE_SELECT } from '../paths';
|
|
3
|
+
import { PageObject, Urlbuilder } from '../helpers';
|
|
4
|
+
|
|
5
|
+
export default class NativeSelect extends PageObject {
|
|
6
|
+
static controlledURL = new Urlbuilder(PATH_E2E_NATIVE_SELECT, 'controlled-test');
|
|
7
|
+
|
|
8
|
+
static uncontrolledURL = new Urlbuilder(PATH_E2E_NATIVE_SELECT, 'uncontrolled-test');
|
|
9
|
+
|
|
10
|
+
static errorURL = new Urlbuilder(PATH_E2E_NATIVE_SELECT, 'error-test');
|
|
11
|
+
|
|
12
|
+
static disabledURL = new Urlbuilder(PATH_E2E_NATIVE_SELECT, 'disabled-test');
|
|
13
|
+
|
|
14
|
+
// Selectors
|
|
15
|
+
static async getInputSlotByIndex(index = 0) {
|
|
16
|
+
return $$(`[data-dimsum-slot="dsNativeselectInput"]`)[index];
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static async getRootByIndex(index = 0) {
|
|
20
|
+
return $$('[data-testid="ds-nativeselect-root"]')[index];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static async getDropindicatorByIndex(index = 0) {
|
|
24
|
+
return $$('[data-testid="ds-nativeselect-drop-indicator"]')[index];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static async getOptionByIndex(index) {
|
|
28
|
+
return $$('//option')[index];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Snapshots
|
|
32
|
+
static snapshotPath(example = 'basic') {
|
|
33
|
+
return PageObject.getSnapshotPathBuilder('NativeSelect', example, 'ds-native-select');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -13,7 +13,7 @@ if (
|
|
|
13
13
|
) {
|
|
14
14
|
describe('PUI-11929 - DSControlledToggle - Axe-Core - showcase', () => {
|
|
15
15
|
before('loading page', async () => {
|
|
16
|
-
const errorOnGo = await DSToggleCO.
|
|
16
|
+
const errorOnGo = await DSToggleCO.fullShowcase.go();
|
|
17
17
|
if (errorOnGo) throw errorOnGo;
|
|
18
18
|
});
|
|
19
19
|
it('01: should pass axe-core check for showcase example', async () => {
|
|
@@ -27,10 +27,14 @@ if (
|
|
|
27
27
|
expect(result.length).toBe(0);
|
|
28
28
|
});
|
|
29
29
|
it('03: should pass axe-core check for showcase example - readOnly interaction', async () => {
|
|
30
|
-
await tabStops(
|
|
30
|
+
await tabStops(3);
|
|
31
31
|
const result = await axeCoreCheck();
|
|
32
32
|
expect(result.length).toBe(0);
|
|
33
33
|
});
|
|
34
|
+
it('04: all toggles should have role switch', async () => {
|
|
35
|
+
const toggleRoles = await $$('button[role="switch"]');
|
|
36
|
+
expect(toggleRoles.length).toBe(32);
|
|
37
|
+
});
|
|
34
38
|
});
|
|
35
39
|
describe('PUI-14182 - [Toggle] applyAriaDisabled prop - axe-core test', () => {
|
|
36
40
|
before('loading page', async () => {
|
|
@@ -100,23 +100,28 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
100
100
|
});
|
|
101
101
|
describe('PUI-8814 - DSControlledToggle:: Tabbing', () => {
|
|
102
102
|
before('loading page', async () => {
|
|
103
|
-
const errorOnGo = await DSToggleCO.
|
|
103
|
+
const errorOnGo = await DSToggleCO.fullShowcase.go();
|
|
104
104
|
if (errorOnGo) throw errorOnGo;
|
|
105
105
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
106
106
|
});
|
|
107
107
|
it('01: should tab through the basic toggles to the last basic toggle', async () => {
|
|
108
|
-
await tabStops(
|
|
109
|
-
const toggle = await DSToggleCO.getToggleFocuseableByIndex(
|
|
108
|
+
await tabStops(2);
|
|
109
|
+
const toggle = await DSToggleCO.getToggleFocuseableByIndex(1);
|
|
110
110
|
await expect(toggle).toBeFocused();
|
|
111
111
|
});
|
|
112
|
-
it('02: should tab and skip all
|
|
113
|
-
await
|
|
114
|
-
const toggle = await DSToggleCO.getToggleFocuseableByIndex(
|
|
112
|
+
it('02: should tab and skip all disabled toggles to the first enabled toggle, next row', async () => {
|
|
113
|
+
await tabStops(5);
|
|
114
|
+
const toggle = await DSToggleCO.getToggleFocuseableByIndex(8);
|
|
115
115
|
await expect(toggle).toBeFocused();
|
|
116
116
|
});
|
|
117
117
|
it('03: should tab through the readonly toggles to the last readonly toggle', async () => {
|
|
118
|
-
await tabStops(
|
|
119
|
-
const toggle = await DSToggleCO.getToggleFocuseableByIndex(
|
|
118
|
+
await tabStops(3);
|
|
119
|
+
const toggle = await DSToggleCO.getToggleFocuseableByIndex(11);
|
|
120
|
+
await expect(toggle).toBeFocused();
|
|
121
|
+
});
|
|
122
|
+
it('04: should tab through the aria-disabled toggles to the last aria-disabled toggle', async () => {
|
|
123
|
+
await tabStops(2);
|
|
124
|
+
const toggle = await DSToggleCO.getToggleFocuseableByIndex(13);
|
|
120
125
|
await expect(toggle).toBeFocused();
|
|
121
126
|
});
|
|
122
127
|
});
|
|
@@ -4,12 +4,12 @@ import DSToggleCO from './DSToggleCO';
|
|
|
4
4
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
5
|
describe('PUI-6757 - DSControlledToggle - Visual Test - showcase', () => {
|
|
6
6
|
before('loading page', async () => {
|
|
7
|
-
const errorOnGo = await DSToggleCO.
|
|
7
|
+
const errorOnGo = await DSToggleCO.fullShowcase.go();
|
|
8
8
|
if (errorOnGo) throw errorOnGo;
|
|
9
9
|
});
|
|
10
10
|
it('01: should display all DSControlledToggle styles correctly', async () => {
|
|
11
11
|
await (await DSToggleCO.getToggleByIndex(0)).waitForExist();
|
|
12
|
-
const snapshot = await browser.checkSnapshot(DSToggleCO.snapshotPath('
|
|
12
|
+
const snapshot = await browser.checkSnapshot(DSToggleCO.snapshotPath('full-showcase'));
|
|
13
13
|
await expect(snapshot).toEqual(0);
|
|
14
14
|
});
|
|
15
15
|
});
|
|
@@ -2,7 +2,7 @@ import { PATH_E2E_TOGGLE } from '../paths';
|
|
|
2
2
|
import { PageObject, Urlbuilder } from '../helpers';
|
|
3
3
|
|
|
4
4
|
export default class DSToggleCO extends PageObject {
|
|
5
|
-
static
|
|
5
|
+
static fullShowcase = new Urlbuilder(PATH_E2E_TOGGLE, 'full-showcase-test');
|
|
6
6
|
|
|
7
7
|
static basicURL = new Urlbuilder(PATH_E2E_TOGGLE, 'basic-test');
|
|
8
8
|
|
|
@@ -88,4 +88,17 @@ if (
|
|
|
88
88
|
expect(result.length).toBe(0);
|
|
89
89
|
});
|
|
90
90
|
});
|
|
91
|
+
|
|
92
|
+
describe('PUI-16270 - GlobalHeader: Controled with Iframe -AxeCore', () => {
|
|
93
|
+
before(async () => {
|
|
94
|
+
const errorOnGo = await GlobalHeaderCO.iframeURL.go();
|
|
95
|
+
if (errorOnGo) throw errorOnGo;
|
|
96
|
+
});
|
|
97
|
+
it('01: should have global header within iframe and pass axe-core scan', async () => {
|
|
98
|
+
const globalHeader = await GlobalHeaderCO.getGlobalHeader();
|
|
99
|
+
await globalHeader.waitForDisplayed();
|
|
100
|
+
const result = await axeCoreCheck({ extraDisabledRules: ['landmark-one-main'] });
|
|
101
|
+
expect(result.length).toBe(0);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
91
104
|
}
|
|
@@ -7,6 +7,8 @@ export default class GlobalHeader extends PageObject {
|
|
|
7
7
|
|
|
8
8
|
static oneTab = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'one-tab');
|
|
9
9
|
|
|
10
|
+
static iframeURL = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'controlled-and-with-iframe-test');
|
|
11
|
+
|
|
10
12
|
static slotsTest = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'slots-test');
|
|
11
13
|
|
|
12
14
|
static noToolbarTest = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'no-toolbar-test');
|