@camunda/e2e-test-suite 0.0.296 → 0.0.298

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.
@@ -225,53 +225,76 @@ class ConsoleOrganizationPage {
225
225
  await this.confirmButton.click({ timeout: 60000 });
226
226
  }
227
227
  async clickSettingsTab() {
228
- await this.settingsTab.click({ timeout: 120000 });
228
+ await this.settingsTab.click({ timeout: 30000 });
229
229
  try {
230
230
  await (0, test_1.expect)(this.page.getByRole('heading', { name: 'Alpha features' })).toBeVisible({
231
231
  timeout: 120000,
232
232
  });
233
233
  }
234
234
  catch (error) {
235
- await this.settingsTab.click({ timeout: 120000 });
235
+ await this.settingsTab.click({ timeout: 30000 });
236
236
  }
237
237
  }
238
238
  async clickOptInButton() {
239
239
  await this.optInButton.click({ timeout: 60000 });
240
240
  }
241
241
  async enableAlphaFeature(name) {
242
- await (0, test_1.expect)(this.rows.first()).toBeVisible({ timeout: 10000 });
243
- const alphaFeature = this.rows.filter({ hasText: name }).first();
244
- if ((await alphaFeature.count()) < 1) {
245
- console.error(`No alpha feature(${name}) is found.`);
246
- return;
247
- }
248
- //Opt-in The Alpha Feature
249
- const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
250
- name: 'Opt in to enable',
251
- });
252
- if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
253
- await alphaFeatureOptInButton.click({ timeout: 90000 });
254
- await this.optInAICheckbox.scrollIntoViewIfNeeded();
255
- await this.optInAICheckbox.check({ timeout: 90000 });
256
- await (0, sleep_1.sleep)(3000);
257
- }
258
- //Enable Alpha Feature
259
- const toggleText = await alphaFeature
260
- .locator('[class= "cds--toggle__text"]')
261
- .textContent();
262
- console.info(`Previous feature(${name}) setting is ${toggleText}.`);
263
- if (toggleText == 'Enabled') {
264
- console.log(`Feature ${name} is already enabled.`);
265
- return;
266
- }
267
- if (toggleText == 'Disabled') {
268
- await alphaFeature
269
- .locator('[class= "cds--toggle__switch"]')
270
- .first()
271
- .click();
272
- await (0, sleep_1.sleep)(10000);
242
+ const maxRetries = 3;
243
+ for (let retries = 0; retries < maxRetries; retries++) {
244
+ try {
245
+ await this.clickSettingsTab();
246
+ await this.optInToAlphaFeatures();
247
+ await (0, sleep_1.sleep)(30000);
248
+ await this.page.reload();
249
+ await this.clickSettingsTab();
250
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
251
+ visibilityTimeout: 15000,
252
+ totalTimeout: 90000,
253
+ postAction: async () => {
254
+ await this.page.reload();
255
+ },
256
+ });
257
+ const alphaFeature = this.rows.filter({ hasText: name }).first();
258
+ if ((await alphaFeature.count()) < 1) {
259
+ console.error(`No alpha feature(${name}) is found.`);
260
+ return;
261
+ }
262
+ //Opt-in The Alpha Feature
263
+ const alphaFeatureOptInButton = alphaFeature.getByRole('button', {
264
+ name: 'Opt in to enable',
265
+ });
266
+ if (await alphaFeatureOptInButton.isVisible({ timeout: 10000 })) {
267
+ await alphaFeatureOptInButton.click({ timeout: 20000 });
268
+ await this.optInAICheckbox.scrollIntoViewIfNeeded();
269
+ await this.optInAICheckbox.check({ timeout: 20000 });
270
+ await (0, sleep_1.sleep)(3000);
271
+ }
272
+ //Enable Alpha Feature
273
+ const toggleText = await alphaFeature
274
+ .locator('[class= "cds--toggle__text"]')
275
+ .textContent();
276
+ console.info(`Previous feature(${name}) setting is ${toggleText}.`);
277
+ if (toggleText == 'Enabled') {
278
+ console.log(`Feature ${name} is already enabled.`);
279
+ return;
280
+ }
281
+ if (toggleText == 'Disabled') {
282
+ await alphaFeature
283
+ .locator('[class= "cds--toggle__switch"]')
284
+ .first()
285
+ .click();
286
+ await (0, sleep_1.sleep)(10000);
287
+ }
288
+ await (0, test_1.expect)(alphaFeature.locator('[class= "cds--toggle__text"]')).toHaveText('Enabled');
289
+ return;
290
+ }
291
+ catch (error) {
292
+ console.error(`Click attempt ${retries + 1} failed: ${error}`);
293
+ await this.page.reload();
294
+ await (0, sleep_1.sleep)(10000);
295
+ }
273
296
  }
