dimsum-e2e-tests 3.70.0-next.4 → 3.70.0-next.41
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 +210 -0
- package/ds-accordion/DSAccordion.visual.spec.js +6 -0
- package/ds-accordion/DSAccordionCO.js +11 -3
- package/ds-accordion/controlled/DSAccordion.controlled.func.spec.js +23 -0
- package/ds-accordion/header-structure/DSAccordion.header-structure.func.spec.js +49 -0
- package/ds-accordion/input-inside/DSAccordion.input-inside.func.spec.js +17 -0
- package/ds-accordion-native/DSAccordionNative.axe-core.func.spec.js +135 -0
- package/ds-accordion-native/DSAccordionNative.func.spec.js +200 -0
- package/ds-accordion-native/DSAccordionNative.visual.spec.js +158 -0
- package/ds-accordion-native/DSAccordionNativeCO.js +161 -0
- package/ds-accordion-native/QA_NOTES.md +88 -0
- package/ds-accordion-native/aria-disabled/DSAccordionNative.aria-disabled.axe-core.func.spec.js +25 -0
- package/ds-accordion-native/aria-disabled/DSAccordionNative.aria-disabled.visual.spec.js +28 -0
- package/ds-accordion-native/controlled/DSAccordionNative.controlled.func.spec.js +22 -0
- package/ds-accordion-native/header-structure/DSAccordionNative.header-structure.func.spec.js +53 -0
- package/ds-accordion-native/input-inside/DSAccordionNative.input-inside.func.spec.js +16 -0
- package/ds-accordion-native/role/DSAccordionNative.role-heading.func.spec.js +27 -0
- package/ds-accordion-native/scrollable-content/DSAccordionNative.scrollable-content.visual.spec.js +49 -0
- package/ds-accordion-native/slots/DSAccordionNative.slots.axe-core.func.spec.js +25 -0
- package/ds-accordion-native/slots/DSAccordionNative.slots.func.spec.js +73 -0
- package/ds-accordion-native/slots/DSAccordionNative.slots.visual.spec.js +21 -0
- package/ds-accordion-native/wrapLabel/DSAccordionNative.wrap-label.visual.spec.js +21 -0
- package/ds-apppicker/DSAppPickerCO.js +1 -1
- package/ds-autocomplete/DSAutocomplete.visual.spec.js +34 -0
- package/ds-autocomplete/DSAutocompleteCO.js +2 -0
- package/ds-card-v3/DSCardV3CO.js +14 -0
- package/ds-card-v3/accordion/DSCardV3.accordion-aria-structure.func.spec.js +41 -0
- package/ds-card-v3/disabled/DSCardV3.disabled-non-interactive.func.spec.js +25 -0
- package/ds-card-v3/multi-select/DSCardV3.multi-select.aria-grouping.func.spec.js +24 -0
- package/ds-card-v3/single-select/DSCardV3.single-select.aria-grouping.func.spec.js +24 -0
- package/ds-chat/DSChat.axe-core.func.spec.js +2 -2
- package/ds-chat/DSChat.visual.spec.js +3 -3
- package/ds-chat/DSChatCO.js +17 -23
- package/ds-chat/bubbles/slots/DSChatBubble.slots.axe-core.func.spec.js +24 -0
- package/ds-chat/bubbles/slots/DSChatBubble.slots.func.spec.js +49 -0
- package/ds-chat/bubbles/slots/DSChatBubble.slots.visual.spec.js +25 -0
- package/ds-chat/card/slots/DSChatCard.slots.axe-core.func.spec.js +24 -0
- package/ds-chat/card/slots/DSChatCard.slots.func.spec.js +47 -0
- package/ds-chat/card/slots/DSChatCard.slots.visual.spec.js +18 -0
- package/ds-chat/card/truncated-text/DSChatCard.truncated-text.func.spec.js +32 -0
- package/ds-chat/card/truncated-text/DSChatCard.truncated-text.visual.spec.js +26 -0
- package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.axe-core.func.spec.js +23 -0
- package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.visual.spec.js +17 -0
- package/ds-chat/components/BubbleCO.js +46 -3
- package/ds-chat/components/CardCO.js +77 -0
- package/ds-chat/components/ComposerCO.js +6 -6
- package/ds-chat/components/FloatingButtonCO.js +2 -2
- package/ds-chat/components/HeaderCO.js +2 -2
- package/ds-chat/components/TileCO.js +82 -0
- package/ds-chat/components/index.js +3 -2
- package/ds-chat/loadmore/DSChat-loadmore.func.spec.js +1 -1
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.axe-core.func.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.func.spec.js +1 -1
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.visual.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.axe-core.func.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js +1 -1
- package/ds-chat/tile/slots/DSChatTile.slots.func.spec.js +53 -0
- package/ds-chat/tile/slots/DSChatTile.slots.visual.spec.js +18 -0
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -2
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO.js +1 -1
- package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +1 -1
- package/ds-data-table-async/DSDataTableCO.js +18 -12
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -1
- package/ds-data-table-async/components/FiltersCO.js +1 -1
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +8 -7
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +6 -7
- package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.axe-core.func.spec.js +23 -0
- package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.visual.spec.js +106 -0
- package/ds-data-table-async/textwrapping/DSDataTable.text-wrap-toolbar.visual.spec.js +27 -0
- package/ds-floating-context/DSFloatingContextCO.js +10 -0
- package/ds-floating-context/placement/DSFloatingContext.placement.visual.spec.js +48 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +11 -3
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.axe-core.func.spec.js +55 -0
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js +57 -0
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +15 -0
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.visual.spec.js +22 -0
- package/ds-form-combobox-multi/grouped/DSComboboxMulti.grouped.visual.spec.js +42 -0
- package/ds-form-combobox-multi/inline/DSComboboxMulti.inline.visual.spec.js +21 -0
- package/ds-form-combobox-multi/skeleton/DSComboboxMulti.skeleton.visual.spec.js +25 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +11 -3
- package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.axe-core.func.spec.js +49 -0
- package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.func.spec.js +54 -0
- package/ds-form-combobox-single/aria-disabled/DSComboboxSingle.aria-disabled.visual.spec.js +18 -0
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.visual.spec.js +22 -0
- package/ds-form-combobox-single/grouped/DSComboboxSingle.grouped.visual.spec.js +45 -0
- package/ds-form-combobox-single/inline/DSComboboxSingle.inline.visual.spec.js +23 -0
- package/ds-form-combobox-single/skeleton/DSComboboxSingle.skeleton.visual.spec.js +25 -0
- package/ds-form-date-range-picker/date-segment-aria-labels/DateRangePicker.date-segment-aria-labels.func.spec.js +64 -0
- package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +39 -0
- package/ds-form-native-select/NativeSelect.visual.spec.js +33 -0
- package/ds-form-native-select/NativeSelectCO.js +6 -0
- package/ds-form-native-select/option-selection/NativeSelect.option-selection.func.spec.js +25 -0
- package/ds-leftnavigation/LeftNavigationCO.js +2 -2
- package/ds-menu-button/DSMenuButtonCO.js +23 -0
- package/ds-menu-button/slots/DSMenuButton.slots.func.spec.js +40 -0
- package/ds-menu-button/slots/DSMenuButton.slots.visual.spec.js +26 -0
- package/ds-modal-slide/ModalSlideCO.js +39 -0
- package/ds-modal-slide/custom-header/ModalSlide.customHeader.focusRing.visual.spec.js +2 -1
- package/ds-modal-slide/slots/ModalSlide.slots.func.spec.js +74 -0
- package/ds-modal-slide/slots/ModalSlide.slots.visual.spec.js +27 -0
- package/ds-notification-badge/DSNotificationBadge.visual.spec.js +17 -20
- package/ds-page-layout/PageLayoutCO.js +4 -4
- package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +2 -0
- package/ds-progress-indicator/DSProgressIndicatorCO.js +1 -1
- package/ds-shuttle-v2/DSShuttleV2CO.js +11 -1
- package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.func.spec.js +37 -0
- package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.visual.spec.js +27 -0
- package/ds-shuttle-v2/skipped/DSShuttleV2.extra.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.globalcheckbox.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.items.axe-core.skipped.js +3 -3
- package/ds-shuttle-v2/skipped/DSShuttleV2.skipped.js +5 -5
- package/ds-tab-button/DSTabButton.func.spec.js +1 -1
- package/ds-tooltip-v3/DSTooltipV3CO.js +21 -0
- package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.axe-core.func.spec.js +23 -0
- package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.func.spec.js +29 -0
- package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.func.spec.js +45 -0
- package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.visual.spec.js +29 -0
- package/ds-treeview/DSTreeViewCO.js +25 -2
- package/ds-treeview/dragAndDrop/TreeView-dnd_keyboard.func.spec.js +96 -0
- package/package.json +150 -153
- package/paths.js +9 -1
- package/ds-chat-tile/TileCO.js +0 -35
- package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +0 -61
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
// Tests for the fix introduced in PUI-18034
|
|
5
|
+
// (busy listbox with aria-busy + aria-label so screen readers announce the
|
|
6
|
+
// in-progress state via the input's aria-controls linkage; this spec verifies
|
|
7
|
+
// the busy listbox surface passes axe-core).
|
|
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-18471 - ComboboxMulti:: busy listbox while isLoading - axe-core', () => {
|
|
15
|
+
before('loading page', async () => {
|
|
16
|
+
const errorOnGo = await DSComboboxMultiCO.loadingTest.go();
|
|
17
|
+
if (errorOnGo) throw errorOnGo;
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('01: busy listbox while isLoading should pass axe-core scan', async () => {
|
|
21
|
+
const dropdownMenuBtn = await DSComboboxMultiCO.getDropDownMenuBtn();
|
|
22
|
+
await dropdownMenuBtn.click();
|
|
23
|
+
|
|
24
|
+
const listbox = await DSComboboxMultiCO.getComboListbox();
|
|
25
|
+
await listbox.waitForExist();
|
|
26
|
+
|
|
27
|
+
// `scrollable-region-focusable` is disabled here as a documented false positive:
|
|
28
|
+
// in the busy/isLoading state the fast-list container is empty, so the region is
|
|
29
|
+
// not authentically scrollable from a user's perspective — TanStack Virtual leaves
|
|
30
|
+
// a residual scrollHeight that triggers the rule. The container's tabindex=-1 is a
|
|
31
|
+
// long-standing Firefox scroll-prevention workaround. The rule remains active for
|
|
32
|
+
// all other states (open menu with items, read-only, etc.).
|
|
33
|
+
const result = await axeCoreCheck({ extraDisabledRules: ['scrollable-region-focusable'] });
|
|
34
|
+
expect(result.length).toBe(0);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('PUI-18472 - ComboboxMulti:: busy listbox while isSkeleton - axe-core', () => {
|
|
39
|
+
before('loading page', async () => {
|
|
40
|
+
const errorOnGo = await DSComboboxMultiCO.skeletonTest.go();
|
|
41
|
+
if (errorOnGo) throw errorOnGo;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('01: busy listbox while isSkeleton should pass axe-core scan', async () => {
|
|
45
|
+
const dropdownMenuBtn = await DSComboboxMultiCO.getDropDownMenuBtn();
|
|
46
|
+
await dropdownMenuBtn.click();
|
|
47
|
+
|
|
48
|
+
const listbox = await DSComboboxMultiCO.getComboListbox();
|
|
49
|
+
await listbox.waitForExist();
|
|
50
|
+
|
|
51
|
+
const result = await axeCoreCheck();
|
|
52
|
+
expect(result.length).toBe(0);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fix introduced in PUI-18034
|
|
4
|
+
// (carries aria-busy + aria-label on the listbox during loading/skeleton so
|
|
5
|
+
// screen readers announce the in-progress state via the input's aria-controls
|
|
6
|
+
// linkage; replaces the prior racing assertive live region).
|
|
7
|
+
// aria-multiselectable is preserved on the busy listbox.
|
|
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-18447 - ComboboxMulti:: busy listbox while isLoading - Func', () => {
|
|
15
|
+
before('loading page', async () => {
|
|
16
|
+
const errorOnGo = await DSComboboxMultiCO.loadingTest.go();
|
|
17
|
+
if (errorOnGo) throw errorOnGo;
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('01: listbox is aria-busy + aria-multiselectable and aria-controls linked', async () => {
|
|
21
|
+
const dropdownMenuBtn = await DSComboboxMultiCO.getDropDownMenuBtn();
|
|
22
|
+
await dropdownMenuBtn.click();
|
|
23
|
+
|
|
24
|
+
const listbox = await DSComboboxMultiCO.getComboListbox();
|
|
25
|
+
await listbox.waitForExist();
|
|
26
|
+
|
|
27
|
+
await expect(listbox).toHaveAttribute('role', 'listbox');
|
|
28
|
+
await expect(listbox).toHaveAttribute('aria-busy', 'true');
|
|
29
|
+
await expect(listbox).toHaveAttribute('aria-label', 'Loading options please wait');
|
|
30
|
+
await expect(listbox).toHaveAttribute('aria-multiselectable', 'true');
|
|
31
|
+
|
|
32
|
+
const listboxId = await listbox.getAttribute('id');
|
|
33
|
+
const input = await DSComboboxMultiCO.getComboboxInput();
|
|
34
|
+
await expect(input).toHaveAttribute('aria-controls', listboxId);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('PUI-18448 - ComboboxMulti:: busy listbox while isSkeleton - Func', () => {
|
|
39
|
+
before('loading page', async () => {
|
|
40
|
+
const errorOnGo = await DSComboboxMultiCO.skeletonTest.go();
|
|
41
|
+
if (errorOnGo) throw errorOnGo;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('01: listbox is aria-busy + aria-multiselectable with aria-label', async () => {
|
|
45
|
+
const dropdownMenuBtn = await DSComboboxMultiCO.getDropDownMenuBtn();
|
|
46
|
+
await dropdownMenuBtn.click();
|
|
47
|
+
|
|
48
|
+
const listbox = await DSComboboxMultiCO.getComboListbox();
|
|
49
|
+
await listbox.waitForExist();
|
|
50
|
+
|
|
51
|
+
await expect(listbox).toHaveAttribute('role', 'listbox');
|
|
52
|
+
await expect(listbox).toHaveAttribute('aria-busy', 'true');
|
|
53
|
+
await expect(listbox).toHaveAttribute('aria-label', 'Loading options please wait');
|
|
54
|
+
await expect(listbox).toHaveAttribute('aria-multiselectable', 'true');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
4
|
+
import { mouseOver } from '../../helpers';
|
|
4
5
|
|
|
5
6
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
7
|
describe('PUI-14364 - ComboboxMulti:: applyAriaDisabled prop - visual', () => {
|
|
@@ -43,5 +44,19 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
43
44
|
);
|
|
44
45
|
await expect(snapshot).toEqual(0);
|
|
45
46
|
});
|
|
47
|
+
// PUI-15476: aria-disabled item text color must change to n600 on hover
|
|
48
|
+
it('04: listbox with aria-disabled item hovered should display n600 text color', async () => {
|
|
49
|
+
await browser.eyesOpen();
|
|
50
|
+
const secondCombobox = await DSComboboxMultiCO.getComboboxWrapperByIndex(1);
|
|
51
|
+
await secondCombobox.click();
|
|
52
|
+
const menuList = await DSComboboxMultiCO.getMenuList();
|
|
53
|
+
await menuList.waitForDisplayed();
|
|
54
|
+
const ariaDisabledOption = await DSComboboxMultiCO.getOptionByIndex(1);
|
|
55
|
+
await mouseOver(ariaDisabledOption);
|
|
56
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
57
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-aria-disabled-item-hovered'),
|
|
58
|
+
);
|
|
59
|
+
await expect(snapshot).toEqual(0);
|
|
60
|
+
});
|
|
46
61
|
});
|
|
47
62
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
if (
|
|
5
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
6
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
7
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
8
|
+
browser.capabilities.browserName === 'Chrome'
|
|
9
|
+
) {
|
|
10
|
+
describe('PUI-18473 - ComboboxMulti:: disabled - axe-core', () => {
|
|
11
|
+
before('loading page', async () => {
|
|
12
|
+
const errorOnGo = await DSComboboxMultiCO.disabled.go();
|
|
13
|
+
if (errorOnGo) throw errorOnGo;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('01: disabled combobox should pass axe-core scan', async () => {
|
|
17
|
+
const combobox = await DSComboboxMultiCO.getCombobox();
|
|
18
|
+
await combobox.waitForExist();
|
|
19
|
+
|
|
20
|
+
const result = await axeCoreCheck();
|
|
21
|
+
expect(result.length).toBe(0);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fixes in PUI-15502 (disabled input hint/value + pill font color =
|
|
4
|
+
// neutral-600) and PUI-15578 (dropdown chevron fill = neutral-400 in disabled state).
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-18573 - ComboboxMulti:: Disabled -Visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxMultiCO.disabled.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('01: should display disabled combobox with dimmed pill text and chevron', async () => {
|
|
13
|
+
const combobox = await DSComboboxMultiCO.getCombobox();
|
|
14
|
+
await combobox.waitForDisplayed();
|
|
15
|
+
|
|
16
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
17
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-disabled-input'),
|
|
18
|
+
);
|
|
19
|
+
await expect(snapshot).toEqual(0);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fixes introduced in PUI-15487 (group/section label styled per the
|
|
4
|
+
// b3-strong spec — bold, neutral color, 32px row) and PUI-15473 (menu item idle
|
|
5
|
+
// label color resolves to neutral-700; disabled options fall through to the muted
|
|
6
|
+
// disabledOption color). The open grouped menu surfaces all of these at once.
|
|
7
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
+
describe('PUI-18571 - ComboboxMulti:: Grouped -Visual', () => {
|
|
9
|
+
before('loading page', async () => {
|
|
10
|
+
const errorOnGo = await DSComboboxMultiCO.grouped.go();
|
|
11
|
+
if (errorOnGo) throw errorOnGo;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('01: should display grouped menu with section labels, idle and disabled option text', async () => {
|
|
15
|
+
const menuList = await DSComboboxMultiCO.getMenuList();
|
|
16
|
+
await menuList.waitForDisplayed();
|
|
17
|
+
|
|
18
|
+
const sectionLabel = await DSComboboxMultiCO.getComboboxSectionLabelByIndex(0);
|
|
19
|
+
await sectionLabel.waitForDisplayed();
|
|
20
|
+
|
|
21
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
22
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-grouped-menu'),
|
|
23
|
+
);
|
|
24
|
+
await expect(snapshot).toEqual(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('02: should display grouped menu with a selected option checked', async () => {
|
|
28
|
+
const option = await DSComboboxMultiCO.getOptionByIndex(0);
|
|
29
|
+
await option.click();
|
|
30
|
+
|
|
31
|
+
// multi select keeps the menu open — the selected option renders its checked
|
|
32
|
+
// styling in place.
|
|
33
|
+
const menuList = await DSComboboxMultiCO.getMenuList();
|
|
34
|
+
await menuList.waitForDisplayed();
|
|
35
|
+
|
|
36
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
37
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-grouped-menu-selected'),
|
|
38
|
+
);
|
|
39
|
+
await expect(snapshot).toEqual(0);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
3
|
+
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
|
+
// Tests for the fix introduced in PUI-15481 (inline padding 8px top/bottom — was 10px)
|
|
6
|
+
describe('PUI-18560 - ComboboxMulti:: inline config padding - visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxMultiCO.inlineTest.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: inline combobox should render with the corrected 8px padding', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const pillDropdownBtn = await DSComboboxMultiCO.getPillDropDownBtn();
|
|
14
|
+
await pillDropdownBtn.click();
|
|
15
|
+
const menuList = await DSComboboxMultiCO.getMenuList();
|
|
16
|
+
await menuList.waitForDisplayed();
|
|
17
|
+
const snapshot = await browser.eyesCheckSnapshot(DSComboboxMultiCO.snapshotPath('combobox-multi-inline-padding'));
|
|
18
|
+
await expect(snapshot).toEqual(0);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fix introduced in PUI-15485 (skeleton menu items render with the
|
|
4
|
+
// correct region fill — neutral-080 — and a 1px corner radius per the menu spec).
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-18572 - ComboboxMulti:: Skeleton -Visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxMultiCO.skeletonTest.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('01: should display skeleton menu items with region fill and corner radius', async () => {
|
|
13
|
+
const dropdownMenuBtn = await DSComboboxMultiCO.getDropDownMenuBtn();
|
|
14
|
+
await dropdownMenuBtn.click();
|
|
15
|
+
|
|
16
|
+
const skeletonMenuItem = await DSComboboxMultiCO.getComboboxSkeletonMenuItem();
|
|
17
|
+
await skeletonMenuItem.waitForDisplayed();
|
|
18
|
+
|
|
19
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
20
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-skeleton-menu'),
|
|
21
|
+
);
|
|
22
|
+
await expect(snapshot).toEqual(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -4,6 +4,10 @@ import { PageObject, Urlbuilder } from '../helpers';
|
|
|
4
4
|
|
|
5
5
|
export default class DSComboboxSingleCO extends PageObject {
|
|
6
6
|
// STORIES
|
|
7
|
+
static loadingTest = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'loading-test');
|
|
8
|
+
|
|
9
|
+
static skeletonTest = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'skeleton-test');
|
|
10
|
+
|
|
7
11
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'apply-aria-disabled-test');
|
|
8
12
|
|
|
9
13
|
static readOnly = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'read-only-test');
|
|
@@ -33,6 +37,10 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
33
37
|
|
|
34
38
|
static disabled = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'disabled-test');
|
|
35
39
|
|
|
40
|
+
static grouped = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'grouped-test');
|
|
41
|
+
|
|
42
|
+
static inlineTest = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'inline-test');
|
|
43
|
+
|
|
36
44
|
// COMBOBOX - INPUT
|
|
37
45
|
static async getCombobox() {
|
|
38
46
|
return $('[data-testid="combobox-container"]');
|
|
@@ -133,7 +141,7 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
133
141
|
}
|
|
134
142
|
|
|
135
143
|
static async getSimpleTruncateText() {
|
|
136
|
-
return $('[data-testid="
|
|
144
|
+
return $('[data-testid="combobox-selected-values"]');
|
|
137
145
|
}
|
|
138
146
|
|
|
139
147
|
static async getNumberOptions() {
|
|
@@ -182,7 +190,7 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
182
190
|
}
|
|
183
191
|
|
|
184
192
|
static async getTooltip() {
|
|
185
|
-
return $('[data-testid="
|
|
193
|
+
return $('[data-testid="ds-floating-wrapper-root"]');
|
|
186
194
|
}
|
|
187
195
|
|
|
188
196
|
// Slots
|
|
@@ -244,7 +252,7 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
244
252
|
}
|
|
245
253
|
|
|
246
254
|
static async getComboboxSectionLabelByIndex(index) {
|
|
247
|
-
return $$('[data-dimsum-slot="dsComboboxSectionLabel"]')[index];
|
|
255
|
+
return $$('[data-dimsum-parent-slot="dsComboboxSectionLabel"]')[index];
|
|
248
256
|
}
|
|
249
257
|
|
|
250
258
|
static async getComboboxSectionWrapperSlotByIndex(index) {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
// Tests for the fix introduced in PUI-18034
|
|
5
|
+
// (busy listbox with aria-busy + aria-label so screen readers announce the
|
|
6
|
+
// in-progress state via the input's aria-controls linkage; this spec verifies
|
|
7
|
+
// the busy listbox surface passes axe-core).
|
|
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-18474 - ComboboxSingle:: busy listbox while isLoading - axe-core', () => {
|
|
15
|
+
before('loading page', async () => {
|
|
16
|
+
const errorOnGo = await DSComboboxSingleCO.loadingTest.go();
|
|
17
|
+
if (errorOnGo) throw errorOnGo;
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('01: busy listbox while isLoading should pass axe-core scan', async () => {
|
|
21
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
22
|
+
await dropdownMenuBtn.click();
|
|
23
|
+
|
|
24
|
+
const listbox = await DSComboboxSingleCO.getComboListbox();
|
|
25
|
+
await listbox.waitForExist();
|
|
26
|
+
|
|
27
|
+
const result = await axeCoreCheck();
|
|
28
|
+
expect(result.length).toBe(0);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
describe('PUI-18475 - ComboboxSingle:: busy listbox while isSkeleton - axe-core', () => {
|
|
33
|
+
before('loading page', async () => {
|
|
34
|
+
const errorOnGo = await DSComboboxSingleCO.skeletonTest.go();
|
|
35
|
+
if (errorOnGo) throw errorOnGo;
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('01: busy listbox while isSkeleton should pass axe-core scan', async () => {
|
|
39
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
40
|
+
await dropdownMenuBtn.click();
|
|
41
|
+
|
|
42
|
+
const listbox = await DSComboboxSingleCO.getComboListbox();
|
|
43
|
+
await listbox.waitForExist();
|
|
44
|
+
|
|
45
|
+
const result = await axeCoreCheck();
|
|
46
|
+
expect(result.length).toBe(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.func.spec.js
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fix introduced in PUI-18034
|
|
4
|
+
// (carries aria-busy + aria-label on the listbox during loading/skeleton so
|
|
5
|
+
// screen readers announce the in-progress state via the input's aria-controls
|
|
6
|
+
// linkage; replaces the prior racing assertive live region).
|
|
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-18445 - ComboboxSingle:: busy listbox while isLoading - Func', () => {
|
|
14
|
+
before('loading page', async () => {
|
|
15
|
+
const errorOnGo = await DSComboboxSingleCO.loadingTest.go();
|
|
16
|
+
if (errorOnGo) throw errorOnGo;
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('01: listbox is aria-busy with aria-label and input aria-controls links to it', async () => {
|
|
20
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
21
|
+
await dropdownMenuBtn.click();
|
|
22
|
+
|
|
23
|
+
const listbox = await DSComboboxSingleCO.getComboListbox();
|
|
24
|
+
await listbox.waitForExist();
|
|
25
|
+
|
|
26
|
+
await expect(listbox).toHaveAttribute('role', 'listbox');
|
|
27
|
+
await expect(listbox).toHaveAttribute('aria-busy', 'true');
|
|
28
|
+
await expect(listbox).toHaveAttribute('aria-label', 'Loading options please wait');
|
|
29
|
+
|
|
30
|
+
const listboxId = await listbox.getAttribute('id');
|
|
31
|
+
const input = await DSComboboxSingleCO.getComboboxInput();
|
|
32
|
+
await expect(input).toHaveAttribute('aria-controls', listboxId);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe('PUI-18446 - ComboboxSingle:: busy listbox while isSkeleton - Func', () => {
|
|
37
|
+
before('loading page', async () => {
|
|
38
|
+
const errorOnGo = await DSComboboxSingleCO.skeletonTest.go();
|
|
39
|
+
if (errorOnGo) throw errorOnGo;
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('01: listbox is aria-busy with aria-label', async () => {
|
|
43
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
44
|
+
await dropdownMenuBtn.click();
|
|
45
|
+
|
|
46
|
+
const listbox = await DSComboboxSingleCO.getComboListbox();
|
|
47
|
+
await listbox.waitForExist();
|
|
48
|
+
|
|
49
|
+
await expect(listbox).toHaveAttribute('role', 'listbox');
|
|
50
|
+
await expect(listbox).toHaveAttribute('aria-busy', 'true');
|
|
51
|
+
await expect(listbox).toHaveAttribute('aria-label', 'Loading options please wait');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/* eslint-disable max-lines */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
4
|
+
import DSControlledCheckboxCO from '../../ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO';
|
|
5
|
+
import { mouseOver } from '../../helpers';
|
|
4
6
|
|
|
5
7
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
8
|
describe('PUI-14367 - ComboboxSingle:: applyAriaDisabled prop - visual', () => {
|
|
@@ -16,5 +18,21 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
16
18
|
);
|
|
17
19
|
await expect(snapshot).toEqual(0);
|
|
18
20
|
});
|
|
21
|
+
// PUI-15476: aria-disabled item text color must change to n600 on hover
|
|
22
|
+
it('02: listbox with aria-disabled item hovered should display n600 text color', async () => {
|
|
23
|
+
await browser.eyesOpen();
|
|
24
|
+
const checkbox = await DSControlledCheckboxCO.getCheckbox();
|
|
25
|
+
await checkbox.click();
|
|
26
|
+
const combobox = await DSComboboxSingleCO.getCombobox();
|
|
27
|
+
await combobox.click();
|
|
28
|
+
const menuList = await DSComboboxSingleCO.getMenuList();
|
|
29
|
+
await menuList.waitForDisplayed();
|
|
30
|
+
const ariaDisabledOption = await DSComboboxSingleCO.getOptionByIndex(1);
|
|
31
|
+
await mouseOver(ariaDisabledOption);
|
|
32
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
33
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-aria-disabled-item-hovered'),
|
|
34
|
+
);
|
|
35
|
+
await expect(snapshot).toEqual(0);
|
|
36
|
+
});
|
|
19
37
|
});
|
|
20
38
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
if (
|
|
5
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
6
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
7
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
8
|
+
browser.capabilities.browserName === 'Chrome'
|
|
9
|
+
) {
|
|
10
|
+
describe('PUI-18476 - ComboboxSingle:: disabled - axe-core', () => {
|
|
11
|
+
before('loading page', async () => {
|
|
12
|
+
const errorOnGo = await DSComboboxSingleCO.disabled.go();
|
|
13
|
+
if (errorOnGo) throw errorOnGo;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('01: disabled combobox should pass axe-core scan', async () => {
|
|
17
|
+
const combobox = await DSComboboxSingleCO.getComboboxByIndex(0);
|
|
18
|
+
await combobox.waitForExist();
|
|
19
|
+
|
|
20
|
+
const result = await axeCoreCheck();
|
|
21
|
+
expect(result.length).toBe(0);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fixes in PUI-15502 (disabled input hint/value font color = neutral-600)
|
|
4
|
+
// and PUI-15578 (dropdown chevron fill = neutral-400 in the disabled state).
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-18570 - ComboboxSingle:: Disabled -Visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxSingleCO.disabled.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('01: should display disabled combobox with dimmed value text and chevron', async () => {
|
|
13
|
+
const combobox = await DSComboboxSingleCO.getCombobox();
|
|
14
|
+
await combobox.waitForDisplayed();
|
|
15
|
+
|
|
16
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
17
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-disabled-input'),
|
|
18
|
+
);
|
|
19
|
+
await expect(snapshot).toEqual(0);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fixes introduced in PUI-15487 (group/section label styled per the
|
|
4
|
+
// b3-strong spec — bold, neutral color, 32px row) and PUI-15473 (single menu item
|
|
5
|
+
// idle label color set to neutral-700; disabled options fall through to the muted
|
|
6
|
+
// disabledOption color). The open grouped menu surfaces all of these at once.
|
|
7
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
+
describe('PUI-18568 - ComboboxSingle:: Grouped -Visual', () => {
|
|
9
|
+
before('loading page', async () => {
|
|
10
|
+
const errorOnGo = await DSComboboxSingleCO.grouped.go();
|
|
11
|
+
if (errorOnGo) throw errorOnGo;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it('01: should display grouped menu with section labels, idle and disabled option text', async () => {
|
|
15
|
+
const menuList = await DSComboboxSingleCO.getMenuList();
|
|
16
|
+
await menuList.waitForDisplayed();
|
|
17
|
+
|
|
18
|
+
const sectionLabel = await DSComboboxSingleCO.getComboboxSectionLabelByIndex(0);
|
|
19
|
+
await sectionLabel.waitForDisplayed();
|
|
20
|
+
|
|
21
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
22
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-grouped-menu'),
|
|
23
|
+
);
|
|
24
|
+
await expect(snapshot).toEqual(0);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('02: should display grouped menu with a selected option highlighted', async () => {
|
|
28
|
+
const option = await DSComboboxSingleCO.getOptionByIndex(0);
|
|
29
|
+
await option.click();
|
|
30
|
+
|
|
31
|
+
// single select closes the controlled menu on selection — reopen to capture
|
|
32
|
+
// the selected option styling inside the open listbox.
|
|
33
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
34
|
+
await dropdownMenuBtn.click();
|
|
35
|
+
|
|
36
|
+
const menuList = await DSComboboxSingleCO.getMenuList();
|
|
37
|
+
await menuList.waitForDisplayed();
|
|
38
|
+
|
|
39
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
40
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-grouped-menu-selected'),
|
|
41
|
+
);
|
|
42
|
+
await expect(snapshot).toEqual(0);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
3
|
+
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
|
+
// Tests for the fix introduced in PUI-15481 (inline padding 8px top/bottom — was 10px)
|
|
6
|
+
describe('PUI-18559 - ComboboxSingle:: inline config padding - visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxSingleCO.inlineTest.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: inline combobox should render with the corrected 8px padding', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const pillDropdownBtn = await DSComboboxSingleCO.getPillDropDownBtn();
|
|
14
|
+
await pillDropdownBtn.click();
|
|
15
|
+
const menuList = await DSComboboxSingleCO.getMenuList();
|
|
16
|
+
await menuList.waitForDisplayed();
|
|
17
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
18
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-inline-padding'),
|
|
19
|
+
);
|
|
20
|
+
await expect(snapshot).toEqual(0);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
2
|
+
|
|
3
|
+
// Tests for the fix introduced in PUI-15485 (skeleton menu items render with the
|
|
4
|
+
// correct region fill — neutral-080 — and a 1px corner radius per the menu spec).
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-18569 - ComboboxSingle:: Skeleton -Visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxSingleCO.skeletonTest.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('01: should display skeleton menu items with region fill and corner radius', async () => {
|
|
13
|
+
const dropdownMenuBtn = await DSComboboxSingleCO.getDropDownMenuBtn();
|
|
14
|
+
await dropdownMenuBtn.click();
|
|
15
|
+
|
|
16
|
+
const skeletonMenuItem = await DSComboboxSingleCO.getComboboxSkeletonMenuItem();
|
|
17
|
+
await skeletonMenuItem.waitForDisplayed();
|
|
18
|
+
|
|
19
|
+
const snapshot = await browser.percyCheckScreenshot(
|
|
20
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-skeleton-menu'),
|
|
21
|
+
);
|
|
22
|
+
await expect(snapshot).toEqual(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|