dimsum-e2e-tests 3.50.0-next.2 → 3.50.0-rc.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.
- package/CHANGELOG.md +337 -258
- package/ds-apppicker/DSAppPickerCO.js +2 -6
- package/ds-apppicker/basic/DSAppPicker.basic.axe-core.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.func.spec.js +3 -3
- package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.visual.spec.js +6 -3
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.axe-core.spec.js +2 -2
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +2 -2
- package/ds-apppicker/maxHeight/DSAppPicker.max-height.visual.spec.js +2 -2
- package/ds-apppicker/minHeight/DSAppPicker.minHeight.visual.spec.js +1 -1
- package/ds-autocomplete/DSAutocomplete.func.spec.js +5 -4
- package/ds-autocomplete/DSAutocompleteCO.js +1 -8
- package/ds-banner/DSBanner.func.spec.js +55 -0
- package/ds-banner/DSBanner.visual.spec.js +14 -0
- package/ds-banner/DSBannerCO.js +30 -0
- package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +69 -40
- package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
- package/ds-breadcrumb/DSBreadcrumbCO.js +19 -3
- package/ds-button-v3/DSButtonV3.func.spec.js +22 -0
- package/ds-button-v3/DSButtonV3.visual.spec.js +8 -2
- package/ds-button-v3/DSButtonV3CO.js +14 -0
- package/ds-card-v3/DSCardV3CO.js +10 -10
- package/ds-card-v3/global-attributes/DSCardV3.global-attributes.func.spec.js +4 -4
- package/ds-comments-card/DSComments.visual.spec.js +3 -4
- package/ds-comments-card/DSCommentsCO.js +3 -3
- package/ds-controlled-form/ds-combobox/DSCombobox.func.spec.js +1 -0
- package/ds-controlled-form/ds-combobox/DSCombobox.smoke.spec.js +4 -56
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -10
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.keyboard-creatable.func.spec.js +3 -0
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.axe-core.spec.js +0 -1
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.keyboard.func.spec.js +5 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js +6 -68
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js +0 -58
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.multi.visual.spec.js +1 -16
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.ten-thousand-options.func.spec.js +2 -22
- package/ds-controlled-form/ds-combobox/single-select/DSCombobox.keyboard-single-select.func.spec.js +4 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.func.spec.js +15 -41
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.keyboard-nav.func.spec.js +51 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +14 -16
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.axe-core.spec.js +85 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.functional.spec.js +242 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.visual.spec.js +115 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +56 -2
- package/ds-controlled-form/ds-controlled-date-range-picker/read-only/DSControlledDateRangePicker.ReadOnly.axe-core.spec.js +17 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +12 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-full/DateFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-input/DateTimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-input/TimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +4 -14
- package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +6 -6
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.visual.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.axe-core.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -5
- package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.visual.spec.js +7 -2
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.func.spec.js +39 -0
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +12 -1
- package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +14 -12
- package/ds-controlled-form/ds-input-text/DSInputTextCO.js +11 -8
- package/ds-controlled-form/ds-input-text/aria-disabled/DSInputText.aria-disabled.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.visual.spec.js +28 -0
- package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +2 -1
- package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +3 -1
- package/ds-controlled-form/react-hook-form/ReactHookCO.js +0 -10
- package/ds-controlled-form/useMask/Number/UseNumberMask.func.spec.js +47 -46
- package/ds-controlled-form/useMask/Number/UseNumberMask.visual.spec.js +7 -6
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.func.spec.js +9 -8
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.visual.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +5 -4
- package/ds-controlled-form/useMask/RegExp/UseRegExpMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/SSN/UseSsnMask.func.spec.js +7 -6
- package/ds-controlled-form/useMask/ZipCode/UseZipCodeMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/useMaskCO.js +1 -11
- package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
- package/ds-data-table-async/DSDataTableCO.js +8 -0
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +2 -2
- package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +5 -4
- package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +1 -0
- package/ds-data-table-async/components/FiltersCOextra.js +1 -1
- package/ds-data-table-async/components/HeaderCO.js +1 -1
- package/ds-data-table-async/components/OnRowClickCO.js +1 -1
- package/ds-data-table-async/components/RowCO.js +6 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +1 -1
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +4 -0
- package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -0
- package/ds-data-table-async/more/DSDataTable.extraactions.func.spec.js +33 -0
- package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +2 -0
- package/ds-data-table-async/select/DSDataTable.select.func.spec.js +2 -86
- package/ds-data-table-async/select/DSDataTable.select.shift.func.spec.js +126 -0
- package/ds-data-table-async/toolbar/DSDataTable.Toolbar.visual.spec.js +15 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +39 -0
- package/ds-dialog/DSDialog.func.spec.js +14 -14
- package/ds-dialog/DSDialogCO.js +1 -1
- package/ds-dialog/components/DialogFormsCO.js +1 -1
- package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +2 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +6 -2
- package/ds-floating-context/DSFloatingContext.visual.spec.js +15 -0
- package/ds-floating-context/DSFloatingContextCO.js +2 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +5 -10
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +2 -11
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-multi/virtualization/DSComboboxMulti.virtualization.visual.spec.js +29 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +4 -9
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-single/virtualization/DSComboboxSingle.virtualization.visual.spec.js +30 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +11 -7
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +1 -1
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +2 -2
- package/ds-menu-button/DSMenuButtonCO.js +16 -12
- package/ds-menu-button/activable/DSMenuButton.activableMenuItem.func.spec.js +32 -0
- package/ds-menu-button/{basic/DSMenuButton.activableMenuItem.func.spec.js → activable/DSMenuButton.activableMenuItem.keyboardnav.func.spec.js} +1 -26
- package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +20 -0
- package/ds-menu-button/disabled/DSMenuButton.disabled.func.spec.js +28 -0
- package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +20 -0
- package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +28 -0
- package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.func.spec.js +34 -0
- package/ds-menu-button/{basic/DSMenuButton.multiSelectItem.func.spec.js → multiselect/DSMenuButton.multiSelectItem.keyboardnav.func.spec.js} +0 -29
- package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +28 -0
- package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.func.spec.js +39 -0
- package/ds-menu-button/{basic/DSMenuButton.singleSelectItem.func.spec.js → singleSelect/DSMenuButton.singleSelectItem.keyboardnav.func.spec.js} +11 -42
- package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +20 -0
- package/ds-menu-button/submenu/DSMenuButton.subMenuItem.func.spec.js +42 -0
- package/ds-menu-button/{basic/DSMenuButton.subMenuItem.func.spec.js → submenu/DSMenuButton.subMenuItem.keyboardnav.func.spec.js} +1 -38
- package/ds-menu-item/DSMenuItemsCO.js +2 -0
- package/ds-menu-item/aria-disabled/DSMenuItems.aria-disabled.visual.spec.js +1 -1
- package/ds-menu-item/read-only/DSMenuItems.read-only.axe-core.func.spec.js +35 -0
- package/ds-menu-item/read-only/DSMenuItems.read-only.visual.spec.js +66 -0
- package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +1 -1
- package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -0
- package/ds-pills-v2/DSPills.axe-core.func.spec.js +2 -2
- package/ds-pills-v2/DSPills.func.spec.js +26 -0
- package/ds-pills-v2/DSPills.visual.spec.js +1 -1
- package/ds-pills-v2/DSPillsV2CO.js +19 -1
- package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +77 -0
- package/ds-pills-v2/selection/DSPills.func.spec.js +155 -0
- package/ds-pills-v2/selection/DSPills.visual.spec.js +72 -0
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +2 -1
- package/ds-query-builder/DSQueryBuilderCO.js +1 -6
- package/ds-shuttle-v2/DSShuttleV2CO.js +4 -4
- package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +0 -5
- package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +46 -66
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +3 -5
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +19 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +0 -6
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -9
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +0 -2
- package/ds-slider-v2/DSSliderV2.axe-core.func.spec.js +14 -0
- package/ds-slider-v2/DSSliderV2.func.spec.js +18 -0
- package/ds-slider-v2/DSSliderV2.visual.spec.js +15 -0
- package/ds-slider-v2/DSSliderV2CO.js +12 -10
- package/ds-toast/DSToast.func.spec.js +2 -2
- package/ds-toast/DSToastCO.js +2 -2
- package/ds-toggle/DSToggle.func.spec.js +21 -18
- package/ds-toggle/DSToggle.visual.spec.js +56 -12
- package/package.json +119 -119
- package/ds-apppicker/DSAppPicker.smoke.spec.js +0 -52
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckbox.smoke.spec.js +0 -125
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +0 -57
- package/ds-menu-button/DSMenuButton.axe-core.func.spec.js +0 -66
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.custom.attributes.spec.js +0 -0
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.func.spec.js +0 -0
- /package/ds-query-builder/{DSQueryBuilder.error-states.spec.js → DSQueryBuilder.error-states.func.spec.js} +0 -0
|
@@ -35,12 +35,8 @@ export default class DSAppPickerCO extends PageObject {
|
|
|
35
35
|
static getChipByLabel = async (label) =>
|
|
36
36
|
$(`//button[@data-testid="app-picker__chip"]/div/span[contains(text(),"${label}")]//ancestor::button`);
|
|
37
37
|
|
|
38
|
-
static async
|
|
39
|
-
return $('[data-testid="
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
static async getAppPickerWrapper() {
|
|
43
|
-
return $('[data-testid="app-picker__wrapper"]');
|
|
38
|
+
static async getAppPickerRoot() {
|
|
39
|
+
return $('[data-testid="ds-apppicker-root"]');
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
static async getChipLabelByIndex(index) {
|
|
@@ -22,13 +22,13 @@ if (
|
|
|
22
22
|
it('02: should have open appPicker (with disabled chip also) and pass axecore scan', async () => {
|
|
23
23
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
24
24
|
await openAppPickerBtn.click();
|
|
25
|
-
const appPicker = await DSAppPickerCO.
|
|
25
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
26
26
|
await appPicker.waitForDisplayed();
|
|
27
27
|
const result = await axeCoreCheck();
|
|
28
28
|
expect(result.length).toBe(0);
|
|
29
29
|
});
|
|
30
30
|
it('03: should focus a truncated item and pass axecore scan', async () => {
|
|
31
|
-
const appPicker = await DSAppPickerCO.
|
|
31
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
32
32
|
await appPicker.waitForDisplayed();
|
|
33
33
|
await browser.keys(Key.Tab);
|
|
34
34
|
const result = await axeCoreCheck();
|
|
@@ -13,7 +13,7 @@ if (
|
|
|
13
13
|
it('01: should open appPicker', async () => {
|
|
14
14
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
15
15
|
await openAppPickerBtn.click();
|
|
16
|
-
const appPicker = await DSAppPickerCO.
|
|
16
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
17
17
|
await expect(appPicker).toBeDisplayedInViewport();
|
|
18
18
|
});
|
|
19
19
|
it('02: should focus the fifth element when clicking it', async () => {
|
|
@@ -22,7 +22,7 @@ if (
|
|
|
22
22
|
await expect(appPickerChip).toBeFocused();
|
|
23
23
|
});
|
|
24
24
|
it('03: should close appPicker clicking outside the menu', async () => {
|
|
25
|
-
const appPicker = await DSAppPickerCO.
|
|
25
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
26
26
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
27
27
|
// clicking outside the menu
|
|
28
28
|
await openAppPickerBtn.click({ x: 100 });
|
|
@@ -31,7 +31,7 @@ if (
|
|
|
31
31
|
it('04: should reopen appPicker', async () => {
|
|
32
32
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
33
33
|
await openAppPickerBtn.click();
|
|
34
|
-
const appPicker = await DSAppPickerCO.
|
|
34
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
35
35
|
await expect(appPicker).toBeDisplayedInViewport();
|
|
36
36
|
});
|
|
37
37
|
it('05: should focus the sixth element when clicking it', async () => {
|
|
@@ -14,7 +14,7 @@ if (
|
|
|
14
14
|
it('01: should open meny and focus the first enabled chip - Enter', async () => {
|
|
15
15
|
await browser.keys(Key.Tab);
|
|
16
16
|
await browser.keys(Key.Enter);
|
|
17
|
-
const appPicker = await DSAppPickerCO.
|
|
17
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
18
18
|
const appPickerChip = await DSAppPickerCO.getChipByIndex(1);
|
|
19
19
|
await expect(appPicker).toBeDisplayedInViewport();
|
|
20
20
|
await expect(appPickerChip).toBeFocused();
|
|
@@ -41,7 +41,7 @@ if (
|
|
|
41
41
|
});
|
|
42
42
|
it('06: should reopen the menu and focus the first enabled chip - Space', async () => {
|
|
43
43
|
await browser.keys(Key.Space);
|
|
44
|
-
const appPicker = await DSAppPickerCO.
|
|
44
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
45
45
|
const appPickerChip = await DSAppPickerCO.getChipByIndex(1);
|
|
46
46
|
await expect(appPicker).toBeDisplayedInViewport();
|
|
47
47
|
await expect(appPickerChip).toBeFocused();
|
|
@@ -10,22 +10,25 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
10
10
|
await browser.maximizeWindow();
|
|
11
11
|
});
|
|
12
12
|
it('01: should have the appPicker closed', async () => {
|
|
13
|
+
await browser.eyesOpen();
|
|
13
14
|
await (await DSAppPickerCO.getOpenAppPicker()).waitForDisplayed();
|
|
14
|
-
const snapshot = await browser.
|
|
15
|
+
const snapshot = await browser.eyesCheckSnapshot(DSAppPickerCO.snapshotPath('appPicker-closed'));
|
|
15
16
|
await expect(snapshot).toEqual(0);
|
|
16
17
|
});
|
|
17
18
|
it('02: should open appPicker', async () => {
|
|
19
|
+
await browser.eyesOpen();
|
|
18
20
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
19
21
|
await openAppPickerBtn.click();
|
|
20
|
-
const snapshot = await browser.
|
|
22
|
+
const snapshot = await browser.eyesCheckSnapshot(DSAppPickerCO.snapshotPath('appPicker-open'));
|
|
21
23
|
await expect(snapshot).toEqual(0);
|
|
22
24
|
});
|
|
23
25
|
it('03: should interact appPicker chips', async () => {
|
|
26
|
+
await browser.eyesOpen();
|
|
24
27
|
const thirdChip = await DSAppPickerCO.getChipByIndex(2);
|
|
25
28
|
await thirdChip.click();
|
|
26
29
|
const sixthChipLabel = await DSAppPickerCO.getChipLabelByIndex(5);
|
|
27
30
|
await mouseOver(sixthChipLabel);
|
|
28
|
-
const snapshot = await browser.
|
|
31
|
+
const snapshot = await browser.eyesCheckSnapshot(DSAppPickerCO.snapshotPath('appPicker-interacted'));
|
|
29
32
|
await expect(snapshot).toEqual(0);
|
|
30
33
|
});
|
|
31
34
|
});
|
|
@@ -15,13 +15,13 @@ if (
|
|
|
15
15
|
it('01: should open appPicker close-after-selection and pass axecore scan', async () => {
|
|
16
16
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
17
17
|
await openAppPickerBtn.click();
|
|
18
|
-
const appPicker = await DSAppPickerCO.
|
|
18
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
19
19
|
await appPicker.waitForDisplayed();
|
|
20
20
|
const result = await axeCoreCheck();
|
|
21
21
|
expect(result.length).toBe(0);
|
|
22
22
|
});
|
|
23
23
|
it('02: should close appPicker when selecting a item and pass axe-core scan', async () => {
|
|
24
|
-
const appPicker = await DSAppPickerCO.
|
|
24
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
25
25
|
await appPicker.waitForDisplayed();
|
|
26
26
|
const reportChip = await DSAppPickerCO.getChipByIndex(6);
|
|
27
27
|
await reportChip.click();
|
|
@@ -9,11 +9,11 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
9
9
|
it('01: should open appPicker', async () => {
|
|
10
10
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
11
11
|
await openAppPickerBtn.click();
|
|
12
|
-
const appPicker = await DSAppPickerCO.
|
|
12
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
13
13
|
await expect(appPicker).toBeDisplayedInViewport();
|
|
14
14
|
});
|
|
15
15
|
it('02: should close appPicker when selecting a item and trigger button should be focused', async () => {
|
|
16
|
-
const appPicker = await DSAppPickerCO.
|
|
16
|
+
const appPicker = await DSAppPickerCO.getAppPickerRoot();
|
|
17
17
|
const reportChip = await DSAppPickerCO.getChipByIndex(6);
|
|
18
18
|
await reportChip.click();
|
|
19
19
|
const triggerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
@@ -12,7 +12,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
12
12
|
it('01: should display the appPicker opened', async () => {
|
|
13
13
|
await browser.keys(Key.Tab);
|
|
14
14
|
await browser.keys(Key.Enter);
|
|
15
|
-
const appPickerWrapper = await DSAppPickerCO.
|
|
15
|
+
const appPickerWrapper = await DSAppPickerCO.getAppPickerRoot();
|
|
16
16
|
await appPickerWrapper.waitForDisplayed();
|
|
17
17
|
const snapshot = await browser.checkSnapshot(DSAppPickerCO.snapshotPath('appPicker-maxHeigth-opened'));
|
|
18
18
|
await expect(snapshot).toEqual(0);
|
|
@@ -51,7 +51,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
51
51
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
52
52
|
await browser.keys(Key.Enter);
|
|
53
53
|
await browser.keys(Key.Enter);
|
|
54
|
-
const appPickerWrapper = await DSAppPickerCO.
|
|
54
|
+
const appPickerWrapper = await DSAppPickerCO.getAppPickerRoot();
|
|
55
55
|
await appPickerWrapper.waitForDisplayed();
|
|
56
56
|
const snapshot = await browser.checkSnapshot(DSAppPickerCO.snapshotPath('appPicker-last-chip-selected'));
|
|
57
57
|
await expect(snapshot).toEqual(0);
|
|
@@ -11,7 +11,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
11
11
|
it('01: should display appPicker with minHeight opened', async () => {
|
|
12
12
|
const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
|
|
13
13
|
await openAppPickerBtn.click();
|
|
14
|
-
const appPickerWrapper = await DSAppPickerCO.
|
|
14
|
+
const appPickerWrapper = await DSAppPickerCO.getAppPickerRoot();
|
|
15
15
|
await appPickerWrapper.waitForDisplayed();
|
|
16
16
|
const snapshot = await browser.checkSnapshot(DSAppPickerCO.snapshotPath('appPicker-minHeight-opened'));
|
|
17
17
|
await expect(snapshot).toEqual(0);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
2
|
import DSAutocompleteCO from './DSAutocompleteCO';
|
|
3
|
+
import DSInputTextCO from '../ds-controlled-form/ds-input-text/DSInputTextCO';
|
|
3
4
|
import { type } from '../helpers';
|
|
4
5
|
|
|
5
6
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
@@ -29,19 +30,19 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
29
30
|
await expect(suggestedOption).toHaveTextContaining('Luke Skywalker too long this text is super long');
|
|
30
31
|
});
|
|
31
32
|
it('03: should complete input correctly', async () => {
|
|
32
|
-
const input = await
|
|
33
|
+
const input = await DSInputTextCO.getInputText();
|
|
33
34
|
const suggestedOption = await DSAutocompleteCO.getAutocompleteOptionLabel();
|
|
34
35
|
await suggestedOption.click();
|
|
35
36
|
await expect(input).toHaveValueContaining('Luke Skywalker too long this text is super long');
|
|
36
37
|
});
|
|
37
38
|
it('04: should clear input correctly', async () => {
|
|
38
|
-
const input = await
|
|
39
|
-
const clearBtn = await
|
|
39
|
+
const input = await DSInputTextCO.getInputText();
|
|
40
|
+
const clearBtn = await DSInputTextCO.getClearBtn();
|
|
40
41
|
await clearBtn.click();
|
|
41
42
|
await expect(input).toHaveValueContaining('');
|
|
42
43
|
});
|
|
43
44
|
it('05: should suggest another option correctly', async () => {
|
|
44
|
-
const input = await
|
|
45
|
+
const input = await DSInputTextCO.getInputText();
|
|
45
46
|
await input.click();
|
|
46
47
|
await type('Obi');
|
|
47
48
|
const menulist = await DSAutocompleteCO.getAutocompleteMenuList();
|
|
@@ -16,20 +16,13 @@ export default class DSAutocompleteCO extends PageObject {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
// selectors
|
|
19
|
-
static async getAutocompleteInput() {
|
|
20
|
-
return $('[data-testid="ds-input-text-input"]');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static async getClearBtn() {
|
|
24
|
-
return $('[data-testid="ds-input-text-clear-button"]');
|
|
25
|
-
}
|
|
26
19
|
|
|
27
20
|
static async getAutocompleteMenuList() {
|
|
28
21
|
return $('[data-testid="autocomplete-menu-list"]');
|
|
29
22
|
}
|
|
30
23
|
|
|
31
24
|
static async getAutocompleteOptionLabel() {
|
|
32
|
-
return $('[data-testid="ds-
|
|
25
|
+
return $('[data-testid="ds-menuitem-menu-item-label"]');
|
|
33
26
|
}
|
|
34
27
|
|
|
35
28
|
static async getAutocompleteOptions() {
|
|
@@ -68,4 +68,59 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
68
68
|
await expect(closeButton).toBeFocused();
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
|
+
|
|
72
|
+
describe('PUI-15113 - Banner - Slots -Func', () => {
|
|
73
|
+
before('loading page', async () => {
|
|
74
|
+
const errorOnGo = await DSBannerCO.slotsTest.go();
|
|
75
|
+
if (errorOnGo) throw errorOnGo;
|
|
76
|
+
});
|
|
77
|
+
it('01: should find the expected SLOTS for the component', async () => {
|
|
78
|
+
const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
|
|
79
|
+
const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
|
|
80
|
+
const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
|
|
81
|
+
const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
|
|
82
|
+
const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
|
|
83
|
+
const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
|
|
84
|
+
const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
|
|
85
|
+
await expect(bannerTitleSlot).toBeDisplayed();
|
|
86
|
+
await expect(bannerSubtitleSlot).toBeDisplayed();
|
|
87
|
+
await expect(bannerContainer).toBeDisplayed();
|
|
88
|
+
await expect(bannerInnerContainer).toBeDisplayed();
|
|
89
|
+
await expect(bannerIconsSlots).toBeDisplayed();
|
|
90
|
+
await expect(bannerButtonSlot).toBeDisplayed();
|
|
91
|
+
await expect(bannerActionLinkSlot).toBeDisplayed();
|
|
92
|
+
});
|
|
93
|
+
it('02: should find custom aria for each SLOT', async () => {
|
|
94
|
+
const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
|
|
95
|
+
const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
|
|
96
|
+
const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
|
|
97
|
+
const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
|
|
98
|
+
const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
|
|
99
|
+
const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
|
|
100
|
+
const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
|
|
101
|
+
await expect(bannerTitleSlot).toHaveAttribute('aria-label', 'im title aria');
|
|
102
|
+
await expect(bannerSubtitleSlot).toHaveAttribute('aria-label', 'im subtitle aria');
|
|
103
|
+
await expect(bannerContainer).toHaveAttribute('aria-label', 'im container aria');
|
|
104
|
+
await expect(bannerInnerContainer).toHaveAttribute('aria-label', 'im inner container aria');
|
|
105
|
+
await expect(bannerIconsSlots).toHaveAttribute('aria-label', 'im iconcontainer aria');
|
|
106
|
+
await expect(bannerButtonSlot).toHaveAttribute('aria-label', 'im closebutton aria');
|
|
107
|
+
await expect(bannerActionLinkSlot).toHaveAttribute('aria-label', 'im actionlink aria');
|
|
108
|
+
});
|
|
109
|
+
it('03: should find custom data for each SLOT', async () => {
|
|
110
|
+
const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
|
|
111
|
+
const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
|
|
112
|
+
const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
|
|
113
|
+
const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
|
|
114
|
+
const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
|
|
115
|
+
const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
|
|
116
|
+
const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
|
|
117
|
+
await expect(bannerTitleSlot).toHaveAttribute('data-testid', 'im title data');
|
|
118
|
+
await expect(bannerSubtitleSlot).toHaveAttribute('data-testid', 'im subtitle data');
|
|
119
|
+
await expect(bannerContainer).toHaveAttribute('data-testid', 'im container data');
|
|
120
|
+
await expect(bannerInnerContainer).toHaveAttribute('data-testid', 'im inner container data');
|
|
121
|
+
await expect(bannerIconsSlots).toHaveAttribute('data-testid', 'im iconcontainer data');
|
|
122
|
+
await expect(bannerButtonSlot).toHaveAttribute('data-testid', 'im closebutton data');
|
|
123
|
+
await expect(bannerActionLinkSlot).toHaveAttribute('data-testid', 'im actionlink data');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
71
126
|
}
|
|
@@ -113,4 +113,18 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
113
113
|
await expect(snapshot).toEqual(0);
|
|
114
114
|
});
|
|
115
115
|
});
|
|
116
|
+
|
|
117
|
+
describe('PUI-15114 - DSBanner, Slots- Visual Test', () => {
|
|
118
|
+
before('loading page', async () => {
|
|
119
|
+
const errorOnGo = await DSBannerCO.slotsTest.go();
|
|
120
|
+
if (errorOnGo) throw errorOnGo;
|
|
121
|
+
});
|
|
122
|
+
it('should display the banners customized using slots', async () => {
|
|
123
|
+
await browser.eyesOpen();
|
|
124
|
+
const banner = await DSBannerCO.getContainerSlotByIndex();
|
|
125
|
+
await banner.waitForDisplayed();
|
|
126
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBannerCO.snapshotPath('banner-slots-test'));
|
|
127
|
+
await expect(snapshot).toEqual(0);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
116
130
|
}
|
package/ds-banner/DSBannerCO.js
CHANGED
|
@@ -24,6 +24,8 @@ export default class DSBannerCO extends PageObject {
|
|
|
24
24
|
|
|
25
25
|
static noActionLinkURL = new Urlbuilder(PATH_E2E_BANNER, 'no-action-link-test');
|
|
26
26
|
|
|
27
|
+
static slotsTest = new Urlbuilder(PATH_E2E_BANNER, 'slots-test');
|
|
28
|
+
|
|
27
29
|
static async getButton() {
|
|
28
30
|
return $('[data-testid="ds-button"]');
|
|
29
31
|
}
|
|
@@ -54,6 +56,34 @@ export default class DSBannerCO extends PageObject {
|
|
|
54
56
|
return $('div*=Danger');
|
|
55
57
|
}
|
|
56
58
|
|
|
59
|
+
static async getActionLinkSlotByIndex(index = 0) {
|
|
60
|
+
return $$('[data-dimsum-slot="dsBannerActionLink"]')[index];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static async getTitleSlotByIndex(index = 0) {
|
|
64
|
+
return $$('[data-dimsum-slot="dsBannerTitle"]')[index];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static async getSubtitleSlotByIndex(index = 0) {
|
|
68
|
+
return $$('[data-dimsum-slot="dsBannerSubtitle"]')[index];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static async getButtonRootSlotByIndex(index = 0) {
|
|
72
|
+
return $$('[data-dimsum-slot="dsButtonRoot"]')[index];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static async getContainerSlotByIndex(index = 0) {
|
|
76
|
+
return $$('[data-dimsum-slot="dsBannerContainer"]')[index];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static async getIconContainerSlotByIndex(index = 0) {
|
|
80
|
+
return $$('[data-dimsum-slot="dsBannerIconContainer"]')[index];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
static async getInnerContainerSlotByIndex(index = 0) {
|
|
84
|
+
return $$('[data-dimsum-slot="dsBannerInnerContainer"]')[index];
|
|
85
|
+
}
|
|
86
|
+
|
|
57
87
|
// Snapshots
|
|
58
88
|
static snapshotPath(example = 'basic') {
|
|
59
89
|
return PageObject.getSnapshotPathBuilder('DSBanner', example, 'ds-banner');
|
|
@@ -13,7 +13,7 @@ if (
|
|
|
13
13
|
if (errorOnGo) throw errorOnGo;
|
|
14
14
|
});
|
|
15
15
|
it('should have actionable breadcrumb and pass axecore scan', async () => {
|
|
16
|
-
const actionBreadcrumb = await DSBreadcrumbCO.
|
|
16
|
+
const actionBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
17
17
|
await actionBreadcrumb.waitForDisplayed();
|
|
18
18
|
const result = await axeCoreCheck();
|
|
19
19
|
expect(result.length).toBe(0);
|
|
@@ -26,7 +26,7 @@ if (
|
|
|
26
26
|
if (errorOnGo) throw errorOnGo;
|
|
27
27
|
});
|
|
28
28
|
it('should have HREF on the breadcrumb and pass axecore scan', async () => {
|
|
29
|
-
const breadcrumbWithHREF = await DSBreadcrumbCO.
|
|
29
|
+
const breadcrumbWithHREF = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
30
30
|
await breadcrumbWithHREF.waitForDisplayed();
|
|
31
31
|
const result = await axeCoreCheck();
|
|
32
32
|
expect(result.length).toBe(0);
|
|
@@ -39,7 +39,7 @@ if (
|
|
|
39
39
|
if (errorOnGo) throw errorOnGo;
|
|
40
40
|
});
|
|
41
41
|
it('01: should have breadcrumb as footer and item as div and pass axecore scan', async () => {
|
|
42
|
-
const breadcrumbAsFooter = await DSBreadcrumbCO.
|
|
42
|
+
const breadcrumbAsFooter = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
43
43
|
await breadcrumbAsFooter.waitForDisplayed();
|
|
44
44
|
const result = await axeCoreCheck();
|
|
45
45
|
expect(result.length).toBe(0);
|
|
@@ -52,7 +52,7 @@ if (
|
|
|
52
52
|
if (errorOnGo) throw errorOnGo;
|
|
53
53
|
});
|
|
54
54
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
55
|
-
const titleBreadcrumb = await DSBreadcrumbCO.
|
|
55
|
+
const titleBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
56
56
|
await titleBreadcrumb.waitForDisplayed();
|
|
57
57
|
const result = await axeCoreCheck();
|
|
58
58
|
expect(result.length).toBe(0);
|
|
@@ -65,7 +65,7 @@ if (
|
|
|
65
65
|
if (errorOnGo) throw errorOnGo;
|
|
66
66
|
});
|
|
67
67
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
68
|
-
const breadcrumb = await DSBreadcrumbCO.
|
|
68
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
69
69
|
await breadcrumb.waitForDisplayed();
|
|
70
70
|
const result = await axeCoreCheck();
|
|
71
71
|
expect(result.length).toBe(0);
|
|
@@ -78,10 +78,25 @@ if (
|
|
|
78
78
|
if (errorOnGo) throw errorOnGo;
|
|
79
79
|
});
|
|
80
80
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
81
|
-
const truncBreadcrumb = await DSBreadcrumbCO.
|
|
81
|
+
const truncBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
82
82
|
await truncBreadcrumb.waitForDisplayed();
|
|
83
83
|
const result = await axeCoreCheck();
|
|
84
84
|
expect(result.length).toBe(0);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
+
|
|
88
|
+
describe('PUI-14920 - BreadCrumb, Arias (current + label) - Func', () => {
|
|
89
|
+
before('loading page', async () => {
|
|
90
|
+
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
91
|
+
if (errorOnGo) throw errorOnGo;
|
|
92
|
+
});
|
|
93
|
+
it('01: should have navigation breadcrumb with correct aria-current and custom container id', async () => {
|
|
94
|
+
const currentItem1 = await DSBreadcrumbCO.getBreadcrumbItems(6);
|
|
95
|
+
await currentItem1.click();
|
|
96
|
+
const currentItem2 = await DSBreadcrumbCO.getBreadcrumbItems(12);
|
|
97
|
+
await currentItem2.click();
|
|
98
|
+
const result = await axeCoreCheck();
|
|
99
|
+
expect(result.length).toBe(0);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
87
102
|
}
|
|
@@ -1,48 +1,77 @@
|
|
|
1
1
|
import DSBreadcrumbCO from './DSBreadcrumbCO';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
if (
|
|
4
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
5
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
6
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
7
|
+
browser.capabilities.browserName === 'Chrome'
|
|
8
|
+
) {
|
|
9
|
+
describe('PUI-4233 - Breadcrumbs, actionable color - with title', () => {
|
|
10
|
+
before('loading page', async () => {
|
|
11
|
+
const errorOnGo = await DSBreadcrumbCO.titleURL.go();
|
|
12
|
+
if (errorOnGo) throw errorOnGo;
|
|
13
|
+
});
|
|
14
|
+
it('should display title in #353c46 color', async () => {
|
|
15
|
+
const itemColor = await DSBreadcrumbCO.getItemColor('Level 7');
|
|
16
|
+
await expect(itemColor).toEqual('#353c46');
|
|
17
|
+
});
|
|
7
18
|
});
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
19
|
+
describe('PUI-4233 - Breadcrumbs, actionable color - no title', () => {
|
|
20
|
+
before('loading page', async () => {
|
|
21
|
+
const errorOnGo = await DSBreadcrumbCO.basicURL.go();
|
|
22
|
+
if (errorOnGo) throw errorOnGo;
|
|
23
|
+
});
|
|
24
|
+
it('should display no title item in #1e79c2', async () => {
|
|
25
|
+
const itemColor = await DSBreadcrumbCO.getItemColor('Level 7');
|
|
26
|
+
await expect(itemColor).toEqual('#1e79c2');
|
|
27
|
+
});
|
|
11
28
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
describe('PUI-9457 - Breadcrumbs, Container props', () => {
|
|
30
|
+
before('loading page', async () => {
|
|
31
|
+
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
32
|
+
if (errorOnGo) throw errorOnGo;
|
|
33
|
+
});
|
|
34
|
+
it('should find breadcrumb by custom id', async () => {
|
|
35
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbCustomId();
|
|
36
|
+
await expect(breadcrumb).toBeDisplayed();
|
|
37
|
+
});
|
|
17
38
|
});
|
|
18
|
-
it('should display no title item in #1e79c2', async () => {
|
|
19
|
-
const itemColor = await DSBreadcrumbCO.getItemColor('Level 7');
|
|
20
|
-
await expect(itemColor).toEqual('#1e79c2');
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
describe('PUI-9457 - Breadcrumbs, Container props', () => {
|
|
24
|
-
before('loading page', async () => {
|
|
25
|
-
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
26
|
-
if (errorOnGo) throw errorOnGo;
|
|
27
|
-
});
|
|
28
|
-
it('should find breadcrumb by custom id', async () => {
|
|
29
|
-
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbCustomId();
|
|
30
|
-
await expect(breadcrumb).toBeDisplayed();
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
39
|
|
|
34
|
-
describe('PUI-9463 - BreadCrumb, Click - Firing Actions', () => {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
describe('PUI-9463 - BreadCrumb, Click - Firing Actions', () => {
|
|
41
|
+
before('loading page', async () => {
|
|
42
|
+
const errorOnGo = await DSBreadcrumbCO.onClickURL.go();
|
|
43
|
+
if (errorOnGo) throw errorOnGo;
|
|
44
|
+
});
|
|
45
|
+
it('should fire the action with click two times', async () => {
|
|
46
|
+
const actionBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
47
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(4);
|
|
48
|
+
await actionBreadcrumb.click();
|
|
49
|
+
await otherBreadcrumb.click(); // should ignore clicks on other items
|
|
50
|
+
await actionBreadcrumb.click();
|
|
51
|
+
const counter = await DSBreadcrumbCO.getCounter('2');
|
|
52
|
+
await expect(counter).toBeDisplayedInViewport();
|
|
53
|
+
});
|
|
38
54
|
});
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
55
|
+
|
|
56
|
+
describe('PUI-14919 - BreadCrumb, Arias (current + label) - Func', () => {
|
|
57
|
+
before('loading page', async () => {
|
|
58
|
+
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
59
|
+
if (errorOnGo) throw errorOnGo;
|
|
60
|
+
});
|
|
61
|
+
it('01: should have navigation breadcrumb with correct aria-current and custom container id', async () => {
|
|
62
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(0);
|
|
63
|
+
const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(6);
|
|
64
|
+
await currentItem.click();
|
|
65
|
+
await expect(currentItem).toHaveAttribute('aria-current', 'page');
|
|
66
|
+
await expect(breadcrumb).toHaveAttribute('id', 'my-custom-id');
|
|
67
|
+
});
|
|
68
|
+
// eslint-disable-next-line max-len
|
|
69
|
+
it('02: should have with-buttons breadcrumb with correct aria-current and custom container aria-label', async () => {
|
|
70
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(1);
|
|
71
|
+
const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(12);
|
|
72
|
+
await currentItem.click();
|
|
73
|
+
await expect(currentItem).toHaveAttribute('aria-current', 'step');
|
|
74
|
+
await expect(breadcrumb).toHaveAttribute('aria-label', 'my-custom-aria-label');
|
|
75
|
+
});
|
|
47
76
|
});
|
|
48
|
-
}
|
|
77
|
+
}
|
|
@@ -8,9 +8,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
8
8
|
if (errorOnGo) throw errorOnGo;
|
|
9
9
|
});
|
|
10
10
|
it('should display a title variant correctly', async () => {
|
|
11
|
+
await browser.eyesOpen();
|
|
11
12
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
12
13
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
13
|
-
const snapshot = await browser.
|
|
14
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('title'));
|
|
14
15
|
await expect(snapshot).toEqual(0);
|
|
15
16
|
});
|
|
16
17
|
});
|
|
@@ -21,11 +22,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
21
22
|
if (errorOnGo) throw errorOnGo;
|
|
22
23
|
});
|
|
23
24
|
it('should display a trailing slash for non title variant', async () => {
|
|
25
|
+
await browser.eyesOpen();
|
|
24
26
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
25
27
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
26
|
-
const otherBreadcrumb = await DSBreadcrumbCO.
|
|
28
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(2);
|
|
27
29
|
await mouseOver(otherBreadcrumb);
|
|
28
|
-
const snapshot = await browser.
|
|
30
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('non-title'));
|
|
29
31
|
await expect(snapshot).toEqual(0);
|
|
30
32
|
});
|
|
31
33
|
});
|
|
@@ -36,21 +38,20 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
36
38
|
if (errorOnGo) throw errorOnGo;
|
|
37
39
|
});
|
|
38
40
|
it('should show every link truncated', async () => {
|
|
41
|
+
await browser.eyesOpen();
|
|
39
42
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
43
|
+
await mouseOver(breadcrumb, 200, 200);
|
|
40
44
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
41
|
-
const snapshot = await browser.
|
|
45
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-all-truncated'));
|
|
42
46
|
await expect(snapshot).toEqual(0);
|
|
43
47
|
});
|
|
44
48
|
it('should show one the links not truncated after mouse hover', async () => {
|
|
49
|
+
await browser.eyesOpen();
|
|
45
50
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
46
51
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
47
52
|
const bcLink = await DSBreadcrumbCO.getBreadcrumbItem('Aenean non ante eu nunc volutpat');
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
} else {
|
|
51
|
-
await bcLink.moveTo();
|
|
52
|
-
}
|
|
53
|
-
const snapshot = await browser.checkSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-one-not-truncated'));
|
|
53
|
+
await mouseOver(bcLink);
|
|
54
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-one-not-truncated'));
|
|
54
55
|
await expect(snapshot).toEqual(0);
|
|
55
56
|
});
|
|
56
57
|
});
|
|
@@ -61,11 +62,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
61
62
|
if (errorOnGo) throw errorOnGo;
|
|
62
63
|
});
|
|
63
64
|
it('should breadcrumb of different custom colors', async () => {
|
|
65
|
+
await browser.eyesOpen();
|
|
64
66
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
65
67
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
66
|
-
const otherBreadcrumb = await DSBreadcrumbCO.
|
|
68
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(2);
|
|
67
69
|
await mouseOver(otherBreadcrumb);
|
|
68
|
-
const snapshot = await browser.
|
|
70
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-custom-colors'));
|
|
69
71
|
await expect(snapshot).toEqual(0);
|
|
70
72
|
});
|
|
71
73
|
});
|
|
@@ -76,15 +78,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
76
78
|
if (errorOnGo) throw errorOnGo;
|
|
77
79
|
});
|
|
78
80
|
it('should show breadcrumb above title', async () => {
|
|
81
|
+
await browser.eyesOpen();
|
|
79
82
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
80
83
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
81
|
-
const snapshot = await browser.
|
|
84
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-above-title'));
|
|
82
85
|
await expect(snapshot).toEqual(0);
|
|
83
86
|
});
|
|
84
87
|
it('should show hovered editable title', async () => {
|
|
88
|
+
await browser.eyesOpen();
|
|
85
89
|
const title = await DSBreadcrumbCO.getEditableTitle();
|
|
86
90
|
await mouseOver(title);
|
|
87
|
-
const snapshot = await browser.
|
|
91
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-hovered-title'));
|
|
88
92
|
await expect(snapshot).toEqual(0);
|
|
89
93
|
});
|
|
90
94
|
});
|
|
@@ -95,9 +99,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
95
99
|
if (errorOnGo) throw errorOnGo;
|
|
96
100
|
});
|
|
97
101
|
it('should display the breadcrumb item 7 as active by default', async () => {
|
|
102
|
+
await browser.eyesOpen();
|
|
98
103
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
99
104
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
100
|
-
const snapshot = await browser.
|
|
105
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-active-7'));
|
|
101
106
|
await expect(snapshot).toEqual(0);
|
|
102
107
|
});
|
|
103
108
|
});
|