274
- await (0, test_1.expect)(alphaFeature.locator('[class= "cds--toggle__text"]')).toHaveText('Enabled');
297
+ throw new Error(`Failed to eanble alpha feature ${name} after ${maxRetries} attempts.`);
275
298
  }
276
299
  async scrollToOptInCheckbox() {
277
300
  await this.page.locator('.ps-contract-scroll').evaluate((el) => {
@@ -301,8 +324,8 @@ class ConsoleOrganizationPage {
301
324
  }
302
325
  async optInToAlphaFeatures() {
303
326
  await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rows.first(), {
304
- visibilityTimeout: 60000,
305
- totalTimeout: 140000,
327
+ visibilityTimeout: 20000,
328
+ totalTimeout: 90000,
306
329
  postAction: async () => {
307
330
  await this.page.reload();
308
331
  },
@@ -15,7 +15,6 @@ const UtilitiesPage_1 = require("../../pages/8.10/UtilitiesPage");
15
15
  const deleteOrg_1 = require("../../utils/deleteOrg");
16
16
  const sleep_1 = require("../../utils/sleep");
17
17
  const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
18
- const resetSession_1 = require("../../utils/resetSession");
19
18
  const users_1 = require("../../utils/users");
20
19
  const testUser = (0, users_1.getTestUser)('eleventhUser');
21
20
  _8_10_1.test.describe.configure({ mode: 'parallel' });
@@ -415,87 +414,6 @@ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
415
414
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000, false, 5);
416
415
  });
417
416
  });
