@camunda/e2e-test-suite 0.0.265 → 0.0.267
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/dist/pages/8.10/ClusterPage.d.ts +1 -0
- package/dist/pages/8.10/ClusterPage.js +12 -3
- package/dist/pages/8.10/ConsoleOrganizationPage.js +11 -27
- package/dist/pages/8.6/ClusterPage.d.ts +1 -0
- package/dist/pages/8.6/ClusterPage.js +9 -3
- package/dist/pages/8.6/ConsoleOrganizationPage.js +11 -27
- package/dist/pages/8.7/ClusterPage.d.ts +1 -0
- package/dist/pages/8.7/ClusterPage.js +12 -3
- package/dist/pages/8.7/ConsoleOrganizationPage.js +11 -27
- package/dist/pages/8.8/ClusterPage.d.ts +1 -0
- package/dist/pages/8.8/ClusterPage.js +12 -3
- package/dist/pages/8.8/ConsoleOrganizationPage.js +11 -27
- package/dist/pages/8.9/ClusterPage.d.ts +1 -0
- package/dist/pages/8.9/ClusterPage.js +12 -3
- package/dist/pages/8.9/ConsoleOrganizationPage.js +11 -27
- package/dist/test-setup.js +8 -0
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@ declare class ClusterPage {
|
|
|
33
33
|
readonly cluster: (clusterName: string) => Locator;
|
|
34
34
|
readonly clusterHealthiness: (clusterName: string) => Locator;
|
|
35
35
|
readonly clusterLink: (clusterName: string) => Locator;
|
|
36
|
+
readonly dialog: Locator;
|
|
36
37
|
constructor(page: Page, testInfo?: TestInfo);
|
|
37
38
|
clickClusterBanner(): Promise<void>;
|
|
38
39
|
deleteCluster(name: string): Promise<void>;
|
|
@@ -39,12 +39,17 @@ class ClusterPage {
|
|
|
39
39
|
cluster;
|
|
40
40
|
clusterHealthiness;
|
|
41
41
|
clusterLink;
|
|
42
|
+
dialog;
|
|
42
43
|
constructor(page, testInfo) {
|
|
43
44
|
this.page = page;
|
|
44
45
|
this.testInfo = testInfo;
|
|
45
|
-
this.createNewClusterButton =
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
this.createNewClusterButton = this.createNewClusterButton = page
|
|
47
|
+
.getByRole('button', {
|
|
48
|
+
name: 'Create new cluster',
|
|
49
|
+
})
|
|
50
|
+
.or(this.page.getByRole('button', {
|
|
51
|
+
name: 'Create cluster',
|
|
52
|
+
}));
|
|
48
53
|
this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
|
|
49
54
|
this.createClusterButton = page.getByRole('button', {
|
|
50
55
|
name: 'Create cluster',
|
|
@@ -100,6 +105,7 @@ class ClusterPage {
|
|
|
100
105
|
this.clusterLink = (clusterName) => this.cluster(clusterName).getByRole('link', {
|
|
101
106
|
name: clusterName,
|
|
102
107
|
});
|
|
108
|
+
this.dialog = page.getByRole('dialog');
|
|
103
109
|
}
|
|
104
110
|
async clickClusterBanner() {
|
|
105
111
|
await this.page
|
|
@@ -129,6 +135,8 @@ class ClusterPage {
|
|
|
129
135
|
await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
|
|
130
136
|
await deleteButton.click({ force: true, timeout: 60000 });
|
|
131
137
|
}
|
|
138
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 60000 });
|
|
139
|
+
await (0, test_1.expect)(this.confirmDeleteInput).toBeVisible({ timeout: 60000 });
|
|
132
140
|
await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
|
|
133
141
|
await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
|
|
134
142
|
const dangerDeleteButtons = await this.dangerDeleteButton.all();
|
|
@@ -137,6 +145,7 @@ class ClusterPage {
|
|
|
137
145
|
await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
|
|
138
146
|
timeout: 60000,
|
|
139
147
|
});
|
|
148
|
+
await (0, test_1.expect)(this.dialog).not.toBeVisible({ timeout: 60000 });
|
|
140
149
|
// Refresh the list of delete buttons
|
|
141
150
|
deleteButtons = this.cluster(name).getByRole('button', {
|
|
142
151
|
name: 'Delete',
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConsoleOrganizationPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ConsoleOrganizationPage {
|
|
7
8
|
page;
|
|
8
9
|
usersTab;
|
|
@@ -59,7 +60,7 @@ class ConsoleOrganizationPage {
|
|
|
59
60
|
this.confirmButton = page.getByRole('button', { name: 'Confirm' });
|
|
60
61
|
this.settingsTab = page.getByRole('tab', { name: 'Settings' });
|
|
61
62
|
this.optInButton = page.getByRole('button', { name: 'Opt-in', exact: true });
|
|
62
|
-
this.optInCheckbox = page.getByLabel('I understand and agree to
|
|
63
|
+
this.optInCheckbox = page.getByLabel('I understand and agree to');
|
|
63
64
|
this.newContextPadButton = page.getByRole('switch').last();
|
|
64
65
|
this.newContextPadButtonText = page
|
|
65
66
|
.locator('[class= "cds--toggle__text"]')
|
|
@@ -246,7 +247,7 @@ class ConsoleOrganizationPage {
|
|
|
246
247
|
}
|
|
247
248
|
//Opt-in The Alpha Feature
|
|
248
249
|
const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
|
|
249
|
-
name: 'Opt
|
|
250
|
+
name: 'Opt in to enable',
|
|
250
251
|
});
|
|
251
252
|
if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
|
|
252
253
|
await alphaFeatureOptInButton.click({ timeout: 90000 });
|
|
@@ -274,31 +275,7 @@ class ConsoleOrganizationPage {
|
|
|
274
275
|
}
|
|
275
276
|
async scrollToOptInCheckbox() {
|
|
276
277
|
await this.page
|
|
277
|
-
.
|
|
278
|
-
.scrollIntoViewIfNeeded();
|
|
279
|
-
await this.page
|
|
280
|
-
.getByText('Pre-release. The Customer')
|
|
281
|
-
.scrollIntoViewIfNeeded();
|
|
282
|
-
await this.page
|
|
283
|
-
.getByText('Confidential Information. The')
|
|
284
|
-
.scrollIntoViewIfNeeded();
|
|
285
|
-
await this.page
|
|
286
|
-
.getByText('THESE TERMS DO NOT ENTITLE')
|
|
287
|
-
.scrollIntoViewIfNeeded();
|
|
288
|
-
await this.page
|
|
289
|
-
.getByText('Rights and Obligations Upon')
|
|
290
|
-
.scrollIntoViewIfNeeded();
|
|
291
|
-
await this.page
|
|
292
|
-
.getByText('NOTWITHSTANDING ANYTHING TO')
|
|
293
|
-
.scrollIntoViewIfNeeded();
|
|
294
|
-
await this.page
|
|
295
|
-
.getByRole('heading', { name: 'General' })
|
|
296
|
-
.scrollIntoViewIfNeeded();
|
|
297
|
-
await this.page
|
|
298
|
-
.getByText('Liability. Camunda is liable')
|
|
299
|
-
.scrollIntoViewIfNeeded();
|
|
300
|
-
await this.page
|
|
301
|
-
.getByLabel('I understand and agree to the')
|
|
278
|
+
.getByLabel('I understand and agree to')
|
|
302
279
|
.scrollIntoViewIfNeeded();
|
|
303
280
|
}
|
|
304
281
|
async checkOptInCheckbox() {
|
|
@@ -323,6 +300,13 @@ class ConsoleOrganizationPage {
|
|
|
323
300
|
}
|
|
324
301
|
}
|
|
325
302
|
async optInToAlphaFeatures() {
|
|
303
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
|
|
304
|
+
visibilityTimeout: 60000,
|
|
305
|
+
totalTimeout: 140000,
|
|
306
|
+
postAction: async () => {
|
|
307
|
+
await this.page.reload();
|
|
308
|
+
},
|
|
309
|
+
});
|
|
326
310
|
try {
|
|
327
311
|
await (0, test_1.expect)(this.optInButton).toBeVisible({ timeout: 30000 });
|
|
328
312
|
await this.clickOptInButton();
|
|
@@ -30,6 +30,7 @@ declare class ClusterPage {
|
|
|
30
30
|
readonly clusterHealthiness: (clusterName: string) => Locator;
|
|
31
31
|
readonly clusterLink: (clusterName: string) => Locator;
|
|
32
32
|
readonly clusterDeleteButton: (clusterName: string) => Locator;
|
|
33
|
+
readonly dialog: Locator;
|
|
33
34
|
constructor(page: Page);
|
|
34
35
|
clickClusterBanner(): Promise<void>;
|
|
35
36
|
deleteCluster(name: string): Promise<void>;
|
|
@@ -36,11 +36,17 @@ class ClusterPage {
|
|
|
36
36
|
clusterHealthiness;
|
|
37
37
|
clusterLink;
|
|
38
38
|
clusterDeleteButton;
|
|
39
|
+
dialog;
|
|
39
40
|
constructor(page) {
|
|
40
41
|
this.page = page;
|
|
41
|
-
this.
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
this.dialog = page.getByRole('dialog');
|
|
43
|
+
this.createNewClusterButton = this.createNewClusterButton = page
|
|
44
|
+
.getByRole('button', {
|
|
45
|
+
name: 'Create new cluster',
|
|
46
|
+
})
|
|
47
|
+
.or(this.page.getByRole('button', {
|
|
48
|
+
name: 'Create cluster',
|
|
49
|
+
}));
|
|
44
50
|
this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
|
|
45
51
|
this.createClusterButton = page.getByRole('button', {
|
|
46
52
|
name: 'Create cluster',
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConsoleOrganizationPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ConsoleOrganizationPage {
|
|
7
8
|
page;
|
|
8
9
|
usersTab;
|
|
@@ -67,7 +68,7 @@ class ConsoleOrganizationPage {
|
|
|
67
68
|
this.confirmButton = page.getByRole('button', { name: 'Confirm' });
|
|
68
69
|
this.settingsTab = page.getByRole('tab', { name: 'Settings' });
|
|
69
70
|
this.optInButton = page.getByRole('button', { name: 'Opt-in', exact: true });
|
|
70
|
-
this.optInCheckbox = page.getByLabel('I understand and agree to
|
|
71
|
+
this.optInCheckbox = page.getByLabel('I understand and agree to');
|
|
71
72
|
this.optInAICheckbox = page.getByLabel('I understand and agree to Terms for AI Usage');
|
|
72
73
|
this.newContextPadButton = page.getByRole('switch').last();
|
|
73
74
|
this.newContextPadButtonText = page
|
|
@@ -282,31 +283,7 @@ class ConsoleOrganizationPage {
|
|
|
282
283
|
}
|
|
283
284
|
async scrollToOptInCheckbox() {
|
|
284
285
|
await this.page
|
|
285
|
-
.
|
|
286
|
-
.scrollIntoViewIfNeeded();
|
|
287
|
-
await this.page
|
|
288
|
-
.getByText('Pre-release. The Customer')
|
|
289
|
-
.scrollIntoViewIfNeeded();
|
|
290
|
-
await this.page
|
|
291
|
-
.getByText('Confidential Information. The')
|
|
292
|
-
.scrollIntoViewIfNeeded();
|
|
293
|
-
await this.page
|
|
294
|
-
.getByText('THESE TERMS DO NOT ENTITLE')
|
|
295
|
-
.scrollIntoViewIfNeeded();
|
|
296
|
-
await this.page
|
|
297
|
-
.getByText('Rights and Obligations Upon')
|
|
298
|
-
.scrollIntoViewIfNeeded();
|
|
299
|
-
await this.page
|
|
300
|
-
.getByText('NOTWITHSTANDING ANYTHING TO')
|
|
301
|
-
.scrollIntoViewIfNeeded();
|
|
302
|
-
await this.page
|
|
303
|
-
.getByRole('heading', { name: 'General' })
|
|
304
|
-
.scrollIntoViewIfNeeded();
|
|
305
|
-
await this.page
|
|
306
|
-
.getByText('Liability. Camunda is liable')
|
|
307
|
-
.scrollIntoViewIfNeeded();
|
|
308
|
-
await this.page
|
|
309
|
-
.getByLabel('I understand and agree to the')
|
|
286
|
+
.getByLabel('I understand and agree to')
|
|
310
287
|
.scrollIntoViewIfNeeded();
|
|
311
288
|
}
|
|
312
289
|
async checkOptInCheckbox() {
|
|
@@ -335,7 +312,7 @@ class ConsoleOrganizationPage {
|
|
|
335
312
|
}
|
|
336
313
|
//Opt-in The Alpha Feature
|
|
337
314
|
const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
|
|
338
|
-
name: 'Opt
|
|
315
|
+
name: 'Opt in to enable',
|
|
339
316
|
});
|
|
340
317
|
if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
|
|
341
318
|
await alphaFeatureOptInButton.click({ timeout: 60000 });
|
|
@@ -395,6 +372,13 @@ class ConsoleOrganizationPage {
|
|
|
395
372
|
}
|
|
396
373
|
}
|
|
397
374
|
async optInToAlphaFeatures() {
|
|
375
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
|
|
376
|
+
visibilityTimeout: 60000,
|
|
377
|
+
totalTimeout: 140000,
|
|
378
|
+
postAction: async () => {
|
|
379
|
+
await this.page.reload();
|
|
380
|
+
},
|
|
381
|
+
});
|
|
398
382
|
try {
|
|
399
383
|
await (0, test_1.expect)(this.optInButton).toBeVisible({ timeout: 30000 });
|
|
400
384
|
await this.clickOptInButton();
|
|
@@ -30,6 +30,7 @@ declare class ClusterPage {
|
|
|
30
30
|
readonly cluster: (clusterName: string) => Locator;
|
|
31
31
|
readonly clusterHealthiness: (clusterName: string) => Locator;
|
|
32
32
|
readonly clusterLink: (clusterName: string) => Locator;
|
|
33
|
+
readonly dialog: Locator;
|
|
33
34
|
constructor(page: Page);
|
|
34
35
|
clickClusterBanner(): Promise<void>;
|
|
35
36
|
deleteCluster(name: string): Promise<void>;
|
|
@@ -37,11 +37,17 @@ class ClusterPage {
|
|
|
37
37
|
cluster;
|
|
38
38
|
clusterHealthiness;
|
|
39
39
|
clusterLink;
|
|
40
|
+
dialog;
|
|
40
41
|
constructor(page) {
|
|
41
42
|
this.page = page;
|
|
42
|
-
this.
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
this.dialog = page.getByRole('dialog');
|
|
44
|
+
this.createNewClusterButton = this.createNewClusterButton = page
|
|
45
|
+
.getByRole('button', {
|
|
46
|
+
name: 'Create new cluster',
|
|
47
|
+
})
|
|
48
|
+
.or(this.page.getByRole('button', {
|
|
49
|
+
name: 'Create cluster',
|
|
50
|
+
}));
|
|
45
51
|
this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
|
|
46
52
|
this.createClusterButton = page.getByRole('button', {
|
|
47
53
|
name: 'Create cluster',
|
|
@@ -125,6 +131,8 @@ class ClusterPage {
|
|
|
125
131
|
await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
|
|
126
132
|
await deleteButton.click({ force: true, timeout: 60000 });
|
|
127
133
|
}
|
|
134
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 60000 });
|
|
135
|
+
await (0, test_1.expect)(this.confirmDeleteInput).toBeVisible({ timeout: 60000 });
|
|
128
136
|
await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
|
|
129
137
|
await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
|
|
130
138
|
const dangerDeleteButtons = await this.dangerDeleteButton.all();
|
|
@@ -133,6 +141,7 @@ class ClusterPage {
|
|
|
133
141
|
await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
|
|
134
142
|
timeout: 60000,
|
|
135
143
|
});
|
|
144
|
+
await (0, test_1.expect)(this.dialog).not.toBeVisible({ timeout: 60000 });
|
|
136
145
|
// Refresh the list of delete buttons
|
|
137
146
|
deleteButtons = this.cluster(name).getByRole('button', {
|
|
138
147
|
name: 'Delete',
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConsoleOrganizationPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ConsoleOrganizationPage {
|
|
7
8
|
page;
|
|
8
9
|
usersTab;
|
|
@@ -67,7 +68,7 @@ class ConsoleOrganizationPage {
|
|
|
67
68
|
this.confirmButton = page.getByRole('button', { name: 'Confirm' });
|
|
68
69
|
this.settingsTab = page.getByRole('tab', { name: 'Settings' });
|
|
69
70
|
this.optInButton = page.getByRole('button', { name: 'Opt-in', exact: true });
|
|
70
|
-
this.optInCheckbox = page.getByLabel('I understand and agree to
|
|
71
|
+
this.optInCheckbox = page.getByLabel('I understand and agree to');
|
|
71
72
|
this.newContextPadButton = page.getByRole('switch').last();
|
|
72
73
|
this.newContextPadButtonText = page
|
|
73
74
|
.locator('[class= "cds--toggle__text"]')
|
|
@@ -250,7 +251,7 @@ class ConsoleOrganizationPage {
|
|
|
250
251
|
}
|
|
251
252
|
//Opt-in The Alpha Feature
|
|
252
253
|
const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
|
|
253
|
-
name: 'Opt
|
|
254
|
+
name: 'Opt in to enable',
|
|
254
255
|
});
|
|
255
256
|
if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
|
|
256
257
|
await alphaFeatureOptInButton.click();
|
|
@@ -278,31 +279,7 @@ class ConsoleOrganizationPage {
|
|
|
278
279
|
}
|
|
279
280
|
async scrollToOptInCheckbox() {
|
|
280
281
|
await this.page
|
|
281
|
-
.
|
|
282
|
-
.scrollIntoViewIfNeeded();
|
|
283
|
-
await this.page
|
|
284
|
-
.getByText('Pre-release. The Customer')
|
|
285
|
-
.scrollIntoViewIfNeeded();
|
|
286
|
-
await this.page
|
|
287
|
-
.getByText('Confidential Information. The')
|
|
288
|
-
.scrollIntoViewIfNeeded();
|
|
289
|
-
await this.page
|
|
290
|
-
.getByText('THESE TERMS DO NOT ENTITLE')
|
|
291
|
-
.scrollIntoViewIfNeeded();
|
|
292
|
-
await this.page
|
|
293
|
-
.getByText('Rights and Obligations Upon')
|
|
294
|
-
.scrollIntoViewIfNeeded();
|
|
295
|
-
await this.page
|
|
296
|
-
.getByText('NOTWITHSTANDING ANYTHING TO')
|
|
297
|
-
.scrollIntoViewIfNeeded();
|
|
298
|
-
await this.page
|
|
299
|
-
.getByRole('heading', { name: 'General' })
|
|
300
|
-
.scrollIntoViewIfNeeded();
|
|
301
|
-
await this.page
|
|
302
|
-
.getByText('Liability. Camunda is liable')
|
|
303
|
-
.scrollIntoViewIfNeeded();
|
|
304
|
-
await this.page
|
|
305
|
-
.getByLabel('I understand and agree to the')
|
|
282
|
+
.getByLabel('I understand and agree to')
|
|
306
283
|
.scrollIntoViewIfNeeded();
|
|
307
284
|
}
|
|
308
285
|
async checkOptInCheckbox() {
|
|
@@ -351,6 +328,13 @@ class ConsoleOrganizationPage {
|
|
|
351
328
|
}
|
|
352
329
|
}
|
|
353
330
|
async optInToAlphaFeatures() {
|
|
331
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
|
|
332
|
+
visibilityTimeout: 60000,
|
|
333
|
+
totalTimeout: 140000,
|
|
334
|
+
postAction: async () => {
|
|
335
|
+
await this.page.reload();
|
|
336
|
+
},
|
|
337
|
+
});
|
|
354
338
|
try {
|
|
355
339
|
await (0, test_1.expect)(this.optInButton).toBeVisible({ timeout: 30000 });
|
|
356
340
|
await this.clickOptInButton();
|
|
@@ -33,6 +33,7 @@ declare class ClusterPage {
|
|
|
33
33
|
readonly cluster: (clusterName: string) => Locator;
|
|
34
34
|
readonly clusterHealthiness: (clusterName: string) => Locator;
|
|
35
35
|
readonly clusterLink: (clusterName: string) => Locator;
|
|
36
|
+
readonly dialog: Locator;
|
|
36
37
|
constructor(page: Page, testInfo?: TestInfo);
|
|
37
38
|
clickClusterBanner(): Promise<void>;
|
|
38
39
|
deleteCluster(name: string): Promise<void>;
|
|
@@ -40,12 +40,18 @@ class ClusterPage {
|
|
|
40
40
|
cluster;
|
|
41
41
|
clusterHealthiness;
|
|
42
42
|
clusterLink;
|
|
43
|
+
dialog;
|
|
43
44
|
constructor(page, testInfo) {
|
|
44
45
|
this.page = page;
|
|
45
46
|
this.testInfo = testInfo;
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
this.dialog = page.getByRole('dialog');
|
|
48
|
+
this.createNewClusterButton = this.createNewClusterButton = page
|
|
49
|
+
.getByRole('button', {
|
|
50
|
+
name: 'Create new cluster',
|
|
51
|
+
})
|
|
52
|
+
.or(this.page.getByRole('button', {
|
|
53
|
+
name: 'Create cluster',
|
|
54
|
+
}));
|
|
49
55
|
this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
|
|
50
56
|
this.createClusterButton = page.getByRole('button', {
|
|
51
57
|
name: 'Create cluster',
|
|
@@ -130,6 +136,8 @@ class ClusterPage {
|
|
|
130
136
|
await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
|
|
131
137
|
await deleteButton.click({ force: true, timeout: 60000 });
|
|
132
138
|
}
|
|
139
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 60000 });
|
|
140
|
+
await (0, test_1.expect)(this.confirmDeleteInput).toBeVisible({ timeout: 60000 });
|
|
133
141
|
await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
|
|
134
142
|
await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
|
|
135
143
|
const dangerDeleteButtons = await this.dangerDeleteButton.all();
|
|
@@ -138,6 +146,7 @@ class ClusterPage {
|
|
|
138
146
|
await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
|
|
139
147
|
timeout: 60000,
|
|
140
148
|
});
|
|
149
|
+
await (0, test_1.expect)(this.dialog).not.toBeVisible({ timeout: 60000 });
|
|
141
150
|
// Refresh the list of delete buttons
|
|
142
151
|
deleteButtons = this.cluster(name).getByRole('button', {
|
|
143
152
|
name: 'Delete',
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConsoleOrganizationPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ConsoleOrganizationPage {
|
|
7
8
|
page;
|
|
8
9
|
usersTab;
|
|
@@ -59,7 +60,7 @@ class ConsoleOrganizationPage {
|
|
|
59
60
|
this.confirmButton = page.getByRole('button', { name: 'Confirm' });
|
|
60
61
|
this.settingsTab = page.getByRole('tab', { name: 'Settings' });
|
|
61
62
|
this.optInButton = page.getByRole('button', { name: 'Opt-in', exact: true });
|
|
62
|
-
this.optInCheckbox = page.getByLabel('I understand and agree to
|
|
63
|
+
this.optInCheckbox = page.getByLabel('I understand and agree to');
|
|
63
64
|
this.newContextPadButton = page.getByRole('switch').last();
|
|
64
65
|
this.newContextPadButtonText = page
|
|
65
66
|
.locator('[class= "cds--toggle__text"]')
|
|
@@ -246,7 +247,7 @@ class ConsoleOrganizationPage {
|
|
|
246
247
|
}
|
|
247
248
|
//Opt-in The Alpha Feature
|
|
248
249
|
const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
|
|
249
|
-
name: 'Opt
|
|
250
|
+
name: 'Opt in to enable',
|
|
250
251
|
});
|
|
251
252
|
if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
|
|
252
253
|
await alphaFeatureOptInButton.click({ timeout: 90000 });
|
|
@@ -274,31 +275,7 @@ class ConsoleOrganizationPage {
|
|
|
274
275
|
}
|
|
275
276
|
async scrollToOptInCheckbox() {
|
|
276
277
|
await this.page
|
|
277
|
-
.
|
|
278
|
-
.scrollIntoViewIfNeeded();
|
|
279
|
-
await this.page
|
|
280
|
-
.getByText('Pre-release. The Customer')
|
|
281
|
-
.scrollIntoViewIfNeeded();
|
|
282
|
-
await this.page
|
|
283
|
-
.getByText('Confidential Information. The')
|
|
284
|
-
.scrollIntoViewIfNeeded();
|
|
285
|
-
await this.page
|
|
286
|
-
.getByText('THESE TERMS DO NOT ENTITLE')
|
|
287
|
-
.scrollIntoViewIfNeeded();
|
|
288
|
-
await this.page
|
|
289
|
-
.getByText('Rights and Obligations Upon')
|
|
290
|
-
.scrollIntoViewIfNeeded();
|
|
291
|
-
await this.page
|
|
292
|
-
.getByText('NOTWITHSTANDING ANYTHING TO')
|
|
293
|
-
.scrollIntoViewIfNeeded();
|
|
294
|
-
await this.page
|
|
295
|
-
.getByRole('heading', { name: 'General' })
|
|
296
|
-
.scrollIntoViewIfNeeded();
|
|
297
|
-
await this.page
|
|
298
|
-
.getByText('Liability. Camunda is liable')
|
|
299
|
-
.scrollIntoViewIfNeeded();
|
|
300
|
-
await this.page
|
|
301
|
-
.getByLabel('I understand and agree to the')
|
|
278
|
+
.getByLabel('I understand and agree to')
|
|
302
279
|
.scrollIntoViewIfNeeded();
|
|
303
280
|
}
|
|
304
281
|
async checkOptInCheckbox() {
|
|
@@ -323,6 +300,13 @@ class ConsoleOrganizationPage {
|
|
|
323
300
|
}
|
|
324
301
|
}
|
|
325
302
|
async optInToAlphaFeatures() {
|
|
303
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
|
|
304
|
+
visibilityTimeout: 60000,
|
|
305
|
+
totalTimeout: 140000,
|
|
306
|
+
postAction: async () => {
|
|
307
|
+
await this.page.reload();
|
|
308
|
+
},
|
|
309
|
+
});
|
|
326
310
|
try {
|
|
327
311
|
await (0, test_1.expect)(this.optInButton).toBeVisible({ timeout: 30000 });
|
|
328
312
|
await this.clickOptInButton();
|
|
@@ -33,6 +33,7 @@ declare class ClusterPage {
|
|
|
33
33
|
readonly cluster: (clusterName: string) => Locator;
|
|
34
34
|
readonly clusterHealthiness: (clusterName: string) => Locator;
|
|
35
35
|
readonly clusterLink: (clusterName: string) => Locator;
|
|
36
|
+
readonly dialog: Locator;
|
|
36
37
|
constructor(page: Page, testInfo?: TestInfo);
|
|
37
38
|
clickClusterBanner(): Promise<void>;
|
|
38
39
|
deleteCluster(name: string): Promise<void>;
|
|
@@ -39,12 +39,18 @@ class ClusterPage {
|
|
|
39
39
|
cluster;
|
|
40
40
|
clusterHealthiness;
|
|
41
41
|
clusterLink;
|
|
42
|
+
dialog;
|
|
42
43
|
constructor(page, testInfo) {
|
|
43
44
|
this.page = page;
|
|
44
45
|
this.testInfo = testInfo;
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
this.dialog = page.getByRole('dialog');
|
|
47
|
+
this.createNewClusterButton = this.createNewClusterButton = page
|
|
48
|
+
.getByRole('button', {
|
|
49
|
+
name: 'Create new cluster',
|
|
50
|
+
})
|
|
51
|
+
.or(this.page.getByRole('button', {
|
|
52
|
+
name: 'Create cluster',
|
|
53
|
+
}));
|
|
48
54
|
this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
|
|
49
55
|
this.createClusterButton = page.getByRole('button', {
|
|
50
56
|
name: 'Create cluster',
|
|
@@ -129,6 +135,8 @@ class ClusterPage {
|
|
|
129
135
|
await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
|
|
130
136
|
await deleteButton.click({ force: true, timeout: 60000 });
|
|
131
137
|
}
|
|
138
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 60000 });
|
|
139
|
+
await (0, test_1.expect)(this.confirmDeleteInput).toBeVisible({ timeout: 60000 });
|
|
132
140
|
await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
|
|
133
141
|
await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
|
|
134
142
|
const dangerDeleteButtons = await this.dangerDeleteButton.all();
|
|
@@ -137,6 +145,7 @@ class ClusterPage {
|
|
|
137
145
|
await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
|
|
138
146
|
timeout: 60000,
|
|
139
147
|
});
|
|
148
|
+
await (0, test_1.expect)(this.dialog).not.toBeVisible({ timeout: 60000 });
|
|
140
149
|
// Refresh the list of delete buttons
|
|
141
150
|
deleteButtons = this.cluster(name).getByRole('button', {
|
|
142
151
|
name: 'Delete',
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ConsoleOrganizationPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ConsoleOrganizationPage {
|
|
7
8
|
page;
|
|
8
9
|
usersTab;
|
|
@@ -59,7 +60,7 @@ class ConsoleOrganizationPage {
|
|
|
59
60
|
this.confirmButton = page.getByRole('button', { name: 'Confirm' });
|
|
60
61
|
this.settingsTab = page.getByRole('tab', { name: 'Settings' });
|
|
61
62
|
this.optInButton = page.getByRole('button', { name: 'Opt-in', exact: true });
|
|
62
|
-
this.optInCheckbox = page.getByLabel('I understand and agree to
|
|
63
|
+
this.optInCheckbox = page.getByLabel('I understand and agree to');
|
|
63
64
|
this.newContextPadButton = page.getByRole('switch').last();
|
|
64
65
|
this.newContextPadButtonText = page
|
|
65
66
|
.locator('[class= "cds--toggle__text"]')
|
|
@@ -246,7 +247,7 @@ class ConsoleOrganizationPage {
|
|
|
246
247
|
}
|
|
247
248
|
//Opt-in The Alpha Feature
|
|
248
249
|
const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
|
|
249
|
-
name: 'Opt
|
|
250
|
+
name: 'Opt in to enable',
|
|
250
251
|
});
|
|
251
252
|
if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
|
|
252
253
|
await alphaFeatureOptInButton.click({ timeout: 90000 });
|
|
@@ -274,31 +275,7 @@ class ConsoleOrganizationPage {
|
|
|
274
275
|
}
|
|
275
276
|
async scrollToOptInCheckbox() {
|
|
276
277
|
await this.page
|
|
277
|
-
.
|
|
278
|
-
.scrollIntoViewIfNeeded();
|
|
279
|
-
await this.page
|
|
280
|
-
.getByText('Pre-release. The Customer')
|
|
281
|
-
.scrollIntoViewIfNeeded();
|
|
282
|
-
await this.page
|
|
283
|
-
.getByText('Confidential Information. The')
|
|
284
|
-
.scrollIntoViewIfNeeded();
|
|
285
|
-
await this.page
|
|
286
|
-
.getByText('THESE TERMS DO NOT ENTITLE')
|
|
287
|
-
.scrollIntoViewIfNeeded();
|
|
288
|
-
await this.page
|
|
289
|
-
.getByText('Rights and Obligations Upon')
|
|
290
|
-
.scrollIntoViewIfNeeded();
|
|
291
|
-
await this.page
|
|
292
|
-
.getByText('NOTWITHSTANDING ANYTHING TO')
|
|
293
|
-
.scrollIntoViewIfNeeded();
|
|
294
|
-
await this.page
|
|
295
|
-
.getByRole('heading', { name: 'General' })
|
|
296
|
-
.scrollIntoViewIfNeeded();
|
|
297
|
-
await this.page
|
|
298
|
-
.getByText('Liability. Camunda is liable')
|
|
299
|
-
.scrollIntoViewIfNeeded();
|
|
300
|
-
await this.page
|
|
301
|
-
.getByLabel('I understand and agree to the')
|
|
278
|
+
.getByLabel('I understand and agree to')
|
|
302
279
|
.scrollIntoViewIfNeeded();
|
|
303
280
|
}
|
|
304
281
|
async checkOptInCheckbox() {
|
|
@@ -323,6 +300,13 @@ class ConsoleOrganizationPage {
|
|
|
323
300
|
}
|
|
324
301
|
}
|
|
325
302
|
async optInToAlphaFeatures() {
|
|
303
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
|
|
304
|
+
visibilityTimeout: 60000,
|
|
305
|
+
totalTimeout: 140000,
|
|
306
|
+
postAction: async () => {
|
|
307
|
+
await this.page.reload();
|
|
308
|
+
},
|
|
309
|
+
});
|
|
326
310
|
try {
|
|
327
311
|
await (0, test_1.expect)(this.optInButton).toBeVisible({ timeout: 30000 });
|
|
328
312
|
await this.clickOptInButton();
|
package/dist/test-setup.js
CHANGED
|
@@ -15,6 +15,10 @@ async function captureScreenshot(page, testInfo) {
|
|
|
15
15
|
fullPage: true,
|
|
16
16
|
timeout: 200000,
|
|
17
17
|
});
|
|
18
|
+
await testInfo.attach('screenshot', {
|
|
19
|
+
path: screenshotPath,
|
|
20
|
+
contentType: 'image/png',
|
|
21
|
+
});
|
|
18
22
|
testInfo.annotations.push({
|
|
19
23
|
type: 'testrail_attachment',
|
|
20
24
|
description: screenshotPath,
|
|
@@ -28,6 +32,10 @@ async function captureFailureVideo(page, testInfo) {
|
|
|
28
32
|
if (video) {
|
|
29
33
|
await page.close(); // Close explicitly to unblock saveAs
|
|
30
34
|
await video.saveAs(videoPath);
|
|
35
|
+
await testInfo.attach('video', {
|
|
36
|
+
path: videoPath,
|
|
37
|
+
contentType: 'video/webm',
|
|
38
|
+
});
|
|
31
39
|
testInfo.annotations.push({
|
|
32
40
|
type: 'testrail_attachment',
|
|
33
41
|
description: videoPath,
|