dimsum-e2e-tests 3.70.0-next.2 → 3.70.0-next.21
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 +110 -0
- package/ds-autocomplete/DSAutocomplete.visual.spec.js +34 -0
- package/ds-autocomplete/DSAutocompleteCO.js +2 -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-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 +10 -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/components/HeaderCO.js +22 -10
- package/ds-dialog/DSDialog.visual.spec.js +16 -31
- package/ds-dialog/DSDialogCO.js +58 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-critical.axe-core.func.spec.js +27 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-critical.func.spec.js +56 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-critical.visual.spec.js +20 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-dismissible.axe-core.func.spec.js +25 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-dismissible.func.spec.js +52 -0
- package/ds-dialog/alert-dialog/DSDialog.alert-dialog-dismissible.visual.spec.js +20 -0
- package/ds-dialog/axe-core/DSDialog.accessible-form.axe-core.func.spec.js +25 -0
- package/ds-dialog/axe-core/DSDialog.basic.axe-core.func.spec.js +25 -0
- package/ds-dialog/axe-core/DSDialog.centered.axe-core.func.spec.js +25 -0
- package/ds-dialog/axe-core/DSDialog.decision.axe-core.func.spec.js +57 -0
- package/ds-dialog/axe-core/DSDialog.long-body.axe-core.func.spec.js +25 -0
- package/ds-dialog/axe-core/DSDialog.warning.axe-core.func.spec.js +24 -0
- package/ds-dialog/axe-core/DSDialog.wizard.axe-core.func.spec.js +28 -0
- package/ds-dialog/click-outside/DSDialog.click-outside.func.spec.js +31 -0
- package/ds-dialog/esc-close/DSDialog.esc-close.func.spec.js +31 -0
- package/ds-dialog/flexible-heading-level/DSDialog.flexible-heading-level.axe-core.func.spec.js +46 -0
- package/ds-dialog/flexible-heading-level/DSDialog.flexible-heading-level.func.spec.js +50 -0
- package/ds-dialog/form-dialog-datepicker/DSDialog.form-datepicker.axe-core.func.spec.js +25 -0
- package/ds-dialog/form-dialog-datepicker/DSDialog.form-datepicker.visual.spec.js +37 -0
- package/ds-dialog/single-button-footer/DSDialog.single-button-footer.axe-core.func.spec.js +25 -0
- package/ds-dialog/single-button-footer/DSDialog.single-button-footer.visual.spec.js +20 -0
- package/ds-dialog/size-variants/DSDialog.size-variants.visual.spec.js +116 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +6 -2
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.axe-core.func.spec.js +49 -0
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js +57 -0
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +6 -2
- 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/disabled/DSComboboxSingle.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +39 -0
- package/ds-form-native-select/NativeSelectCO.js +6 -0
- package/ds-global-header/GlobalHeader.axe-core.func.spec.js +30 -0
- package/ds-global-header/GlobalHeader.visual.spec.js +31 -0
- package/ds-leftnavigation/LeftNavigationCO.js +2 -2
- 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-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-tab-button/DSTabButton.func.spec.js +1 -1
- package/ds-tabs/DSTabs.visual.spec.js +1 -2
- package/ds-tabs/DSTabsCO.js +2 -2
- package/ds-tabs/with-carousel/DSTabs.with-carousel.func.spec.js +22 -7
- package/ds-tabs/with-carousel/DSTabs.with-carousel.visual.spec.js +9 -9
- package/ds-tooltip-v3/DSTooltipV3CO.js +6 -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-treeview/DSTreeViewCO.js +2 -2
- package/package.json +149 -151
- package/paths.js +5 -1
- package/ds-chat-tile/TileCO.js +0 -35
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { PATH_CHAT_PARTS, PATH_E2E_CHAT_CARD } from '../../paths';
|
|
2
|
+
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
export default class CardCO extends PageObject {
|
|
5
|
+
static chatCardURL = new Urlbuilder(PATH_CHAT_PARTS, 'chat-card');
|
|
6
|
+
|
|
7
|
+
static cardBasicURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'basic-test');
|
|
8
|
+
|
|
9
|
+
static cardWithNotificationBadgesURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'with-notification-badges-test');
|
|
10
|
+
|
|
11
|
+
static cardTruncatedURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'truncated-text-test');
|
|
12
|
+
|
|
13
|
+
static cardSlotsURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'slots-test');
|
|
14
|
+
|
|
15
|
+
static async getCards() {
|
|
16
|
+
return $$('[data-testid="chat-card-wrapper"]');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
static async getCardRoot(cardId) {
|
|
20
|
+
return $(`[data-testid="chat-card-wrapper-${cardId}"]`);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static async getCardTitle(cardId) {
|
|
24
|
+
return $(`[data-testid="chat-card-title-${cardId}"]`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static async getCardContent(cardId) {
|
|
28
|
+
return $(`[data-testid="chat-card-content-${cardId}"]`);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static async getCardTime(cardId) {
|
|
32
|
+
return $(`[data-testid="chat-card-time-${cardId}"]`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Truncated text selectors
|
|
36
|
+
static async getTruncatedSpan(index = 0) {
|
|
37
|
+
return $$('[data-dimsum-slot="dsChatcardTruncatedSpan"]')[index];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static async getTooltipContainer() {
|
|
41
|
+
return $('[data-dimsum-slot="dsChatcardTooltipContainer"]');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Slot selectors (used by slots func spec — one card per story)
|
|
45
|
+
static async getRootSlot() {
|
|
46
|
+
return $('[data-dimsum-slot="dsChatcardRoot"]');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static async getMainContentSlot() {
|
|
50
|
+
return $('[data-dimsum-slot="dsChatcardMainContent"]');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static async getTitleSlot() {
|
|
54
|
+
return $('[data-dimsum-slot="dsChatcardTitle"]');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static async getContentSlot() {
|
|
58
|
+
return $('[data-dimsum-slot="dsChatcardContent"]');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static async getTimeSlot() {
|
|
62
|
+
return $('[data-dimsum-slot="dsChatcardTime"]');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static async getRightAddonSlot() {
|
|
66
|
+
return $('[data-dimsum-slot="dsChatcardRightAddon"]');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static async getTruncatedSpanSlot() {
|
|
70
|
+
return $('[data-dimsum-slot="dsChatcardTruncatedSpan"]');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Snapshots
|
|
74
|
+
static snapshotPath(example = 'basic') {
|
|
75
|
+
return PageObject.getSnapshotPathBuilder('Card', example, 'ds-chat');
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/* eslint-disable import/no-relative-packages */
|
|
2
|
-
import {
|
|
2
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
3
3
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
export default class ComposerCO extends PageObject {
|
|
6
|
-
static composerURL = new Urlbuilder(
|
|
6
|
+
static composerURL = new Urlbuilder(PATH_E2E_CHAT, 'composer');
|
|
7
7
|
|
|
8
|
-
static mobileComposerURL = new Urlbuilder(
|
|
8
|
+
static mobileComposerURL = new Urlbuilder(PATH_E2E_CHAT, 'mobile-container');
|
|
9
9
|
|
|
10
|
-
static characterCountURL = new Urlbuilder(
|
|
10
|
+
static characterCountURL = new Urlbuilder(PATH_E2E_CHAT, 'composer-character-count');
|
|
11
11
|
|
|
12
|
-
static characterCountCustomURL = new Urlbuilder(
|
|
12
|
+
static characterCountCustomURL = new Urlbuilder(PATH_E2E_CHAT, 'composer-character-count-custom-message');
|
|
13
13
|
|
|
14
14
|
static responsiveContainerUCURL = new Urlbuilder(PATH_E2E_CHAT, 'responsive-container');
|
|
15
15
|
|
|
16
|
-
static containerFocusCasesURL = new Urlbuilder(
|
|
16
|
+
static containerFocusCasesURL = new Urlbuilder(PATH_E2E_CHAT, 'container-focus-cases');
|
|
17
17
|
|
|
18
18
|
static LONG_STRING = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula bibendum nulla';
|
|
19
19
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
2
2
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
3
|
|
|
4
4
|
export default class FloatingButtonCO extends PageObject {
|
|
5
|
-
static floatingButtonURL = new Urlbuilder(
|
|
5
|
+
static floatingButtonURL = new Urlbuilder(PATH_E2E_CHAT, 'float-button');
|
|
6
6
|
|
|
7
7
|
static floatingExampleURL = new Urlbuilder(PATH_E2E_CHAT, 'floating-example-test');
|
|
8
8
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable import/no-relative-packages */
|
|
2
|
-
import {
|
|
2
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
3
3
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
export default class HeaderCO extends PageObject {
|
|
6
|
-
static headerURL = new Urlbuilder(
|
|
6
|
+
static headerURL = new Urlbuilder(PATH_E2E_CHAT, 'header');
|
|
7
7
|
|
|
8
8
|
static withConditionalRenderingUCURL = new Urlbuilder(PATH_E2E_CHAT, 'conditional-rendering-header-buttons');
|
|
9
9
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { PATH_E2E_CHAT, PATH_E2E_CHAT_TILE } from '../../paths';
|
|
2
|
+
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
export default class TileCO extends PageObject {
|
|
5
|
+
static tilesURL = new Urlbuilder(PATH_E2E_CHAT, 'tile');
|
|
6
|
+
|
|
7
|
+
static sidebarURL = new Urlbuilder(PATH_E2E_CHAT, 'sidebar');
|
|
8
|
+
|
|
9
|
+
static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'apply-aria-disabled-test');
|
|
10
|
+
|
|
11
|
+
static slotsTestURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'slots-test');
|
|
12
|
+
|
|
13
|
+
static async getChatTile(tileId) {
|
|
14
|
+
return $(`[data-testid="tile-button-${tileId}"]`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static async getChatTileButtonItem(tileId) {
|
|
18
|
+
return $(`[data-testid="tile-button-item-id-${tileId}"]`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static async getSideBarSelectedTile() {
|
|
22
|
+
return $(`[data-testid="selected-tile"]`).getText();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static async getTileTooltip(id) {
|
|
26
|
+
return $(`[data-testid="ds-tooltip-v3-trigger-wrapper_ds-chat-tile-tooltip-button-item-id-${id}"]`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static async getCounter() {
|
|
30
|
+
return $('[data-testid="counter"]');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static async getTileBadge(tileId) {
|
|
34
|
+
return $(`[data-testid="tile-badge-${tileId}"]`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static async getTileCloseButton(tileId) {
|
|
38
|
+
return $(`[data-testid="tile-close-btn-${tileId}"]`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Slot selectors (used by slots func spec — one tile per story)
|
|
42
|
+
static async getRootSlot() {
|
|
43
|
+
return $('[data-dimsum-slot="dsChattilebuttonRoot"]');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static async getTooltipWrapperSlot() {
|
|
47
|
+
return $('[data-dimsum-slot="dsChattilebuttonTooltipWrapper"]');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static async getWrapperSlot() {
|
|
51
|
+
return $('[data-dimsum-slot="dsChattilebuttonWrapper"]');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static async getLeftBorderSlot() {
|
|
55
|
+
return $('[data-dimsum-slot="dsChattilebuttonLeftBorder"]');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static async getCentralContentSlot() {
|
|
59
|
+
return $('[data-dimsum-slot="dsChattilebuttonCentralContent"]');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static async getIconSlot() {
|
|
63
|
+
return $('[data-dimsum-slot="dsChattilebuttonIcon"]');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static async getLabelSlot() {
|
|
67
|
+
return $('[data-dimsum-slot="dsChattilebuttonLabel"]');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static async getBadgeSlot() {
|
|
71
|
+
return $('[data-dimsum-slot="dsChattilebuttonBadge"]');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static async getCloseButtonSlot() {
|
|
75
|
+
return $('[data-dimsum-slot="dsChattilebuttonCloseButton"]');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Snapshots
|
|
79
|
+
static snapshotPath(example = 'basic') {
|
|
80
|
+
return PageObject.getSnapshotPathBuilder('Tile', example, 'ds-chat');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import BubbleCO from './BubbleCO';
|
|
2
|
+
import CardCO from './CardCO';
|
|
2
3
|
import FloatingButtonCO from './FloatingButtonCO';
|
|
3
|
-
import TileCO from '
|
|
4
|
+
import TileCO from './TileCO';
|
|
4
5
|
import HeaderCO from './HeaderCO';
|
|
5
6
|
import ComposerCO from './ComposerCO';
|
|
6
7
|
import ChatCO from '../DSChatCO';
|
|
7
8
|
import StoryBtnsCO from './StoryBtnsCO';
|
|
8
|
-
export { BubbleCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
|
|
9
|
+
export { BubbleCO, CardCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
|
-
import TileCO from '
|
|
2
|
+
import { TileCO } from '../components';
|
|
3
3
|
|
|
4
4
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
5
|
describe('PUI-6684 - Chat, Tile, Keyboard Navigation', () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
|
-
import TileCO from '
|
|
3
|
-
import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '
|
|
2
|
+
import { TileCO } from '../components';
|
|
3
|
+
import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone) {
|
|
6
6
|
describe('PUI-6674 - Chat, Tile, Visual Tests', () => {
|
package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
|
-
import TileCO from '
|
|
3
|
+
import { TileCO } from '../../components';
|
|
4
4
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
6
|
describe('PUI-14368 - [Tile] applyAriaDisabled prop - visual Test', () => {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Tests for PUI-17908 (ds-chat-tile slots implementation)
|
|
2
|
+
import { TileCO } from '../../components';
|
|
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-18465 - DSChatTile:: slot wiring - Func', () => {
|
|
11
|
+
before('loading page', async () => {
|
|
12
|
+
const errorOnGo = await TileCO.slotsTestURL.go();
|
|
13
|
+
if (errorOnGo) throw errorOnGo;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('01: should have custom aria-* for each slot', async () => {
|
|
17
|
+
await (await TileCO.getRootSlot()).waitForDisplayed();
|
|
18
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('aria-label', 'root aria');
|
|
19
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('aria-label', 'tooltip-wrapper aria');
|
|
20
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('aria-label', 'wrapper aria');
|
|
21
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('aria-label', 'left-border aria');
|
|
22
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('aria-label', 'central-content aria');
|
|
23
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('aria-label', 'icon aria');
|
|
24
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('aria-label', 'label aria');
|
|
25
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('aria-label', 'badge aria');
|
|
26
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('aria-label', 'close-button aria');
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('02: should have custom data-testid for each slot', async () => {
|
|
30
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('data-testid', 'root data');
|
|
31
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('data-testid', 'tooltip-wrapper data');
|
|
32
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('data-testid', 'wrapper data');
|
|
33
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('data-testid', 'left-border data');
|
|
34
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('data-testid', 'central-content data');
|
|
35
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('data-testid', 'icon data');
|
|
36
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('data-testid', 'label data');
|
|
37
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('data-testid', 'badge data');
|
|
38
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('data-testid', 'close-button data');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('03: should have custom lang for each slot', async () => {
|
|
42
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('lang', 'pt');
|
|
43
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('lang', 'es');
|
|
44
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('lang', 'de');
|
|
45
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('lang', 'en');
|
|
46
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('lang', 'fr');
|
|
47
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('lang', 'it');
|
|
48
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('lang', 'nl');
|
|
49
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('lang', 'sv');
|
|
50
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('lang', 'ja');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Tests for PUI-17908 (ds-chat-tile slots implementation)
|
|
2
|
+
import { TileCO } from '../../components';
|
|
3
|
+
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
|
+
describe('PUI-18464 - DSChatTile:: slot variants - Visual', () => {
|
|
6
|
+
before(async () => {
|
|
7
|
+
const errorOnGo = await TileCO.slotsTestURL.go();
|
|
8
|
+
if (errorOnGo) throw errorOnGo;
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('01: should display all tile slot variants', async () => {
|
|
12
|
+
const firstTile = await TileCO.getRootSlot();
|
|
13
|
+
await firstTile.waitForDisplayed();
|
|
14
|
+
const snapshot = await browser.percyCheckScreenshot(TileCO.snapshotPath('tile-slot-variants'));
|
|
15
|
+
await expect(snapshot).toEqual(0);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -134,7 +134,7 @@ export default class DSComboboxCO extends PageObject {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
static async getSimpleTruncateText() {
|
|
137
|
-
return $('[data-testid="
|
|
137
|
+
return $('[data-testid="combobox-selected-values"]');
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
static async getNumberOptions() {
|
|
@@ -183,7 +183,7 @@ export default class DSComboboxCO extends PageObject {
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
static async getTooltip() {
|
|
186
|
-
return $('[data-testid="
|
|
186
|
+
return $('[data-testid="ds-floating-wrapper-root"]');
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
// actions
|
|
@@ -58,7 +58,7 @@ export default class DSControlledCheckboxCO extends PageObject {
|
|
|
58
58
|
static getCheckboxByIndex = async (index) => getElementByIndex(this.getCheckboxes, index);
|
|
59
59
|
|
|
60
60
|
static async getCheckboxLabels() {
|
|
61
|
-
return $$('[data-testid="
|
|
61
|
+
return $$('[data-testid="ds-checkbox-label"]');
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
static getCheckboxLabelByIndex = async (index) => getElementByIndex(this.getCheckboxLabels, index);
|
|
@@ -47,7 +47,7 @@ export default class DSControlledInputGroupCO extends PageObject {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
static async getComboSelectedOptText() {
|
|
50
|
-
return $('[data-testid="
|
|
50
|
+
return $('[data-testid="combobox-selected-values"]');
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
static async getComboboxInput() {
|
|
@@ -142,10 +142,6 @@ export default class DataTableCO extends PageObject {
|
|
|
142
142
|
|
|
143
143
|
static performance = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'performance');
|
|
144
144
|
|
|
145
|
-
static emptyStateFullCustom = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'empty-state-full-custom');
|
|
146
|
-
|
|
147
|
-
static customCellRowHeader = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'custom-cell-row-and-header');
|
|
148
|
-
|
|
149
145
|
static responsive = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'responsive');
|
|
150
146
|
|
|
151
147
|
// ROW
|
|
@@ -162,10 +158,15 @@ export default class DataTableCO extends PageObject {
|
|
|
162
158
|
|
|
163
159
|
static singleSelectDisabledSelectionUC = new Urlbuilder(PATH_E2E_DATATABLE, 'single-select-disabled-selection');
|
|
164
160
|
|
|
165
|
-
static multiSelectDisabledSelectionUC = new Urlbuilder(
|
|
161
|
+
static multiSelectDisabledSelectionUC = new Urlbuilder(PATH_E2E_DATATABLE_ROW, 'multi-select-disabled-selection');
|
|
166
162
|
|
|
167
163
|
static multiSelectEmpty = new Urlbuilder(PATH_E2E_DATATABLE_ROW, 'multi-select-empty');
|
|
168
164
|
|
|
165
|
+
static multiSelectDisabledWithUniqueRowAccessor = new Urlbuilder(
|
|
166
|
+
PATH_E2E_DATATABLE_ROW,
|
|
167
|
+
'multi-select-disabled-selection-with-unique-row-accessor',
|
|
168
|
+
);
|
|
169
|
+
|
|
169
170
|
// Column
|
|
170
171
|
|
|
171
172
|
static columnLayout = new Urlbuilder(PATH_E2E_DATATABLE_COLUMN, 'basic-column-layout');
|
|
@@ -242,6 +243,8 @@ export default class DataTableCO extends PageObject {
|
|
|
242
243
|
|
|
243
244
|
static pui16461SkeletonAndNoResults = new Urlbuilder(PATH_E2E_DATATABLE_STATES, 'pui-16461-skeleton-and-no-results');
|
|
244
245
|
|
|
246
|
+
static emptyStateFullCustom = new Urlbuilder(PATH_E2E_DATATABLE_STATES, 'empty-state-full-custom');
|
|
247
|
+
|
|
245
248
|
// Cell
|
|
246
249
|
static editableCells = new Urlbuilder(PATH_E2E_DATATABLE_CELL, 'editable-cells');
|
|
247
250
|
|
|
@@ -297,11 +300,6 @@ export default class DataTableCO extends PageObject {
|
|
|
297
300
|
|
|
298
301
|
// eslint-disable-next-line max-len
|
|
299
302
|
|
|
300
|
-
static multiSelectDisabledWithUniqueRowAccessor = new Urlbuilder(
|
|
301
|
-
PATH_E2E_DATATABLE,
|
|
302
|
-
'multi-select-disabled-selection-with-unique-row-accessor',
|
|
303
|
-
);
|
|
304
|
-
|
|
305
303
|
static resizableWithConstrains = new Urlbuilder(PATH_E2E_DATATABLE, 'pui-8896-resizable-with-constrains');
|
|
306
304
|
|
|
307
305
|
static memoizedSearchFilterTest = new Urlbuilder(PATH_E2E_DATATABLE, 'pui-12253-memoized-filter-component');
|
|
@@ -392,11 +390,11 @@ export default class DataTableCO extends PageObject {
|
|
|
392
390
|
}
|
|
393
391
|
|
|
394
392
|
static getPopoverContainer() {
|
|
395
|
-
return $('[data-testid="
|
|
393
|
+
return $('[data-testid="ds-floating-wrapper-root"]');
|
|
396
394
|
}
|
|
397
395
|
|
|
398
396
|
static getPopoverContainers() {
|
|
399
|
-
return $$('[data-testid="
|
|
397
|
+
return $$('[data-testid="ds-floating-wrapper-root"]');
|
|
400
398
|
}
|
|
401
399
|
|
|
402
400
|
static getButtons(index) {
|
|
@@ -20,7 +20,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
20
20
|
});
|
|
21
21
|
describe('PUI-6988 - DataTable, Custom cell and row header -visual.', async () => {
|
|
22
22
|
before('loading page', async () => {
|
|
23
|
-
const errorOnGo = await DSDataTableCO.
|
|
23
|
+
const errorOnGo = await DSDataTableCO.customCellRowAndHeaderTest.go();
|
|
24
24
|
if (errorOnGo) throw errorOnGo;
|
|
25
25
|
await DSDataTableCO.waitForDataTable();
|
|
26
26
|
});
|
|
@@ -145,7 +145,7 @@ export default class FiltersCO extends PageObject {
|
|
|
145
145
|
|
|
146
146
|
static getFilterMenuContentSlot = async () => $('[data-dimsum-slot="dsDatatableFilterPopoverContent"]');
|
|
147
147
|
|
|
148
|
-
static getFilterPopoverSlot = async () => $('[data-dimsum-slot="dsDatatableFilterPopover"]');
|
|
148
|
+
static getFilterPopoverSlot = async () => $('[data-dimsum-parent-slot="dsDatatableFilterPopover"]');
|
|
149
149
|
|
|
150
150
|
static getFreeTextSearchWrapperSlot = async () => $('[data-dimsum-slot="dsDatatableFreeTextSearchWrapper"]');
|
|
151
151
|
|
|
@@ -6,17 +6,29 @@ export default class HeaderCO extends PageObject {
|
|
|
6
6
|
static getHeaderCells = async () => $$('[data-testid="data-table-header"]');
|
|
7
7
|
|
|
8
8
|
static getHeaderCellByText = async (text) => {
|
|
9
|
-
const headerCells = await this.getHeaderCells();
|
|
10
9
|
let targetHeader;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
// Poll until a *visible* matching header cell is found. Without the isDisplayed check,
|
|
11
|
+
// the loop can return headers from inactive tab panels that are hidden in the DOM
|
|
12
|
+
// (display:none), causing waitForDisplayed to time out indefinitely in Safari.
|
|
13
|
+
await browser.waitUntil(
|
|
14
|
+
async () => {
|
|
15
|
+
const headerCells = await this.getHeaderCells();
|
|
16
|
+
for (const header of headerCells) {
|
|
17
|
+
// eslint-disable-next-line no-await-in-loop
|
|
18
|
+
const cellText = await header.getText();
|
|
19
|
+
if (cellText.trim().toLowerCase().includes(text.trim().toLowerCase())) {
|
|
20
|
+
// eslint-disable-next-line no-await-in-loop
|
|
21
|
+
const isDisplayed = await header.isDisplayed();
|
|
22
|
+
if (isDisplayed) {
|
|
23
|
+
targetHeader = header;
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
},
|
|
30
|
+
{ timeout: 20000, interval: 500 },
|
|
31
|
+
);
|
|
20
32
|
return targetHeader;
|
|
21
33
|
};
|
|
22
34
|
|