@camunda/e2e-test-suite 0.0.796 → 0.0.798
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 +32 -8
- package/dist/pages/8.7/ClusterPage.d.ts +1 -0
- package/dist/pages/8.7/ClusterPage.js +19 -0
- package/dist/pages/8.8/ClusterPage.d.ts +1 -0
- package/dist/pages/8.8/ClusterPage.js +19 -0
- package/dist/pages/8.9/ClusterPage.js +11 -5
- package/package.json +1 -1
|
@@ -21,6 +21,7 @@ declare class ClusterPage {
|
|
|
21
21
|
readonly connectorSecretsTab: Locator;
|
|
22
22
|
readonly createAClusterButton: Locator;
|
|
23
23
|
readonly clusterVersionOption: Locator;
|
|
24
|
+
readonly generationSearchInput: Locator;
|
|
24
25
|
readonly g3DevClusterType: Locator;
|
|
25
26
|
readonly alphaTab: Locator;
|
|
26
27
|
readonly devTab: Locator;
|
|
@@ -26,6 +26,7 @@ class ClusterPage {
|
|
|
26
26
|
connectorSecretsTab;
|
|
27
27
|
createAClusterButton;
|
|
28
28
|
clusterVersionOption;
|
|
29
|
+
generationSearchInput;
|
|
29
30
|
g3DevClusterType;
|
|
30
31
|
alphaTab;
|
|
31
32
|
devTab;
|
|
@@ -85,6 +86,7 @@ class ClusterPage {
|
|
|
85
86
|
name: 'Create a Cluster',
|
|
86
87
|
});
|
|
87
88
|
this.clusterVersionOption = page.getByText(`${process.env.CLUSTER_VERSION}`, { exact: true });
|
|
89
|
+
this.generationSearchInput = page.getByPlaceholder('Search generations');
|
|
88
90
|
this.g3DevClusterType = page.locator('label').filter({
|
|
89
91
|
hasText: this.defaultClusterType,
|
|
90
92
|
});
|
|
@@ -304,14 +306,36 @@ class ClusterPage {
|
|
|
304
306
|
this.clickStableTab,
|
|
305
307
|
this.clickAlphaTab,
|
|
306
308
|
];
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
309
|
+
// The channel tabs no longer list every generation — the list is filtered
|
|
310
|
+
// by a "Search generations" box, and switching tabs clears that box. So on
|
|
311
|
+
// each channel we must (re)type the generation name before its option
|
|
312
|
+
// renders. A generation created via the API moments earlier can also take
|
|
313
|
+
// time to surface, so cycle through every channel repeatedly within a
|
|
314
|
+
// bounded budget (maxCycles * tabs * perTabTimeout) rather than a single
|
|
315
|
+
// pass, giving a late-propagating generation multiple chances on any channel.
|
|
316
|
+
const maxCycles = 6;
|
|
317
|
+
// Increased from 12 s: search results can take longer to render, especially
|
|
318
|
+
// on first load or when the backend is slow.
|
|
319
|
+
const perTabTimeout = 30000;
|
|
320
|
+
for (let cycle = 0; cycle < maxCycles; cycle++) {
|
|
321
|
+
for (const clickTab of tabs) {
|
|
322
|
+
try {
|
|
323
|
+
await clickTab.call(this);
|
|
324
|
+
// Some tabs (e.g. Stable, Alpha) show a flat list with no search box.
|
|
325
|
+
// Use a short isVisible() probe instead of a hard toBeVisible() assert
|
|
326
|
+
// so we still try clicking the option on those tabs.
|
|
327
|
+
const searchInputVisible = await this.generationSearchInput
|
|
328
|
+
.isVisible({ timeout: 3000 })
|
|
329
|
+
.catch(() => false);
|
|
330
|
+
if (searchInputVisible) {
|
|
331
|
+
await this.generationSearchInput.fill(`${process.env.CLUSTER_VERSION}`);
|
|
332
|
+
}
|
|
333
|
+
await this.clusterVersionOption.click({ timeout: perTabTimeout });
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
console.error(`Cycle ${cycle + 1}/${maxCycles}: cluster generation not found on this tab yet:`, error);
|
|
338
|
+
}
|
|
315
339
|
}
|
|
316
340
|
}
|
|
317
341
|
throw new Error('Failed to find cluster generation');
|
|
@@ -20,6 +20,7 @@ declare class ClusterPage {
|
|
|
20
20
|
readonly connectorSecretsTab: Locator;
|
|
21
21
|
readonly createAClusterButton: Locator;
|
|
22
22
|
readonly clusterVersionOption: Locator;
|
|
23
|
+
readonly generationSearchInput: Locator;
|
|
23
24
|
readonly g3DevClusterType: Locator;
|
|
24
25
|
readonly alphaTab: Locator;
|
|
25
26
|
readonly devTab: Locator;
|
|
@@ -27,6 +27,7 @@ class ClusterPage {
|
|
|
27
27
|
connectorSecretsTab;
|
|
28
28
|
createAClusterButton;
|
|
29
29
|
clusterVersionOption;
|
|
30
|
+
generationSearchInput;
|
|
30
31
|
g3DevClusterType;
|
|
31
32
|
alphaTab;
|
|
32
33
|
devTab;
|
|
@@ -76,6 +77,7 @@ class ClusterPage {
|
|
|
76
77
|
this.clusterVersionOption = page.getByText(process.env.CLUSTER_VERSION, {
|
|
77
78
|
exact: true,
|
|
78
79
|
});
|
|
80
|
+
this.generationSearchInput = page.getByPlaceholder('Search generations');
|
|
79
81
|
this.g3DevClusterType = page.locator('label').filter({
|
|
80
82
|
hasText: this.defaultClusterType,
|
|
81
83
|
});
|
|
@@ -309,6 +311,12 @@ class ClusterPage {
|
|
|
309
311
|
try {
|
|
310
312
|
if (version === clusterVersions_1.ClusterVersion.EIGHT_SEVEN_SNAPSHOT) {
|
|
311
313
|
await this.clickDevTab();
|
|
314
|
+
// The channel list is filtered by a "Search generations" box; type
|
|
315
|
+
// the generation name so its option renders before selecting it.
|
|
316
|
+
await (0, test_1.expect)(this.generationSearchInput).toBeVisible({
|
|
317
|
+
timeout: 60000,
|
|
318
|
+
});
|
|
319
|
+
await this.generationSearchInput.fill(version);
|
|
312
320
|
await this.clusterVersionOption.scrollIntoViewIfNeeded();
|
|
313
321
|
await (0, test_1.expect)(this.clusterVersionOption).toBeVisible({ timeout: 60000 });
|
|
314
322
|
await this.clusterVersionOption.click({ timeout: 60000 });
|
|
@@ -318,6 +326,17 @@ class ClusterPage {
|
|
|
318
326
|
for (const clickTab of tabs) {
|
|
319
327
|
try {
|
|
320
328
|
await clickTab.call(this);
|
|
329
|
+
// Switching channels clears the search box so re-type the
|
|
330
|
+
// generation name each time to filter it into the list.
|
|
331
|
+
// Some tabs (e.g. Stable, Alpha) show a flat list with no search
|
|
332
|
+
// input — probe with isVisible() so we still try clicking the
|
|
333
|
+
// option on those tabs instead of catching and moving on.
|
|
334
|
+
const searchInputVisible87 = await this.generationSearchInput
|
|
335
|
+
.isVisible({ timeout: 3000 })
|
|
336
|
+
.catch(() => false);
|
|
337
|
+
if (searchInputVisible87) {
|
|
338
|
+
await this.generationSearchInput.fill(version);
|
|
339
|
+
}
|
|
321
340
|
await this.clusterVersionOption.click({ timeout: 30000 });
|
|
322
341
|
return;
|
|
323
342
|
}
|
|
@@ -18,6 +18,7 @@ declare class ClusterPage {
|
|
|
18
18
|
readonly connectorSecretsTab: Locator;
|
|
19
19
|
readonly createAClusterButton: Locator;
|
|
20
20
|
readonly clusterVersionOption: Locator;
|
|
21
|
+
readonly generationSearchInput: Locator;
|
|
21
22
|
readonly g3DevClusterType: Locator;
|
|
22
23
|
readonly belgiumRegion: Locator;
|
|
23
24
|
readonly londonRegion: Locator;
|
|
@@ -25,6 +25,7 @@ class ClusterPage {
|
|
|
25
25
|
connectorSecretsTab;
|
|
26
26
|
createAClusterButton;
|
|
27
27
|
clusterVersionOption;
|
|
28
|
+
generationSearchInput;
|
|
28
29
|
g3DevClusterType;
|
|
29
30
|
belgiumRegion;
|
|
30
31
|
londonRegion;
|
|
@@ -79,6 +80,7 @@ class ClusterPage {
|
|
|
79
80
|
name: 'Create a Cluster',
|
|
80
81
|
});
|
|
81
82
|
this.clusterVersionOption = page.getByText(`${process.env.CLUSTER_VERSION}`, { exact: true });
|
|
83
|
+
this.generationSearchInput = page.getByPlaceholder('Search generations');
|
|
82
84
|
this.g3DevClusterType = page.locator('label').filter({
|
|
83
85
|
hasText: this.defaultClusterType,
|
|
84
86
|
});
|
|
@@ -329,6 +331,12 @@ class ClusterPage {
|
|
|
329
331
|
try {
|
|
330
332
|
if (version === clusterVersions_1.ClusterVersion.EIGHT_EIGHT_SNAPSHOT) {
|
|
331
333
|
await this.clickDevTab();
|
|
334
|
+
// The channel list is filtered by a "Search generations" box; type
|
|
335
|
+
// the generation name so its option renders before selecting it.
|
|
336
|
+
await (0, test_1.expect)(this.generationSearchInput).toBeVisible({
|
|
337
|
+
timeout: 60000,
|
|
338
|
+
});
|
|
339
|
+
await this.generationSearchInput.fill(version);
|
|
332
340
|
await this.clusterVersionOption.scrollIntoViewIfNeeded();
|
|
333
341
|
await (0, test_1.expect)(this.clusterVersionOption).toBeVisible({ timeout: 60000 });
|
|
334
342
|
await this.clusterVersionOption.click({ timeout: 60000 });
|
|
@@ -337,6 +345,17 @@ class ClusterPage {
|
|
|
337
345
|
for (const clickTab of tabs) {
|
|
338
346
|
try {
|
|
339
347
|
await clickTab.call(this);
|
|
348
|
+
// Switching channels clears the search box so re-type the
|
|
349
|
+
// generation name each time to filter it into the list.
|
|
350
|
+
// Some tabs (e.g. Stable, Alpha) show a flat list with no search
|
|
351
|
+
// input — probe with isVisible() so we still try clicking the
|
|
352
|
+
// option on those tabs instead of catching and moving on.
|
|
353
|
+
const searchInputVisible88 = await this.generationSearchInput
|
|
354
|
+
.isVisible({ timeout: 3000 })
|
|
355
|
+
.catch(() => false);
|
|
356
|
+
if (searchInputVisible88) {
|
|
357
|
+
await this.generationSearchInput.fill(version);
|
|
358
|
+
}
|
|
340
359
|
await this.clusterVersionOption.click({ timeout: 30000 });
|
|
341
360
|
return;
|
|
342
361
|
}
|
|
@@ -315,15 +315,21 @@ class ClusterPage {
|
|
|
315
315
|
// bounded budget (maxCycles * tabs * perTabTimeout) rather than a single
|
|
316
316
|
// pass, giving a late-propagating generation multiple chances on any channel.
|
|
317
317
|
const maxCycles = 6;
|
|
318
|
-
|
|
318
|
+
// Increased from 12 s: search results can take longer to render.
|
|
319
|
+
const perTabTimeout = 30000;
|
|
319
320
|
for (let cycle = 0; cycle < maxCycles; cycle++) {
|
|
320
321
|
for (const clickTab of tabs) {
|
|
321
322
|
try {
|
|
322
323
|
await clickTab.call(this);
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
await this.generationSearchInput
|
|
324
|
+
// Some tabs (e.g. Stable, Alpha) show a flat list with no search box.
|
|
325
|
+
// Use a short isVisible() probe instead of a hard toBeVisible() assert
|
|
326
|
+
// so we still try clicking the option on those tabs.
|
|
327
|
+
const searchInputVisible = await this.generationSearchInput
|
|
328
|
+
.isVisible({ timeout: 3000 })
|
|
329
|
+
.catch(() => false);
|
|
330
|
+
if (searchInputVisible) {
|
|
331
|
+
await this.generationSearchInput.fill(`${process.env.CLUSTER_VERSION}`);
|
|
332
|
+
}
|
|
327
333
|
await this.clusterVersionOption.click({ timeout: perTabTimeout });
|
|
328
334
|
return;
|
|
329
335
|
}
|