@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.
@@ -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 = page.getByRole('button', {
46
- name: 'Create new Cluster',
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 the');
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-in to enable',
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
- .getByText('Access and Use of the Camunda')
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.createNewClusterButton = page.getByRole('button', {
42
- name: 'Create new Cluster',
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 the');
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
- .getByText('Access and Use of the Camunda')
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-in to enable',
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.createNewClusterButton = page.getByRole('button', {
43
- name: 'Create new Cluster',
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 the');
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-in to enable',
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
- .getByText('Access and Use of the Camunda')
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.createNewClusterButton = page.getByRole('button', {
47
- name: 'Create new Cluster',
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 the');
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-in to enable',
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
- .getByText('Access and Use of the Camunda')
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.createNewClusterButton = page.getByRole('button', {
46
- name: 'Create new Cluster',
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 the');
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-in to enable',
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
- .getByText('Access and Use of the Camunda')
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();
@@ -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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.265",
3
+ "version": "0.0.267",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",