@siemens/ix 0.0.0-pr-1974-20250627115746 → 0.0.0-pr-1974-20250627142646
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/package.json +2 -2
- package/dist/collection/components/application-header/test/application-header.ct.js +0 -389
- package/dist/collection/components/application-header/test/application-header.ct.js.map +0 -1
- package/dist/collection/components/avatar/test/avatar.ct.js +0 -85
- package/dist/collection/components/avatar/test/avatar.ct.js.map +0 -1
- package/dist/collection/components/blind/test/blind.ct.js +0 -16
- package/dist/collection/components/blind/test/blind.ct.js.map +0 -1
- package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js +0 -98
- package/dist/collection/components/breadcrumb/test/breadcrumb.ct.js.map +0 -1
- package/dist/collection/components/button/test/button.ct.js +0 -153
- package/dist/collection/components/button/test/button.ct.js.map +0 -1
- package/dist/collection/components/category-filter/test/category-filter.ct.js +0 -62
- package/dist/collection/components/category-filter/test/category-filter.ct.js.map +0 -1
- package/dist/collection/components/checkbox/tests/checkbox.ct.js +0 -86
- package/dist/collection/components/checkbox/tests/checkbox.ct.js.map +0 -1
- package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js +0 -48
- package/dist/collection/components/checkbox-group/test/checkbox-group.ct.js.map +0 -1
- package/dist/collection/components/chip/test/chip.ct.js +0 -76
- package/dist/collection/components/chip/test/chip.ct.js.map +0 -1
- package/dist/collection/components/custom-field/tests/custom-field.ct.js +0 -68
- package/dist/collection/components/custom-field/tests/custom-field.ct.js.map +0 -1
- package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js +0 -215
- package/dist/collection/components/date-dropdown/test/date-dropdown.ct.js.map +0 -1
- package/dist/collection/components/date-input/tests/date-input.ct.js +0 -117
- package/dist/collection/components/date-input/tests/date-input.ct.js.map +0 -1
- package/dist/collection/components/date-picker/test/date-picker.ct.js +0 -221
- package/dist/collection/components/date-picker/test/date-picker.ct.js.map +0 -1
- package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js +0 -55
- package/dist/collection/components/datetime-picker/test/datetime-picker.ct.js.map +0 -1
- package/dist/collection/components/drawer/test/drawer.ct.js +0 -67
- package/dist/collection/components/drawer/test/drawer.ct.js.map +0 -1
- package/dist/collection/components/dropdown/test/dropdown.ct.js +0 -624
- package/dist/collection/components/dropdown/test/dropdown.ct.js.map +0 -1
- package/dist/collection/components/dropdown-button/dropdown-button.ct.js +0 -51
- package/dist/collection/components/dropdown-button/dropdown-button.ct.js.map +0 -1
- package/dist/collection/components/event-list/test/event-list.ct.js +0 -88
- package/dist/collection/components/event-list/test/event-list.ct.js.map +0 -1
- package/dist/collection/components/expanding-search/test/expanding-search.ct.js +0 -56
- package/dist/collection/components/expanding-search/test/expanding-search.ct.js.map +0 -1
- package/dist/collection/components/field-label/tests/field-label.ct.js +0 -121
- package/dist/collection/components/field-label/tests/field-label.ct.js.map +0 -1
- package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js +0 -63
- package/dist/collection/components/field-wrapper/tests/field-wrapper.ct.js.map +0 -1
- package/dist/collection/components/flip-tile/test/flip-tile.ct.js +0 -89
- package/dist/collection/components/flip-tile/test/flip-tile.ct.js.map +0 -1
- package/dist/collection/components/group/test/group.ct.js +0 -115
- package/dist/collection/components/group/test/group.ct.js.map +0 -1
- package/dist/collection/components/icon-button/test/icon-button.ct.js +0 -30
- package/dist/collection/components/icon-button/test/icon-button.ct.js.map +0 -1
- package/dist/collection/components/input/tests/form-ready.ct.js +0 -73
- package/dist/collection/components/input/tests/form-ready.ct.js.map +0 -1
- package/dist/collection/components/input/tests/validation.ct.js +0 -84
- package/dist/collection/components/input/tests/validation.ct.js.map +0 -1
- package/dist/collection/components/input-group/tests/input-group.ct.js +0 -161
- package/dist/collection/components/input-group/tests/input-group.ct.js.map +0 -1
- package/dist/collection/components/menu/test/menu.ct.js +0 -256
- package/dist/collection/components/menu/test/menu.ct.js.map +0 -1
- package/dist/collection/components/menu-about/test/menu-about.ct.js +0 -65
- package/dist/collection/components/menu-about/test/menu-about.ct.js.map +0 -1
- package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js +0 -47
- package/dist/collection/components/menu-avatar-item/test/menu-avatar-item.ct.js.map +0 -1
- package/dist/collection/components/menu-category/test/menu-category.ct.js +0 -274
- package/dist/collection/components/menu-category/test/menu-category.ct.js.map +0 -1
- package/dist/collection/components/menu-item/test/menu-item.ct.js +0 -67
- package/dist/collection/components/menu-item/test/menu-item.ct.js.map +0 -1
- package/dist/collection/components/menu-settings/test/menu-settings.ct.js +0 -32
- package/dist/collection/components/menu-settings/test/menu-settings.ct.js.map +0 -1
- package/dist/collection/components/message-bar/test/message-bar.ct.js +0 -28
- package/dist/collection/components/message-bar/test/message-bar.ct.js.map +0 -1
- package/dist/collection/components/modal/test/modal.ct.js +0 -204
- package/dist/collection/components/modal/test/modal.ct.js.map +0 -1
- package/dist/collection/components/pagination/test/pagination.ct.js +0 -68
- package/dist/collection/components/pagination/test/pagination.ct.js.map +0 -1
- package/dist/collection/components/pane/test/panes.ct.js +0 -59
- package/dist/collection/components/pane/test/panes.ct.js.map +0 -1
- package/dist/collection/components/pane-layout/test/pane-layout.ct.js +0 -60
- package/dist/collection/components/pane-layout/test/pane-layout.ct.js.map +0 -1
- package/dist/collection/components/pill/test/pill.ct.js +0 -63
- package/dist/collection/components/pill/test/pill.ct.js.map +0 -1
- package/dist/collection/components/radio/test/radio.ct.js +0 -77
- package/dist/collection/components/radio/test/radio.ct.js.map +0 -1
- package/dist/collection/components/radio-group/test/radio-group.ct.js +0 -117
- package/dist/collection/components/radio-group/test/radio-group.ct.js.map +0 -1
- package/dist/collection/components/select/test/select-keyboard.ct.js +0 -380
- package/dist/collection/components/select/test/select-keyboard.ct.js.map +0 -1
- package/dist/collection/components/select/test/select.ct.js +0 -594
- package/dist/collection/components/select/test/select.ct.js.map +0 -1
- package/dist/collection/components/slider/test/slider.ct.js +0 -65
- package/dist/collection/components/slider/test/slider.ct.js.map +0 -1
- package/dist/collection/components/tabs/test/tabs.ct.js +0 -134
- package/dist/collection/components/tabs/test/tabs.ct.js.map +0 -1
- package/dist/collection/components/time-input/test/time-input.ct.js +0 -62
- package/dist/collection/components/time-input/test/time-input.ct.js.map +0 -1
- package/dist/collection/components/time-picker/test/time-picker.ct.js +0 -172
- package/dist/collection/components/time-picker/test/time-picker.ct.js.map +0 -1
- package/dist/collection/components/toggle/test/toggle.ct.js +0 -84
- package/dist/collection/components/toggle/test/toggle.ct.js.map +0 -1
- package/dist/collection/components/tooltip/test/tooltip.ct.js +0 -243
- package/dist/collection/components/tooltip/test/tooltip.ct.js.map +0 -1
- package/dist/collection/components/tree/test/tree.ct.js +0 -355
- package/dist/collection/components/tree/test/tree.ct.js.map +0 -1
- package/dist/collection/components/upload/test/upload.ct.js +0 -17
- package/dist/collection/components/upload/test/upload.ct.js.map +0 -1
- package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js +0 -74
- package/dist/collection/components/workflow-steps/test/workflow-steps.ct.js.map +0 -1
- package/dist/collection/tests/utils/test/matchMedia.mock.js +0 -22
- package/dist/types/components/application-header/test/application-header.ct.d.ts +0 -1
- package/dist/types/components/avatar/test/avatar.ct.d.ts +0 -1
- package/dist/types/components/blind/test/blind.ct.d.ts +0 -1
- package/dist/types/components/breadcrumb/test/breadcrumb.ct.d.ts +0 -1
- package/dist/types/components/button/test/button.ct.d.ts +0 -7
- package/dist/types/components/category-filter/test/category-filter.ct.d.ts +0 -1
- package/dist/types/components/checkbox/tests/checkbox.ct.d.ts +0 -1
- package/dist/types/components/checkbox-group/test/checkbox-group.ct.d.ts +0 -1
- package/dist/types/components/chip/test/chip.ct.d.ts +0 -1
- package/dist/types/components/custom-field/tests/custom-field.ct.d.ts +0 -1
- package/dist/types/components/date-dropdown/test/date-dropdown.ct.d.ts +0 -1
- package/dist/types/components/date-input/tests/date-input.ct.d.ts +0 -1
- package/dist/types/components/date-picker/test/date-picker.ct.d.ts +0 -1
- package/dist/types/components/datetime-picker/test/datetime-picker.ct.d.ts +0 -1
- package/dist/types/components/drawer/test/drawer.ct.d.ts +0 -1
- package/dist/types/components/dropdown/test/dropdown.ct.d.ts +0 -1
- package/dist/types/components/dropdown-button/dropdown-button.ct.d.ts +0 -1
- package/dist/types/components/event-list/test/event-list.ct.d.ts +0 -1
- package/dist/types/components/expanding-search/test/expanding-search.ct.d.ts +0 -1
- package/dist/types/components/field-label/tests/field-label.ct.d.ts +0 -1
- package/dist/types/components/field-wrapper/tests/field-wrapper.ct.d.ts +0 -1
- package/dist/types/components/flip-tile/test/flip-tile.ct.d.ts +0 -1
- package/dist/types/components/group/test/group.ct.d.ts +0 -1
- package/dist/types/components/icon-button/test/icon-button.ct.d.ts +0 -1
- package/dist/types/components/input/tests/form-ready.ct.d.ts +0 -1
- package/dist/types/components/input/tests/validation.ct.d.ts +0 -1
- package/dist/types/components/input-group/tests/input-group.ct.d.ts +0 -1
- package/dist/types/components/menu/test/menu.ct.d.ts +0 -1
- package/dist/types/components/menu-about/test/menu-about.ct.d.ts +0 -1
- package/dist/types/components/menu-avatar-item/test/menu-avatar-item.ct.d.ts +0 -1
- package/dist/types/components/menu-category/test/menu-category.ct.d.ts +0 -1
- package/dist/types/components/menu-item/test/menu-item.ct.d.ts +0 -1
- package/dist/types/components/menu-settings/test/menu-settings.ct.d.ts +0 -1
- package/dist/types/components/message-bar/test/message-bar.ct.d.ts +0 -1
- package/dist/types/components/modal/test/modal.ct.d.ts +0 -8
- package/dist/types/components/pagination/test/pagination.ct.d.ts +0 -1
- package/dist/types/components/pane/test/panes.ct.d.ts +0 -1
- package/dist/types/components/pane-layout/test/pane-layout.ct.d.ts +0 -1
- package/dist/types/components/pill/test/pill.ct.d.ts +0 -1
- package/dist/types/components/radio/test/radio.ct.d.ts +0 -1
- package/dist/types/components/radio-group/test/radio-group.ct.d.ts +0 -1
- package/dist/types/components/select/test/select-keyboard.ct.d.ts +0 -1
- package/dist/types/components/select/test/select.ct.d.ts +0 -1
- package/dist/types/components/slider/test/slider.ct.d.ts +0 -1
- package/dist/types/components/tabs/test/tabs.ct.d.ts +0 -1
- package/dist/types/components/time-input/test/time-input.ct.d.ts +0 -1
- package/dist/types/components/time-picker/test/time-picker.ct.d.ts +0 -1
- package/dist/types/components/toggle/test/toggle.ct.d.ts +0 -1
- package/dist/types/components/tooltip/test/tooltip.ct.d.ts +0 -1
- package/dist/types/components/tree/test/tree.ct.d.ts +0 -1
- package/dist/types/components/upload/test/upload.ct.d.ts +0 -1
- package/dist/types/components/workflow-steps/test/workflow-steps.ct.d.ts +0 -1
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: MIT
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
import { expect } from "@playwright/test";
|
|
10
|
-
import { regressionTest } from "../../../tests/utils/test/index";
|
|
11
|
-
const defaultModel = {
|
|
12
|
-
root: {
|
|
13
|
-
id: 'root',
|
|
14
|
-
data: {
|
|
15
|
-
name: '',
|
|
16
|
-
},
|
|
17
|
-
hasChildren: true,
|
|
18
|
-
children: ['sample'],
|
|
19
|
-
},
|
|
20
|
-
sample: {
|
|
21
|
-
id: 'sample',
|
|
22
|
-
data: {
|
|
23
|
-
name: 'Sample',
|
|
24
|
-
},
|
|
25
|
-
hasChildren: true,
|
|
26
|
-
children: ['sample-child-1', 'sample-child-2', 'sample-child-3'],
|
|
27
|
-
},
|
|
28
|
-
'sample-child-1': {
|
|
29
|
-
id: 'sample-child-1',
|
|
30
|
-
data: {
|
|
31
|
-
name: 'Sample Child 1',
|
|
32
|
-
},
|
|
33
|
-
hasChildren: false,
|
|
34
|
-
children: [],
|
|
35
|
-
},
|
|
36
|
-
'sample-child-2': {
|
|
37
|
-
id: 'sample-child-2',
|
|
38
|
-
data: {
|
|
39
|
-
name: 'Sample Child 2',
|
|
40
|
-
},
|
|
41
|
-
hasChildren: true,
|
|
42
|
-
children: ['sample-child-4'],
|
|
43
|
-
},
|
|
44
|
-
'sample-child-3': {
|
|
45
|
-
id: 'sample-child-3',
|
|
46
|
-
data: {
|
|
47
|
-
name: 'Sample Child 3',
|
|
48
|
-
},
|
|
49
|
-
hasChildren: false,
|
|
50
|
-
children: [],
|
|
51
|
-
},
|
|
52
|
-
'sample-child-4': {
|
|
53
|
-
id: 'sample-child-4',
|
|
54
|
-
data: {
|
|
55
|
-
name: 'Sample Child 4',
|
|
56
|
-
},
|
|
57
|
-
hasChildren: false,
|
|
58
|
-
children: [],
|
|
59
|
-
},
|
|
60
|
-
};
|
|
61
|
-
const initializeTree = async (mount, page) => {
|
|
62
|
-
await mount(`
|
|
63
|
-
<div style=" height: 20rem; width: 100%;">
|
|
64
|
-
<ix-tree root="root"></ix-tree>
|
|
65
|
-
</div>
|
|
66
|
-
`);
|
|
67
|
-
const tree = page.locator('ix-tree');
|
|
68
|
-
await tree.evaluate((element, [model]) => {
|
|
69
|
-
element.model = model;
|
|
70
|
-
}, [defaultModel]);
|
|
71
|
-
const item = tree.locator('ix-tree-item').nth(0);
|
|
72
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
73
|
-
await expect(item).toBeVisible();
|
|
74
|
-
return tree;
|
|
75
|
-
};
|
|
76
|
-
const updateModel = async (tree, updatedModel) => {
|
|
77
|
-
await tree.evaluate((element, [model]) => {
|
|
78
|
-
element.model = model;
|
|
79
|
-
}, [updatedModel]);
|
|
80
|
-
};
|
|
81
|
-
regressionTest('renders', async ({ mount, page }) => {
|
|
82
|
-
const tree = await initializeTree(mount, page);
|
|
83
|
-
const item = tree.locator('ix-tree-item').nth(0);
|
|
84
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
85
|
-
await expect(item).toBeVisible();
|
|
86
|
-
});
|
|
87
|
-
regressionTest('update tree', async ({ mount, page }) => {
|
|
88
|
-
const tree = await initializeTree(mount, page);
|
|
89
|
-
const item = tree.locator('ix-tree-item').nth(0);
|
|
90
|
-
await item.locator('.icon-toggle-container').click();
|
|
91
|
-
const item2 = tree.locator('ix-tree-item').nth(2);
|
|
92
|
-
await item2.locator('.icon-toggle-container').click();
|
|
93
|
-
const item3 = tree.locator('ix-tree-item').nth(4);
|
|
94
|
-
await expect(item3).toBeVisible();
|
|
95
|
-
await expect(item3).toHaveText('Sample Child 3');
|
|
96
|
-
await expect(item3).toHaveCSS('padding-left', '16px');
|
|
97
|
-
await updateModel(tree, {
|
|
98
|
-
root: {
|
|
99
|
-
id: 'root',
|
|
100
|
-
data: {
|
|
101
|
-
name: '',
|
|
102
|
-
},
|
|
103
|
-
hasChildren: true,
|
|
104
|
-
children: ['sample'],
|
|
105
|
-
},
|
|
106
|
-
sample: {
|
|
107
|
-
id: 'sample',
|
|
108
|
-
data: {
|
|
109
|
-
name: 'Sample',
|
|
110
|
-
},
|
|
111
|
-
hasChildren: true,
|
|
112
|
-
children: ['sample-child-1', 'sample-child-2'],
|
|
113
|
-
},
|
|
114
|
-
'sample-child-1': {
|
|
115
|
-
id: 'sample-child-1',
|
|
116
|
-
data: {
|
|
117
|
-
name: 'Sample Child 1',
|
|
118
|
-
},
|
|
119
|
-
hasChildren: false,
|
|
120
|
-
children: [],
|
|
121
|
-
},
|
|
122
|
-
'sample-child-2': {
|
|
123
|
-
id: 'sample-child-2',
|
|
124
|
-
data: {
|
|
125
|
-
name: 'Sample Child 2',
|
|
126
|
-
},
|
|
127
|
-
hasChildren: true,
|
|
128
|
-
children: ['sample-child-3', 'sample-child-4'],
|
|
129
|
-
},
|
|
130
|
-
'sample-child-3': {
|
|
131
|
-
id: 'sample-child-3',
|
|
132
|
-
data: {
|
|
133
|
-
name: 'Sample Child 3',
|
|
134
|
-
},
|
|
135
|
-
hasChildren: false,
|
|
136
|
-
children: [],
|
|
137
|
-
},
|
|
138
|
-
'sample-child-4': {
|
|
139
|
-
id: 'sample-child-4',
|
|
140
|
-
data: {
|
|
141
|
-
name: 'Sample Child 4',
|
|
142
|
-
},
|
|
143
|
-
hasChildren: false,
|
|
144
|
-
children: [],
|
|
145
|
-
},
|
|
146
|
-
});
|
|
147
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
148
|
-
await expect(item).toBeVisible();
|
|
149
|
-
await expect(item2).toBeVisible();
|
|
150
|
-
const newChildItem = tree.locator('ix-tree-item').nth(3);
|
|
151
|
-
await expect(newChildItem).toBeVisible();
|
|
152
|
-
await expect(newChildItem).toHaveCSS('padding-left', '32px');
|
|
153
|
-
});
|
|
154
|
-
regressionTest('dropdown trigger', async ({ mount, page }) => {
|
|
155
|
-
const tree = await initializeTree(mount, page);
|
|
156
|
-
await tree.evaluate((t) => (t.renderItem = (_index, item, _dataList, context, update) => {
|
|
157
|
-
const el = document.createElement('ix-tree-item');
|
|
158
|
-
const treeItem = item;
|
|
159
|
-
el.hasChildren = treeItem.hasChildren;
|
|
160
|
-
el.context = context[treeItem.id];
|
|
161
|
-
el.id = `trigger-${treeItem.id}`;
|
|
162
|
-
const div = document.createElement('div');
|
|
163
|
-
div.style.display = 'flex';
|
|
164
|
-
const name = document.createElement('span');
|
|
165
|
-
const dd = document.createElement('ix-dropdown');
|
|
166
|
-
const ddItem = document.createElement('ix-dropdown-item');
|
|
167
|
-
ddItem.innerHTML = 'Action 1';
|
|
168
|
-
dd.trigger = `trigger-${treeItem.id}`;
|
|
169
|
-
div.appendChild(name);
|
|
170
|
-
div.appendChild(dd);
|
|
171
|
-
dd.appendChild(ddItem);
|
|
172
|
-
name.innerText = treeItem.id;
|
|
173
|
-
el.appendChild(div);
|
|
174
|
-
update((updateTreeItem) => {
|
|
175
|
-
name.innerText = updateTreeItem.data.name;
|
|
176
|
-
});
|
|
177
|
-
return el;
|
|
178
|
-
}));
|
|
179
|
-
const root = tree.locator('ix-tree-item').first();
|
|
180
|
-
await root.locator('.icon-toggle-container').click();
|
|
181
|
-
const item1 = tree.locator('ix-tree-item').nth(1);
|
|
182
|
-
const dropdown1 = item1.locator('ix-dropdown');
|
|
183
|
-
await item1.click();
|
|
184
|
-
await expect(dropdown1).toBeVisible();
|
|
185
|
-
const item2 = tree.locator('ix-tree-item').nth(2);
|
|
186
|
-
const dropdown2 = item2.locator('ix-dropdown');
|
|
187
|
-
await item2.click();
|
|
188
|
-
await expect(dropdown2).toBeVisible();
|
|
189
|
-
});
|
|
190
|
-
regressionTest('Detach tree, re-attach, and verify virtual scrolling functionality', async ({ mount, page }) => {
|
|
191
|
-
const tree = await initializeTree(mount, page);
|
|
192
|
-
let treeElement;
|
|
193
|
-
await tree.evaluate((element) => {
|
|
194
|
-
treeElement = element;
|
|
195
|
-
const initializeTreeContext = (model) => {
|
|
196
|
-
const context = {};
|
|
197
|
-
Object.keys(model).forEach((id) => {
|
|
198
|
-
context[id] = {
|
|
199
|
-
isExpanded: model[id].hasChildren,
|
|
200
|
-
isSelected: false,
|
|
201
|
-
};
|
|
202
|
-
});
|
|
203
|
-
return context;
|
|
204
|
-
};
|
|
205
|
-
element.context = initializeTreeContext(element.model);
|
|
206
|
-
new Array(10).fill(0).forEach((_, index) => {
|
|
207
|
-
const id = `Item-${index}`;
|
|
208
|
-
treeElement.model[id] = {
|
|
209
|
-
id,
|
|
210
|
-
data: {
|
|
211
|
-
name: id,
|
|
212
|
-
},
|
|
213
|
-
hasChildren: false,
|
|
214
|
-
children: [],
|
|
215
|
-
};
|
|
216
|
-
treeElement === null || treeElement === void 0 ? void 0 : treeElement.model.root.children.push(id);
|
|
217
|
-
});
|
|
218
|
-
const parent = element.parentElement;
|
|
219
|
-
if (parent) {
|
|
220
|
-
parent.removeChild(element);
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
await expect(tree).not.toBeVisible();
|
|
224
|
-
await page.evaluate(() => {
|
|
225
|
-
var _a;
|
|
226
|
-
const newDiv = document.createElement('div');
|
|
227
|
-
newDiv.id = 'new-container';
|
|
228
|
-
newDiv.style.height = 'inherit';
|
|
229
|
-
(_a = document.querySelector('#mount > div')) === null || _a === void 0 ? void 0 : _a.appendChild(newDiv);
|
|
230
|
-
if (treeElement !== undefined) {
|
|
231
|
-
newDiv.appendChild(treeElement);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
await page.waitForSelector('ix-tree');
|
|
235
|
-
const newContainer = page.locator('#new-container');
|
|
236
|
-
const reattachedTree = newContainer.locator('ix-tree');
|
|
237
|
-
await expect(newContainer).toBeVisible();
|
|
238
|
-
await expect(reattachedTree).toBeVisible();
|
|
239
|
-
await reattachedTree.evaluate((element) => {
|
|
240
|
-
element.scrollTo({ top: element.scrollHeight, behavior: 'instant' });
|
|
241
|
-
});
|
|
242
|
-
const lastItem = reattachedTree.locator('ix-tree-item').last();
|
|
243
|
-
await expect(lastItem).toBeVisible();
|
|
244
|
-
await reattachedTree.evaluate((element) => {
|
|
245
|
-
element.scrollTo({ top: 0, behavior: 'instant' });
|
|
246
|
-
});
|
|
247
|
-
const firstItem = reattachedTree.locator('ix-tree-item').first();
|
|
248
|
-
await expect(firstItem).toBeVisible();
|
|
249
|
-
});
|
|
250
|
-
regressionTest('should expand and collapse but not select item when toggle icon is clicked twice', async ({ mount, page }) => {
|
|
251
|
-
const tree = await initializeTree(mount, page);
|
|
252
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
253
|
-
const sampleItem = tree.locator('ix-tree-item', {
|
|
254
|
-
hasText: 'Sample',
|
|
255
|
-
hasNotText: 'Child',
|
|
256
|
-
});
|
|
257
|
-
const iconElement = sampleItem.locator('ix-icon');
|
|
258
|
-
await expect(iconElement).not.toHaveClass(/icon-toggle-down/);
|
|
259
|
-
await iconElement.click();
|
|
260
|
-
const items = tree.locator('ix-tree-item', {
|
|
261
|
-
hasText: 'Sample Child ',
|
|
262
|
-
});
|
|
263
|
-
await expect(items.nth(0)).toBeVisible();
|
|
264
|
-
await expect(items.nth(1)).toBeVisible();
|
|
265
|
-
await expect(items.nth(2)).toBeVisible();
|
|
266
|
-
await expect(sampleItem).not.toHaveClass(/selected/);
|
|
267
|
-
await expect(iconElement).toHaveClass(/icon-toggle-down/);
|
|
268
|
-
await iconElement.click();
|
|
269
|
-
await expect(items.nth(0)).not.toBeVisible();
|
|
270
|
-
await expect(items.nth(1)).not.toBeVisible();
|
|
271
|
-
await expect(items.nth(2)).not.toBeVisible();
|
|
272
|
-
await expect(sampleItem).not.toHaveClass(/selected/);
|
|
273
|
-
await expect(iconElement).not.toHaveClass(/icon-toggle-down/);
|
|
274
|
-
});
|
|
275
|
-
regressionTest('should select but not toggle item when it is clicked', async ({ mount, page }) => {
|
|
276
|
-
const tree = await initializeTree(mount, page);
|
|
277
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
278
|
-
const sampleItem = tree.locator('ix-tree-item', {
|
|
279
|
-
hasText: 'Sample',
|
|
280
|
-
hasNotText: 'Child',
|
|
281
|
-
});
|
|
282
|
-
await sampleItem.click();
|
|
283
|
-
await expect(sampleItem).toHaveClass(/selected/);
|
|
284
|
-
const items = tree.locator('ix-tree-item', {
|
|
285
|
-
hasText: 'Sample Child ',
|
|
286
|
-
});
|
|
287
|
-
await expect(items.nth(0)).not.toBeVisible();
|
|
288
|
-
await expect(items.nth(1)).not.toBeVisible();
|
|
289
|
-
await expect(items.nth(2)).not.toBeVisible();
|
|
290
|
-
});
|
|
291
|
-
regressionTest('should select item when icon-toggle-container is clicked without the toggle icon to be visible', async ({ mount, page }) => {
|
|
292
|
-
const tree = await initializeTree(mount, page);
|
|
293
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
294
|
-
await tree
|
|
295
|
-
.locator('ix-tree-item', {
|
|
296
|
-
hasText: 'Sample',
|
|
297
|
-
hasNotText: 'Child',
|
|
298
|
-
})
|
|
299
|
-
.locator('ix-icon')
|
|
300
|
-
.click();
|
|
301
|
-
const element1 = tree.locator('ix-tree-item', {
|
|
302
|
-
hasText: 'Sample Child 1',
|
|
303
|
-
});
|
|
304
|
-
await expect(element1).not.toHaveClass(/selected/);
|
|
305
|
-
await element1.locator('.icon-toggle-container').click();
|
|
306
|
-
await expect(element1).toHaveClass(/selected/);
|
|
307
|
-
});
|
|
308
|
-
regressionTest('item should stay selected when toggle icon is clicked', async ({ mount, page }) => {
|
|
309
|
-
const tree = await initializeTree(mount, page);
|
|
310
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
311
|
-
await tree
|
|
312
|
-
.locator('ix-tree-item', {
|
|
313
|
-
hasText: 'Sample',
|
|
314
|
-
hasNotText: 'Child',
|
|
315
|
-
})
|
|
316
|
-
.locator('ix-icon')
|
|
317
|
-
.click();
|
|
318
|
-
const element2 = tree.locator('ix-tree-item', {
|
|
319
|
-
hasText: 'Sample Child 2',
|
|
320
|
-
});
|
|
321
|
-
await element2.click();
|
|
322
|
-
await expect(element2).toHaveClass(/selected/);
|
|
323
|
-
await element2.locator('ix-icon').click();
|
|
324
|
-
const element4 = tree.locator('ix-tree-item', {
|
|
325
|
-
hasText: 'Sample Child 4',
|
|
326
|
-
});
|
|
327
|
-
await expect(element4).toBeVisible();
|
|
328
|
-
await element2.locator('ix-icon').click();
|
|
329
|
-
await expect(element4).not.toBeVisible();
|
|
330
|
-
await expect(element2).toHaveClass(/selected/);
|
|
331
|
-
});
|
|
332
|
-
regressionTest('should select and toggle item when it is clicked and toggle on item is enabled', async ({ mount, page }) => {
|
|
333
|
-
const tree = await initializeTree(mount, page);
|
|
334
|
-
await tree.evaluate((treeElement) => {
|
|
335
|
-
treeElement.setAttribute('toggle-on-item-click', 'true');
|
|
336
|
-
});
|
|
337
|
-
await expect(tree).toHaveClass(/hydrated/);
|
|
338
|
-
const sampleItem = tree.locator('ix-tree-item', {
|
|
339
|
-
hasText: 'Sample',
|
|
340
|
-
hasNotText: 'Child',
|
|
341
|
-
});
|
|
342
|
-
await sampleItem.click();
|
|
343
|
-
await expect(sampleItem).toHaveClass(/selected/);
|
|
344
|
-
const items = tree.locator('ix-tree-item', {
|
|
345
|
-
hasText: 'Sample Child ',
|
|
346
|
-
});
|
|
347
|
-
await expect(items.nth(0)).toBeVisible();
|
|
348
|
-
await expect(items.nth(1)).toBeVisible();
|
|
349
|
-
await expect(items.nth(2)).toBeVisible();
|
|
350
|
-
sampleItem.click();
|
|
351
|
-
await expect(items.nth(0)).not.toBeVisible();
|
|
352
|
-
await expect(items.nth(1)).not.toBeVisible();
|
|
353
|
-
await expect(items.nth(2)).not.toBeVisible();
|
|
354
|
-
});
|
|
355
|
-
//# sourceMappingURL=tree.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tree.ct.js","sourceRoot":"","sources":["../../../../src/components/tree/test/tree.ct.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect, Locator, Page } from '@playwright/test';\nimport { Mount, regressionTest } from '@utils/test';\nimport { TreeContext, TreeItem, TreeModel } from '../tree-model';\n\nconst defaultModel = {\n root: {\n id: 'root',\n data: {\n name: '',\n },\n hasChildren: true,\n children: ['sample'],\n },\n sample: {\n id: 'sample',\n data: {\n name: 'Sample',\n },\n hasChildren: true,\n children: ['sample-child-1', 'sample-child-2', 'sample-child-3'],\n },\n 'sample-child-1': {\n id: 'sample-child-1',\n data: {\n name: 'Sample Child 1',\n },\n hasChildren: false,\n children: [],\n },\n 'sample-child-2': {\n id: 'sample-child-2',\n data: {\n name: 'Sample Child 2',\n },\n hasChildren: true,\n children: ['sample-child-4'],\n },\n 'sample-child-3': {\n id: 'sample-child-3',\n data: {\n name: 'Sample Child 3',\n },\n hasChildren: false,\n children: [],\n },\n 'sample-child-4': {\n id: 'sample-child-4',\n data: {\n name: 'Sample Child 4',\n },\n hasChildren: false,\n children: [],\n },\n};\n\nconst initializeTree = async (mount: Mount, page: Page) => {\n await mount(`\n <div style=\" height: 20rem; width: 100%;\">\n <ix-tree root=\"root\"></ix-tree>\n </div>\n `);\n const tree = page.locator('ix-tree');\n\n await tree.evaluate(\n (element: HTMLIxTreeElement, [model]) => {\n element.model = model;\n },\n [defaultModel]\n );\n\n const item = tree.locator('ix-tree-item').nth(0);\n await expect(tree).toHaveClass(/hydrated/);\n await expect(item).toBeVisible();\n\n return tree;\n};\n\nconst updateModel = async (tree: Locator, updatedModel: any) => {\n await tree.evaluate(\n (element: HTMLIxTreeElement, [model]) => {\n element.model = model;\n },\n [updatedModel]\n );\n};\n\nregressionTest('renders', async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n const item = tree.locator('ix-tree-item').nth(0);\n await expect(tree).toHaveClass(/hydrated/);\n await expect(item).toBeVisible();\n});\n\nregressionTest('update tree', async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n\n const item = tree.locator('ix-tree-item').nth(0);\n await item.locator('.icon-toggle-container').click();\n\n const item2 = tree.locator('ix-tree-item').nth(2);\n await item2.locator('.icon-toggle-container').click();\n\n const item3 = tree.locator('ix-tree-item').nth(4);\n await expect(item3).toBeVisible();\n await expect(item3).toHaveText('Sample Child 3');\n await expect(item3).toHaveCSS('padding-left', '16px');\n\n await updateModel(tree, {\n root: {\n id: 'root',\n data: {\n name: '',\n },\n hasChildren: true,\n children: ['sample'],\n },\n sample: {\n id: 'sample',\n data: {\n name: 'Sample',\n },\n hasChildren: true,\n children: ['sample-child-1', 'sample-child-2'],\n },\n 'sample-child-1': {\n id: 'sample-child-1',\n data: {\n name: 'Sample Child 1',\n },\n hasChildren: false,\n children: [],\n },\n 'sample-child-2': {\n id: 'sample-child-2',\n data: {\n name: 'Sample Child 2',\n },\n hasChildren: true,\n children: ['sample-child-3', 'sample-child-4'],\n },\n 'sample-child-3': {\n id: 'sample-child-3',\n data: {\n name: 'Sample Child 3',\n },\n hasChildren: false,\n children: [],\n },\n 'sample-child-4': {\n id: 'sample-child-4',\n data: {\n name: 'Sample Child 4',\n },\n hasChildren: false,\n children: [],\n },\n });\n\n await expect(tree).toHaveClass(/hydrated/);\n await expect(item).toBeVisible();\n await expect(item2).toBeVisible();\n\n const newChildItem = tree.locator('ix-tree-item').nth(3);\n await expect(newChildItem).toBeVisible();\n await expect(newChildItem).toHaveCSS('padding-left', '32px');\n});\n\nregressionTest('dropdown trigger', async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n\n await tree.evaluate(\n (t) =>\n ((t as HTMLIxTreeElement).renderItem = (\n _index,\n item,\n _dataList,\n context,\n update\n ) => {\n const el = document.createElement('ix-tree-item');\n const treeItem = item as TreeItem<unknown>;\n el.hasChildren = treeItem.hasChildren;\n el.context = context[treeItem.id];\n el.id = `trigger-${treeItem.id}`;\n\n const div = document.createElement('div');\n div.style.display = 'flex';\n\n const name = document.createElement('span');\n const dd = document.createElement('ix-dropdown');\n const ddItem = document.createElement('ix-dropdown-item');\n ddItem.innerHTML = 'Action 1';\n dd.trigger = `trigger-${treeItem.id}`;\n\n div.appendChild(name);\n div.appendChild(dd);\n dd.appendChild(ddItem);\n\n name.innerText = treeItem.id;\n\n el.appendChild(div);\n\n update((updateTreeItem) => {\n name.innerText = updateTreeItem.data.name;\n });\n\n return el;\n })\n );\n\n const root = tree.locator('ix-tree-item').first();\n await root.locator('.icon-toggle-container').click();\n\n const item1 = tree.locator('ix-tree-item').nth(1);\n const dropdown1 = item1.locator('ix-dropdown');\n await item1.click();\n await expect(dropdown1).toBeVisible();\n\n const item2 = tree.locator('ix-tree-item').nth(2);\n const dropdown2 = item2.locator('ix-dropdown');\n await item2.click();\n await expect(dropdown2).toBeVisible();\n});\n\nregressionTest(\n 'Detach tree, re-attach, and verify virtual scrolling functionality',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n\n let treeElement: HTMLIxTreeElement | undefined;\n\n await tree.evaluate((element: HTMLIxTreeElement) => {\n treeElement = element;\n const initializeTreeContext = (\n model: TreeModel<unknown>\n ): TreeContext => {\n const context: TreeContext = {};\n\n Object.keys(model).forEach((id) => {\n context[id] = {\n isExpanded: model[id].hasChildren,\n isSelected: false,\n };\n });\n\n return context;\n };\n\n element.context = initializeTreeContext(element.model);\n\n new Array(10).fill(0).forEach((_, index) => {\n const id = `Item-${index}`;\n treeElement!.model[id] = {\n id,\n data: {\n name: id,\n },\n hasChildren: false,\n children: [],\n };\n\n treeElement?.model.root.children.push(id);\n });\n\n const parent = element.parentElement;\n if (parent) {\n parent.removeChild(element);\n }\n });\n\n await expect(tree).not.toBeVisible();\n\n await page.evaluate(() => {\n const newDiv = document.createElement('div');\n newDiv.id = 'new-container';\n newDiv.style.height = 'inherit';\n\n document.querySelector('#mount > div')?.appendChild(newDiv);\n\n if (treeElement !== undefined) {\n newDiv.appendChild(treeElement);\n }\n });\n\n await page.waitForSelector('ix-tree');\n\n const newContainer = page.locator('#new-container');\n const reattachedTree = newContainer.locator('ix-tree');\n\n await expect(newContainer).toBeVisible();\n await expect(reattachedTree).toBeVisible();\n\n await reattachedTree.evaluate((element: HTMLIxTreeElement) => {\n element.scrollTo({ top: element.scrollHeight, behavior: 'instant' });\n });\n\n const lastItem = reattachedTree.locator('ix-tree-item').last();\n await expect(lastItem).toBeVisible();\n\n await reattachedTree.evaluate((element: HTMLIxTreeElement) => {\n element.scrollTo({ top: 0, behavior: 'instant' });\n });\n\n const firstItem = reattachedTree.locator('ix-tree-item').first();\n await expect(firstItem).toBeVisible();\n }\n);\n\nregressionTest(\n 'should expand and collapse but not select item when toggle icon is clicked twice',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n await expect(tree).toHaveClass(/hydrated/);\n\n const sampleItem = tree.locator('ix-tree-item', {\n hasText: 'Sample',\n hasNotText: 'Child',\n });\n\n const iconElement = sampleItem.locator('ix-icon');\n await expect(iconElement).not.toHaveClass(/icon-toggle-down/);\n await iconElement.click();\n\n const items = tree.locator('ix-tree-item', {\n hasText: 'Sample Child ',\n });\n\n await expect(items.nth(0)).toBeVisible();\n await expect(items.nth(1)).toBeVisible();\n await expect(items.nth(2)).toBeVisible();\n\n await expect(sampleItem).not.toHaveClass(/selected/);\n await expect(iconElement).toHaveClass(/icon-toggle-down/);\n\n await iconElement.click();\n\n await expect(items.nth(0)).not.toBeVisible();\n await expect(items.nth(1)).not.toBeVisible();\n await expect(items.nth(2)).not.toBeVisible();\n\n await expect(sampleItem).not.toHaveClass(/selected/);\n await expect(iconElement).not.toHaveClass(/icon-toggle-down/);\n }\n);\n\nregressionTest(\n 'should select but not toggle item when it is clicked',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n await expect(tree).toHaveClass(/hydrated/);\n\n const sampleItem = tree.locator('ix-tree-item', {\n hasText: 'Sample',\n hasNotText: 'Child',\n });\n\n await sampleItem.click();\n await expect(sampleItem).toHaveClass(/selected/);\n\n const items = tree.locator('ix-tree-item', {\n hasText: 'Sample Child ',\n });\n\n await expect(items.nth(0)).not.toBeVisible();\n await expect(items.nth(1)).not.toBeVisible();\n await expect(items.nth(2)).not.toBeVisible();\n }\n);\n\nregressionTest(\n 'should select item when icon-toggle-container is clicked without the toggle icon to be visible',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n await expect(tree).toHaveClass(/hydrated/);\n\n await tree\n .locator('ix-tree-item', {\n hasText: 'Sample',\n hasNotText: 'Child',\n })\n .locator('ix-icon')\n .click();\n\n const element1 = tree.locator('ix-tree-item', {\n hasText: 'Sample Child 1',\n });\n await expect(element1).not.toHaveClass(/selected/);\n await element1.locator('.icon-toggle-container').click();\n await expect(element1).toHaveClass(/selected/);\n }\n);\n\nregressionTest(\n 'item should stay selected when toggle icon is clicked',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n await expect(tree).toHaveClass(/hydrated/);\n\n await tree\n .locator('ix-tree-item', {\n hasText: 'Sample',\n hasNotText: 'Child',\n })\n .locator('ix-icon')\n .click();\n\n const element2 = tree.locator('ix-tree-item', {\n hasText: 'Sample Child 2',\n });\n\n await element2.click();\n await expect(element2).toHaveClass(/selected/);\n await element2.locator('ix-icon').click();\n\n const element4 = tree.locator('ix-tree-item', {\n hasText: 'Sample Child 4',\n });\n await expect(element4).toBeVisible();\n\n await element2.locator('ix-icon').click();\n\n await expect(element4).not.toBeVisible();\n await expect(element2).toHaveClass(/selected/);\n }\n);\n\nregressionTest(\n 'should select and toggle item when it is clicked and toggle on item is enabled',\n async ({ mount, page }) => {\n const tree = await initializeTree(mount, page);\n await tree.evaluate((treeElement: HTMLIxTreeElement) => {\n treeElement.setAttribute('toggle-on-item-click', 'true');\n });\n await expect(tree).toHaveClass(/hydrated/);\n\n const sampleItem = tree.locator('ix-tree-item', {\n hasText: 'Sample',\n hasNotText: 'Child',\n });\n\n await sampleItem.click();\n await expect(sampleItem).toHaveClass(/selected/);\n\n const items = tree.locator('ix-tree-item', {\n hasText: 'Sample Child ',\n });\n await expect(items.nth(0)).toBeVisible();\n await expect(items.nth(1)).toBeVisible();\n await expect(items.nth(2)).toBeVisible();\n\n sampleItem.click();\n\n await expect(items.nth(0)).not.toBeVisible();\n await expect(items.nth(1)).not.toBeVisible();\n await expect(items.nth(2)).not.toBeVisible();\n }\n);\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: MIT
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
import { expect } from "@playwright/test";
|
|
10
|
-
import { regressionTest } from "../../../tests/utils/test/index";
|
|
11
|
-
regressionTest('renders', async ({ mount, page }) => {
|
|
12
|
-
await mount(`<ix-upload></ix-upload>`);
|
|
13
|
-
const upload = page.locator('ix-upload');
|
|
14
|
-
await expect(upload).toHaveClass(/hydrated/);
|
|
15
|
-
await expect(upload).toBeVisible();
|
|
16
|
-
});
|
|
17
|
-
//# sourceMappingURL=upload.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"upload.ct.js","sourceRoot":"","sources":["../../../../src/components/upload/test/upload.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`<ix-upload></ix-upload>`);\n const upload = page.locator('ix-upload');\n\n await expect(upload).toHaveClass(/hydrated/);\n await expect(upload).toBeVisible();\n});\n"]}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: MIT
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
/*
|
|
10
|
-
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
11
|
-
*
|
|
12
|
-
* SPDX-License-Identifier: MIT
|
|
13
|
-
*
|
|
14
|
-
* This source code is licensed under the MIT license found in the
|
|
15
|
-
* LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/
|
|
17
|
-
import { expect } from "@playwright/test";
|
|
18
|
-
import { regressionTest } from "../../../tests/utils/test/index";
|
|
19
|
-
regressionTest('renders', async ({ mount, page }) => {
|
|
20
|
-
await mount(`
|
|
21
|
-
<ix-workflow-steps>
|
|
22
|
-
<ix-workflow-step>Test 1</ix-workflow-step>
|
|
23
|
-
<ix-workflow-step>Test 2</ix-workflow-step>
|
|
24
|
-
<ix-workflow-step>Test 3</ix-workflow-step>
|
|
25
|
-
</ix-workflow-steps>
|
|
26
|
-
`);
|
|
27
|
-
const workflowSteps = page.locator('ix-workflow-steps');
|
|
28
|
-
workflowSteps.evaluate((step) => (step.selectedIndex = 1));
|
|
29
|
-
const step = workflowSteps
|
|
30
|
-
.locator('ix-workflow-step')
|
|
31
|
-
.nth(1)
|
|
32
|
-
.locator('.step .selected');
|
|
33
|
-
await expect(workflowSteps).toHaveClass(/hydrated/);
|
|
34
|
-
await expect(step).toBeVisible();
|
|
35
|
-
});
|
|
36
|
-
regressionTest('should be clickable', async ({ mount, page }) => {
|
|
37
|
-
await mount(`
|
|
38
|
-
<ix-workflow-steps clickable>
|
|
39
|
-
<ix-workflow-step>Test 1</ix-workflow-step>
|
|
40
|
-
<ix-workflow-step>Test 2</ix-workflow-step>
|
|
41
|
-
<ix-workflow-step>Test 3</ix-workflow-step>
|
|
42
|
-
</ix-workflow-steps>
|
|
43
|
-
`);
|
|
44
|
-
const workflowSteps = page.locator('ix-workflow-steps');
|
|
45
|
-
const lastStep = workflowSteps.locator('ix-workflow-step').nth(2);
|
|
46
|
-
const selectedDiv = lastStep.locator('.step');
|
|
47
|
-
await lastStep.click();
|
|
48
|
-
await expect(workflowSteps).toHaveClass(/hydrated/);
|
|
49
|
-
await expect(selectedDiv).toHaveClass(/selected/);
|
|
50
|
-
});
|
|
51
|
-
regressionTest('should prevent click navigation', async ({ mount, page }) => {
|
|
52
|
-
await mount(`
|
|
53
|
-
<ix-workflow-steps clickable>
|
|
54
|
-
<ix-workflow-step>Test 1</ix-workflow-step>
|
|
55
|
-
<ix-workflow-step>Test 2</ix-workflow-step>
|
|
56
|
-
<ix-workflow-step>Test 3</ix-workflow-step>
|
|
57
|
-
</ix-workflow-steps>
|
|
58
|
-
`);
|
|
59
|
-
const workflowSteps = page.locator('ix-workflow-steps');
|
|
60
|
-
await workflowSteps.evaluate((steps) => {
|
|
61
|
-
steps.addEventListener('stepSelected', (event) => {
|
|
62
|
-
event.preventDefault();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
const firstStep = workflowSteps.locator('ix-workflow-step').nth(0);
|
|
66
|
-
const lastStep = workflowSteps.locator('ix-workflow-step').nth(2);
|
|
67
|
-
const firstStepDiv = firstStep.locator('.step');
|
|
68
|
-
const lastStepDiv = lastStep.locator('.step');
|
|
69
|
-
await lastStep.click();
|
|
70
|
-
await expect(workflowSteps).toHaveClass(/hydrated/);
|
|
71
|
-
await expect(firstStepDiv).toHaveClass(/selected/);
|
|
72
|
-
await expect(lastStepDiv).not.toHaveClass(/selected/);
|
|
73
|
-
});
|
|
74
|
-
//# sourceMappingURL=workflow-steps.ct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-steps.ct.js","sourceRoot":"","sources":["../../../../src/components/workflow-steps/test/workflow-steps.ct.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,KAAK,CAAC;;;;;;GAMX,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD,aAAa,CAAC,QAAQ,CACpB,CAAC,IAAgC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAC/D,CAAC;IACF,MAAM,IAAI,GAAG,aAAa;SACvB,OAAO,CAAC,kBAAkB,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,qBAAqB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAC9D,MAAM,KAAK,CAAC;;;;;;GAMX,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1E,MAAM,KAAK,CAAC;;;;;;GAMX,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAExD,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAiC,EAAE,EAAE;QACjE,KAAK,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC","sourcesContent":["/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n * SPDX-FileCopyrightText: 2024 Siemens AG\n *\n * SPDX-License-Identifier: MIT\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { expect } from '@playwright/test';\nimport { regressionTest } from '@utils/test';\n\nregressionTest('renders', async ({ mount, page }) => {\n await mount(`\n <ix-workflow-steps>\n <ix-workflow-step>Test 1</ix-workflow-step>\n <ix-workflow-step>Test 2</ix-workflow-step>\n <ix-workflow-step>Test 3</ix-workflow-step>\n </ix-workflow-steps>\n `);\n const workflowSteps = page.locator('ix-workflow-steps');\n workflowSteps.evaluate(\n (step: HTMLIxWorkflowStepsElement) => (step.selectedIndex = 1)\n );\n const step = workflowSteps\n .locator('ix-workflow-step')\n .nth(1)\n .locator('.step .selected');\n await expect(workflowSteps).toHaveClass(/hydrated/);\n await expect(step).toBeVisible();\n});\n\nregressionTest('should be clickable', async ({ mount, page }) => {\n await mount(`\n <ix-workflow-steps clickable>\n <ix-workflow-step>Test 1</ix-workflow-step>\n <ix-workflow-step>Test 2</ix-workflow-step>\n <ix-workflow-step>Test 3</ix-workflow-step>\n </ix-workflow-steps>\n `);\n const workflowSteps = page.locator('ix-workflow-steps');\n const lastStep = workflowSteps.locator('ix-workflow-step').nth(2);\n const selectedDiv = lastStep.locator('.step');\n await lastStep.click();\n\n await expect(workflowSteps).toHaveClass(/hydrated/);\n await expect(selectedDiv).toHaveClass(/selected/);\n});\n\nregressionTest('should prevent click navigation', async ({ mount, page }) => {\n await mount(`\n <ix-workflow-steps clickable>\n <ix-workflow-step>Test 1</ix-workflow-step>\n <ix-workflow-step>Test 2</ix-workflow-step>\n <ix-workflow-step>Test 3</ix-workflow-step>\n </ix-workflow-steps>\n `);\n const workflowSteps = page.locator('ix-workflow-steps');\n\n await workflowSteps.evaluate((steps: HTMLIxWorkflowStepsElement) => {\n steps.addEventListener('stepSelected', (event) => {\n event.preventDefault();\n });\n });\n\n const firstStep = workflowSteps.locator('ix-workflow-step').nth(0);\n const lastStep = workflowSteps.locator('ix-workflow-step').nth(2);\n const firstStepDiv = firstStep.locator('.step');\n const lastStepDiv = lastStep.locator('.step');\n\n await lastStep.click();\n\n await expect(workflowSteps).toHaveClass(/hydrated/);\n await expect(firstStepDiv).toHaveClass(/selected/);\n await expect(lastStepDiv).not.toHaveClass(/selected/);\n});\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* SPDX-FileCopyrightText: 2024 Siemens AG
|
|
3
|
-
*
|
|
4
|
-
* SPDX-License-Identifier: MIT
|
|
5
|
-
*
|
|
6
|
-
* This source code is licensed under the MIT license found in the
|
|
7
|
-
* LICENSE file in the root directory of this source tree.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
Object.defineProperty(window, 'matchMedia', {
|
|
11
|
-
writable: true,
|
|
12
|
-
value: jest.fn().mockImplementation((query) => ({
|
|
13
|
-
matches: false,
|
|
14
|
-
media: query,
|
|
15
|
-
onchange: null,
|
|
16
|
-
addListener: jest.fn(),
|
|
17
|
-
removeListener: jest.fn(),
|
|
18
|
-
addEventListener: jest.fn(),
|
|
19
|
-
removeEventListener: jest.fn(),
|
|
20
|
-
dispatchEvent: jest.fn(),
|
|
21
|
-
})),
|
|
22
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import 'jest';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|