418
- (0, _8_10_1.test)('Public Start Form @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, taskDetailsPage, loginPage, taskPanelPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
419
- const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
420
- const processName = 'User_Task_Process_With_Public_Form' + randomString;
421
- const formName = 'Public form' + randomString;
422
- await _8_10_1.test.step('Navigate to Web Modeler', async () => {
423
- await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
424
- timeout: 120000,
425
- });
426
- await appsPage.clickCamundaApps();
427
- await appsPage.clickModeler();
428
- await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
429
- timeout: 180000,
430
- });
431
- });
432
- await _8_10_1.test.step('Open Cross Component Test Project', async () => {
433
- await modelerHomePage.clickCrossComponentProjectFolder();
434
- });
435
- await _8_10_1.test.step('Create a Form with a Text Field', async () => {
436
- await modelerHomePage.clickDiagramTypeDropdown();
437
- await modelerHomePage.clickFormOption();
438
- await modelerHomePage.enterFormName(formName);
439
- await (0, sleep_1.sleep)(2000);
440
- await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
441
- await formJsPage.clickGeneralPropertiesPanel();
442
- await formJsPage.fillKeyInput('Public_Form_Text_Field');
443
- await formJsPage.deployForm(clusterName);
444
- });
445
- await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
446
- await modelerHomePage.clickProjectBreadcrumb();
447
- await modelerHomePage.clickDiagramTypeDropdown();
448
- await modelerHomePage.clickBpmnTemplateOption();
449
- });
450
- await _8_10_1.test.step('Create BPMN Diagram with a Public Start Form and Deploy the Process', async () => {
451
- await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
452
- await modelerCreatePage.linkFormToStartEvent(formName);
453
- await modelerCreatePage.enablePublicAccessIfDisabled();
454
- await modelerCreatePage.deployDiagram(clusterName);
455
- await (0, sleep_1.sleep)(5000);
456
- });
457
- let publicFormLink;
458
- await _8_10_1.test.step('Enable Public Access and Get Publication Link', async () => {
459
- publicFormLink = await modelerCreatePage.getPublicationLink();
460
- await (0, sleep_1.sleep)(1000);
461
- });
462
- await _8_10_1.test.step('Clear Cookies and Reset Session', async () => {
463
- await (0, resetSession_1.resetSession)(browser, page);
464
- });
465
- await _8_10_1.test.step('Access Public Form After Session Reset and Submit the Form', async () => {
466
- console.log('Navigating to public form:', publicFormLink);
467
- await page.goto(publicFormLink);
468
- await (0, test_1.expect)(taskDetailsPage.textInput).toBeVisible({
469
- timeout: 30000,
470
- });
471
- await taskDetailsPage.fillTextInput('Public Form Test Value');
472
- await taskDetailsPage.clickSubmitButton();
473
- await (0, test_1.expect)(page.getByRole('heading', { name: 'Success!' })).toBeVisible({
474
- timeout: 30000,
475
- });
476
- });
477
- await _8_10_1.test.step('Login to Tasklist and Check User Task Has the Correct Input Values and Can Be Completed', async () => {
478
- await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, 5000);
479
- await appsPage.clickCamundaApps();
480
- await appsPage.clickTasklist(clusterName);
481
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, taskPanelPage.taskListPageBanner, 'Tasklist banner');
482
- await taskPanelPage.openTask(processName);
483
- await (0, test_1.expect)(page
484
- .getByRole('row')
485
- .filter({ hasText: 'Public_Form_Text_Field' })
486
- .getByText('"Public Form Test Value"')).toBeVisible({ timeout: 30000 });
487
- await taskDetailsPage.clickAssignToMeButton();
488
- await taskDetailsPage.clickCompleteTaskButton();
489
- });
490
- await _8_10_1.test.step('Assert Process Instance is Completed in Operate', async () => {
491
- await appsPage.clickCamundaApps();
492
- await appsPage.clickOperate(clusterName);
493
- await operateHomePage.clickProcessesTab();
494
- await operateProcessesPage.clickProcessCompletedCheckbox();
495
- await operateProcessesPage.clickProcessInstanceLink(processName);
496
- await operateProcessInstancePage.assertProcessCompleteStatusWithRetry(40000);
497
- });
498
- });
499
417
  (0, _8_10_1.test)('Conditional Events - Deploy, verify in Operate and verify process in Optimize dashboard @tasklistV2', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
500
418
  _8_10_1.test.slow();
501
419
  const bpmnFileName = 'Conditional_Events_All.bpmn';
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const test_1 = require("@playwright/test");
4
4
  const _8_9_1 = require("../../fixtures/8.9");
5
5
  const _setup_1 = require("../../test-setup.js");
6
- const sleep_1 = require("../../utils/sleep");
7
6
  const connectorSecrets_1 = require("../../utils/connectorSecrets");
8
7
  const mcpSecrets_1 = require("../../utils/mcpSecrets");
9
8
  const UtilitiesPage_1 = require("../../pages/8.9/UtilitiesPage");
@@ -21,11 +20,6 @@ _8_9_1.test.describe('Cluster Setup Tests', () => {
21
20
  await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, users_1.testUsers.mainUser, (testInfo.workerIndex + 1) * 1000);
22
21
  await homePage.clickOrganization();
23
22
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, consoleOrganizationsPage.settingsTab, 'settings tab', 60000, false, 2);
24
- await consoleOrganizationsPage.clickSettingsTab();
25
- await consoleOrganizationsPage.optInToAlphaFeatures();
26
- await (0, sleep_1.sleep)(30000);
27
- await page.reload();
28
- await consoleOrganizationsPage.clickSettingsTab();
29
23
  await consoleOrganizationsPage.enableAlphaFeature('AI-powered features');
30
24
  });
31
25
  (0, _8_9_1.test)('Create Default Cluster', async ({ page, loginPage, homePage, clusterPage, clusterDetailsPage, clusterSecretsPage, }, testInfo) => {
@@ -415,7 +415,8 @@ _8_9_1.test.describe('Web Modeler User Flow Tests', () => {
415
415
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000, false, 5);
416
416
  });
417
417
  });
418
- (0, _8_9_1.test)('Public Start Form @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, taskDetailsPage, loginPage, taskPanelPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
418
+ //Skipped due to bug 22577: https://github.com/camunda/camunda-hub/issues/22577
419
+ _8_9_1.test.skip('Public Start Form @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, taskDetailsPage, loginPage, taskPanelPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
419
420
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
420
421
  const processName = 'User_Task_Process_With_Public_Form' + randomString;
421
422
  const formName = 'Public form' + randomString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.296",
3
+ "version": "0.0.298",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",