@camunda/e2e-test-suite 0.0.1264 → 0.0.1266

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.
@@ -286,8 +286,13 @@ class Authorization {
286
286
  console.warn(`Attempt ${attempt + 1} did not list the ` +
287
287
  `${authorization.resourceType} authorization for ` +
288
288
  `"${authorization.ownerId}". Retrying...`);
289
- await this.page.reload();
290
- await this.page.waitForLoadState('domcontentloaded');
289
+ // A refused/reset connection while the gateway restarts must feed
290
+ // the next attempt, not abort the retry loop.
291
+ await this.page
292
+ .reload({ waitUntil: 'domcontentloaded' })
293
+ .catch((reloadError) => {
294
+ lastError = reloadError;
295
+ });
291
296
  }
292
297
  }
293
298
  }
@@ -123,9 +123,16 @@ class ManagementIdentityPage {
123
123
  .map((c) => `"${c}"`)
124
124
  .join(' or ')} was found. The role may already be removed, or its ` +
125
125
  `label may have changed in this version.`).toBeVisible({ timeout: 60000 });
126
+ // Click the Delete control inside the matched role's own table row. A
127
+ // `td:right-of(:text(...))` spatial match resolves to a neighbouring row's
128
+ // button once the roles table carries rows before the target (Orchestration
129
+ // is ordered above Hub), so it removed the wrong role and left the intended
130
+ // one still assigned.
126
131
  await this.page
127
- .locator(candidates.map((c) => `td:right-of(:text("${c}"))`).join(', '))
132
+ .locator('tr')
133
+ .filter({ has: this.page.locator(rowSelector) })
128
134
  .first()
135
+ .getByRole('button', { name: 'Delete' })
129
136
  .click({ timeout: 60000 });
130
137
  }
131
138
  async clickConfirmDeleteButton() {
@@ -32,7 +32,11 @@ class KeycloakLoginPage {
32
32
  }
33
33
  }
34
34
  async clickLogin() {
35
- await this.page.click('button[type="submit"]');
35
+ // Submitting the Keycloak form starts a redirect chain that page.click
36
+ // implicitly waits on ("waiting for scheduled navigations to finish"), so
37
+ // the action inherits the 10s actionTimeout to cover a navigation. Give it
38
+ // the navigation budget the rest of the suite uses instead.
39
+ await this.page.click('button[type="submit"]', { timeout: 60000 });
36
40
  }
37
41
  }
38
42
  exports.KeycloakLoginPage = KeycloakLoginPage;
@@ -31,10 +31,10 @@ class OptimizeHomePage {
31
31
  await this.modalCloseButton.click({ timeout: 60000 });
32
32
  }
33
33
  async clickCollectionsLink() {
34
- await this.collectionsLink.click({ timeout: 1000 });
34
+ await this.collectionsLink.click({ timeout: 60000 });
35
35
  }
36
36
  async clickDashboardLink() {
37
- await this.dashboardLink.click({ timeout: 1000 });
37
+ await this.dashboardLink.click({ timeout: 60000 });
38
38
  }
39
39
  async assertProcessHasBeenImported(processId) {
40
40
  await this.clickDashboardLink();
@@ -5,7 +5,18 @@ const SM_8_10_1 = require("../../fixtures/SM-8.10");
5
5
  const _setup_1 = require("../../test-setup.js");
6
6
  const UtilitiesPage_1 = require("../../pages/SM-8.10/UtilitiesPage");
7
7
  const sleep_1 = require("../../utils/sleep");
8
- SM_8_10_1.test.describe.configure({ mode: 'parallel' });
8
+ // Serial: the two active webhook tests both fall back to importing the
9
+ // "Webhook Connector" marketplace package (which bundles the Boundary,
10
+ // Intermediate and Message-Start template variants) when the template is not
11
+ // already revealed in the change-element popup. Connector element-template IDs
12
+ // are unique per Workspace, and both tests create their own project inside the
13
+ // same shared "Cross Component Test Project" Workspace, so importing the same
14
+ // package concurrently makes the second import fail with HTTP 400
15
+ // "Template ID already in use" (surfaced as the marketplace "Try again" state).
16
+ // Running them serially lets the first import register the templates
17
+ // Workspace-wide; the second test then reveals them directly and skips the
18
+ // import, so there is no collision.
19
+ SM_8_10_1.test.describe.configure({ mode: 'serial' });
9
20
  SM_8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
10
21
  const mtTenant = process.env.IS_MT === 'true' ? '<default>' : '';
11
22
  SM_8_10_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
@@ -245,6 +245,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
245
245
  });
246
246
  await SM_8_10_1.test.step('Open Cross Component Test Project', async () => {
247
247
  await modelerHomePage.createCrossComponentProjectFolder(credentials);
248
+ await modelerHomePage.assignWorkspaceEnvironmentAsOrgAdmin(browser);
248
249
  });
249
250
  await SM_8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
250
251
  await (0, UtilitiesPage_1.runMultipleProcesses)(page, modelerHomePage, modelerCreatePage, 2, processName, processName);
@@ -536,6 +537,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
536
537
  });
537
538
  await SM_8_10_1.test.step('Open Cross Component Test Project', async () => {
538
539
  await modelerHomePage.createCrossComponentProjectFolder(credentials);
540
+ await modelerHomePage.assignWorkspaceEnvironmentAsOrgAdmin(browser);
539
541
  });
540
542
  await SM_8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
541
543
  await (0, UtilitiesPage_1.runMultipleProcesses)(page, modelerHomePage, modelerCreatePage, 2, processName, processName);
@@ -660,6 +662,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
660
662
  });
661
663
  await SM_8_10_1.test.step('Open Cross Component Test Project', async () => {
662
664
  await modelerHomePage.createCrossComponentProjectFolder(credentials);
665
+ await modelerHomePage.assignWorkspaceEnvironmentAsOrgAdmin(browser);
663
666
  });
664
667
  await SM_8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
665
668
  await (0, UtilitiesPage_1.runMultipleProcesses)(page, modelerHomePage, modelerCreatePage, 2, processName, processName);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1264",
3
+ "version": "0.0.1266",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",