@camunda/e2e-test-suite 0.0.1113 → 0.0.1115
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/OptimizeSharePage.js +9 -1
- package/dist/tests/8.10/optimize-collections-api.spec.js +8 -6
- package/dist/tests/8.10/optimize-sharing-alerts-export-ui.spec.js +7 -5
- package/dist/tests/8.9/connectors-user-flows.spec.js +2 -4
- package/dist/tests/8.9/idp-user-flows.spec.js +11 -2
- package/package.json +1 -1
|
@@ -56,7 +56,15 @@ class OptimizeSharePage {
|
|
|
56
56
|
// always-present Share control) renders from scratch. Use waitFor (which
|
|
57
57
|
// actually polls) rather than isVisible (a one-shot check), reloading only
|
|
58
58
|
// when the Share control still hasn't rendered.
|
|
59
|
-
|
|
59
|
+
//
|
|
60
|
+
// A reload is also the recovery path for a second, distinct failure mode:
|
|
61
|
+
// the entity was created moments earlier via the API (in a describe's
|
|
62
|
+
// beforeAll) and Optimize's evaluate endpoint hasn't caught up yet, which
|
|
63
|
+
// renders the "This link is not valid" ErrorPage instead of a loading
|
|
64
|
+
// state -- there is no spinner to wait out, only a fresh navigation
|
|
65
|
+
// re-queries the entity. 5 attempts give that eventual-consistency window
|
|
66
|
+
// more room than 3 did.
|
|
67
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
60
68
|
const shareVisible = await this.shareButton
|
|
61
69
|
.waitFor({ state: 'visible', timeout: 10000 })
|
|
62
70
|
.then(() => true)
|
|
@@ -87,12 +87,14 @@ _8_10_1.test.describe('API Optimize Collections Lifecycle Tests @optimize-collec
|
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
await _8_10_1.test.step('GET /api/collection/{id} exposes the added scope entry', async () => {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
await (0, apiHelpers_1.retryOnTransientApiError)(async () => {
|
|
91
|
+
const response = await request.get(`${baseUrl}/api/collection/${collectionId}`, { headers: { Cookie: optimizeCookie } });
|
|
92
|
+
await (0, apiHelpers_1.assertResponseStatus)(response, 200);
|
|
93
|
+
const body = await response.json();
|
|
94
|
+
const scope = body?.data?.scope;
|
|
95
|
+
(0, test_1.expect)(Array.isArray(scope)).toBeTruthy();
|
|
96
|
+
(0, test_1.expect)(scope.some((entry) => entry.definitionKey === definitionKey)).toBeTruthy();
|
|
97
|
+
}, 'GET /api/collection/{id} exposes the added scope entry');
|
|
96
98
|
});
|
|
97
99
|
await request.delete(`${baseUrl}/api/public/collection/${collectionId}`, {
|
|
98
100
|
headers: { Authorization: optimizeBearerToken },
|
|
@@ -140,11 +140,13 @@ _8_10_1.test.describe('Optimize Sharing & Export UI Tests @optimize-sharing-aler
|
|
|
140
140
|
});
|
|
141
141
|
(0, _8_10_1.test)('Enable report sharing and expose a public share link', async ({ appsPage, optimizeHomePage, optimizeSharePage, }) => {
|
|
142
142
|
await _8_10_1.test.step('Open Optimize from the Camunda apps launcher', async () => {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
143
|
+
// The apps-menu hand-off starts an OIDC round trip, and when
|
|
144
|
+
// Optimize's /sso-callback answers 401 the tab is left on a blank
|
|
145
|
+
// page that never renders the banner. Polling the banner cannot
|
|
146
|
+
// recover that — only re-entering through the apps menu restarts
|
|
147
|
+
// the hand-off — so use the retrying opener instead (see
|
|
148
|
+
// AppsPage.openOptimizeWithRetry and the CSV export test below).
|
|
149
|
+
await appsPage.openOptimizeWithRetry(optimizeHomePage.optimizeBanner, clusterName);
|
|
148
150
|
});
|
|
149
151
|
await _8_10_1.test.step('Navigate to the seeded report', async () => {
|
|
150
152
|
await optimizeSharePage.openEntityById(baseUrl, 'report', reportId);
|
|
@@ -168,8 +168,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
168
168
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
|
|
169
169
|
});
|
|
170
170
|
});
|
|
171
|
-
|
|
172
|
-
_8_9_1.test.skip('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, clusterPage, clusterSecretsPage, }) => {
|
|
171
|
+
(0, _8_9_1.test)('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, clusterPage, clusterSecretsPage, }) => {
|
|
173
172
|
_8_9_1.test.slow();
|
|
174
173
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
175
174
|
await _8_9_1.test.step('Navigate to Connectors Secrets', async () => {
|
|
@@ -222,8 +221,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
222
221
|
});
|
|
223
222
|
});
|
|
224
223
|
});
|
|
225
|
-
|
|
226
|
-
_8_9_1.test.skip('Connector Secrets User Flow - AWS', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
224
|
+
(0, _8_9_1.test)('Connector Secrets User Flow - AWS', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
227
225
|
_8_9_1.test.slow();
|
|
228
226
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
229
227
|
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
@@ -69,7 +69,13 @@ _8_9_1.test.describe('IDP User Flow Tests', () => {
|
|
|
69
69
|
});
|
|
70
70
|
_8_9_1.test.describe('Unstructured Extraction', () => {
|
|
71
71
|
for (const params of unstructuredTestCases) {
|
|
72
|
-
//
|
|
72
|
+
// Still fails after bug #8500 was fixed -- that bug was specifically
|
|
73
|
+
// about outbound REST connectors + {{secrets.*}} masking, unrelated to
|
|
74
|
+
// this symptom: "Save as test case" never becomes enabled after
|
|
75
|
+
// extraction is triggered (120s timeout). Hard-fails for AWS/Azure in
|
|
76
|
+
// both chromium-v1 and chromium-v2 (PR #3350, run 34110011982); GCP
|
|
77
|
+
// recovers on retry but shares the same root cause. Mis-attributed to
|
|
78
|
+
// #8500 originally; needs its own bug filed before unskipping again.
|
|
73
79
|
_8_9_1.test.skip(`${params.provider} unstructured (${params.model}) - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
74
80
|
_8_9_1.test.slow();
|
|
75
81
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} unstructured` + ' - IDP_Application_Name');
|
|
@@ -145,7 +151,10 @@ _8_9_1.test.describe('IDP User Flow Tests', () => {
|
|
|
145
151
|
});
|
|
146
152
|
_8_9_1.test.describe('Structured Extraction', () => {
|
|
147
153
|
for (const params of structuredTestCases) {
|
|
148
|
-
//
|
|
154
|
+
// Same still-open issue as Unstructured Extraction above -- see that
|
|
155
|
+
// comment. Hard-fails for both AWS and GCP in chromium-v1 (PR #3350,
|
|
156
|
+
// run 34110011982); recovers on retry in chromium-v2 but shares the
|
|
157
|
+
// same root cause. Not bug #8500.
|
|
149
158
|
_8_9_1.test.skip(`${params.provider} structured - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
150
159
|
_8_9_1.test.slow();
|
|
151
160
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} structured` + ' - IDP_Application_Name');
|