@camunda/e2e-test-suite 0.0.179 → 0.0.181

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.
@@ -363,6 +363,7 @@ class ModelerCreatePage {
363
363
  }
364
364
  }
365
365
  async switchToPlay() {
366
+ await (0, test_1.expect)(this.playTab).toBeVisible();
366
367
  await this.playTab.click();
367
368
  }
368
369
  async clickGeneralPropertiesPanel() {
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModelerHomePage = 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 ModelerHomePage {
7
8
  page;
8
9
  defaultFolderName = 'Cross Component Test Project';
@@ -81,7 +82,10 @@ class ModelerHomePage {
81
82
  });
82
83
  }
83
84
  async clickCreateNewProjectButton() {
84
- await this.createNewProjectButton.click({ timeout: 60000 });
85
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.createNewProjectButton, {
86
+ totalTimeout: 30000,
87
+ });
88
+ await this.createNewProjectButton.click();
85
89
  }
86
90
  async enterNewProjectName(name) {
87
91
  await this.projectNameInput.click({ timeout: 60000 });
@@ -16,6 +16,9 @@ declare class PlayPage {
16
16
  readonly startInstanceWithCachedButton: Locator;
17
17
  readonly notifications: Locator;
18
18
  readonly saveScenarioModal: Locator;
19
+ readonly loadingInstanceDetailsText: Locator;
20
+ readonly retryButton: Locator;
21
+ readonly dialog: Locator;
19
22
  constructor(page: Page);
20
23
  waitForCompleteJobButtonToBeAvailable(): Promise<void>;
21
24
  clickCompleteJobButton(): Promise<void>;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlayPage = 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
  const maxWaitTimeSeconds = 180000;
7
8
  class PlayPage {
8
9
  page;
@@ -21,8 +22,12 @@ class PlayPage {
21
22
  startInstanceWithCachedButton;
22
23
  notifications;
23
24
  saveScenarioModal;
25
+ loadingInstanceDetailsText;
26
+ retryButton;
27
+ dialog;
24
28
  constructor(page) {
25
29
  this.page = page;
30
+ this.dialog = page.getByRole('dialog');
26
31
  this.completeJobButton = page
27
32
  .getByTestId('diagram')
28
33
  .getByLabel('Complete job');
@@ -53,6 +58,8 @@ class PlayPage {
53
58
  this.startInstanceWithCachedButton = page.getByLabel('Start instance with cached');
54
59
  this.notifications = page.locator('.cds--toast-notification');
55
60
  this.saveScenarioModal = page.getByTestId('save-scenario-modal');
61
+ this.loadingInstanceDetailsText = this.page.getByText('Loading instance details...');
62
+ this.retryButton = this.page.getByRole('button', { name: 'Retry' });
56
63
  }
57
64
  async waitForCompleteJobButtonToBeAvailable() {
58
65
  await (0, test_1.expect)(this.completeJobButton).toBeVisible({
@@ -63,12 +70,19 @@ class PlayPage {
63
70
  await this.completeJobButton.click();
64
71
  }
65
72
  async clickStartInstanceButton() {
66
- await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
67
73
  const maxRetries = 3;
68
74
  let attempts = 0;
69
75
  while (attempts < maxRetries) {
70
76
  try {
71
- await this.startInstanceButton.click({ timeout: 30000 });
77
+ await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
78
+ await this.startInstanceButton
79
+ .or(this.startInstanceWithCachedButton)
80
+ .first()
81
+ .click({ timeout: 30000 });
82
+ await (0, test_1.expect)(this.loadingInstanceDetailsText).toBeVisible();
83
+ await (0, test_1.expect)(this.loadingInstanceDetailsText).not.toBeVisible({
84
+ timeout: 60000,
85
+ });
72
86
  return;
73
87
  }
74
88
  catch (error) {
@@ -123,9 +137,21 @@ class PlayPage {
123
137
  }
124
138
  }
125
139
  async waitForNextElementToBeActive(historyItem) {
126
- await (0, test_1.expect)(this.page.getByText(new RegExp(`^${historyItem}`, 'i'))).toBeVisible({
127
- timeout: maxWaitTimeSeconds,
128
- });
140
+ const locator = this.page.getByText(new RegExp(`^${historyItem}`, 'i'));
141
+ const maxRetries = 6; // ~1 min with the waits below
142
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
143
+ try {
144
+ await (0, test_1.expect)(locator.first()).toBeVisible({ timeout: 20000 });
145
+ return;
146
+ }
147
+ catch (e) {
148
+ if (attempt === maxRetries)
149
+ throw e;
150
+ await this.page.reload();
151
+ await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
152
+ await this.page.waitForTimeout(5000);
153
+ }
154
+ }
129
155
  }
130
156
  async waitForProcessToBeCompleted() {
131
157
  await (0, test_1.expect)(this.page.getByText('Completed')).toBeVisible({
@@ -135,12 +161,15 @@ class PlayPage {
135
161
  async clickSaveScenarioButton() {
136
162
  await this.notifications
137
163
  .first()
138
- .waitFor({ state: 'hidden', timeout: 15000 })
164
+ .waitFor({ state: 'hidden', timeout: 60000 })
139
165
  .catch(() => { });
140
166
  const isModalVisible = await this.saveScenarioModal
141
167
  .isVisible()
142
168
  .catch(() => false);
143
169
  if (!isModalVisible) {
170
+ await (0, sleep_1.sleep)(3000);
171
+ await (0, test_1.expect)(this.saveScenarioButton).toBeVisible({ timeout: 30000 });
172
+ await (0, test_1.expect)(this.saveScenarioButton).toBeEnabled({ timeout: 30000 });
144
173
  await this.saveScenarioButton.click({ force: true, timeout: 30000 });
145
174
  }
146
175
  }
@@ -148,9 +177,12 @@ class PlayPage {
148
177
  await this.viewScenarioButton.click();
149
178
  }
150
179
  async enterScenarioName(scenarioName) {
151
- const modal = this.page.locator('[data-testid="save-scenario-modal"].is-visible');
152
- await modal.waitFor({ state: 'visible', timeout: 10000 });
153
- const input = modal.locator('input#scenario-name');
180
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.dialog, {
181
+ postAction: async () => {
182
+ await this.saveScenarioButton.click({ timeout: 30000 });
183
+ },
184
+ });
185
+ const input = this.dialog.locator('input#scenario-name');
154
186
  await input.waitFor({ state: 'visible', timeout: 10000 });
155
187
  await input.clear();
156
188
  await input.fill(scenarioName);
@@ -159,6 +191,7 @@ class PlayPage {
159
191
  await this.enterScenarioNameInput.fill(newScenarioName);
160
192
  }
161
193
  async clickViewAllScenariosButton() {
194
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.viewAllScenariosButton);
162
195
  await this.viewAllScenariosButton.click();
163
196
  }
164
197
  async confirmSaveScenario() {
@@ -188,9 +221,17 @@ class PlayPage {
188
221
  await publishIcon.click({ timeout: 30000 });
189
222
  }
190
223
  async assertScenarioCompleted(scenarioName) {
191
- await (0, test_1.expect)(this.page
224
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.page
192
225
  .locator('tr', { hasText: scenarioName })
193
- .locator('text=Completed')).toBeVisible({ timeout: 30000 });
226
+ .locator('text=Completed'), {
227
+ totalTimeout: 90000,
228
+ visibilityTimeout: 20000,
229
+ postAction: async () => {
230
+ if (await this.retryButton.isVisible()) {
231
+ await this.retryButton.click();
232
+ }
233
+ },
234
+ });
194
235
  }
195
236
  }
196
237
  exports.PlayPage = PlayPage;
@@ -365,6 +365,7 @@ class ModelerCreatePage {
365
365
  }
366
366
  }
367
367
  async switchToPlay() {
368
+ await (0, test_1.expect)(this.playTab).toBeVisible();
368
369
  await this.playTab.click();
369
370
  }
370
371
  async clickGeneralPropertiesPanel() {
@@ -69,7 +69,10 @@ class ModelerHomePage {
69
69
  this.closeButton = page.getByRole('button', { name: 'Got it - Dismiss' });
70
70
  }
71
71
  async clickCreateNewProjectButton() {
72
- await this.createNewProjectButton.click({ timeout: 60000 });
72
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.createNewProjectButton, {
73
+ totalTimeout: 30000,
74
+ });
75
+ await this.createNewProjectButton.click();
73
76
  }
74
77
  async enterNewProjectName(name) {
75
78
  await this.projectNameInput.click({ timeout: 60000 });
@@ -16,6 +16,9 @@ declare class PlayPage {
16
16
  readonly startInstanceWithCachedButton: Locator;
17
17
  readonly notifications: Locator;
18
18
  readonly saveScenarioModal: Locator;
19
+ readonly loadingInstanceDetailsText: Locator;
20
+ readonly retryButton: Locator;
21
+ readonly dialog: Locator;
19
22
  constructor(page: Page);
20
23
  waitForCompleteJobButtonToBeAvailable(): Promise<void>;
21
24
  clickCompleteJobButton(): Promise<void>;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PlayPage = 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
  const maxWaitTimeSeconds = 180000;
7
8
  class PlayPage {
8
9
  page;
@@ -21,8 +22,12 @@ class PlayPage {
21
22
  startInstanceWithCachedButton;
22
23
  notifications;
23
24
  saveScenarioModal;
25
+ loadingInstanceDetailsText;
26
+ retryButton;
27
+ dialog;
24
28
  constructor(page) {
25
29
  this.page = page;
30
+ this.dialog = page.getByRole('dialog');
26
31
  this.completeJobButton = page
27
32
  .getByTestId('diagram')
28
33
  .getByLabel('Complete job');
@@ -53,6 +58,8 @@ class PlayPage {
53
58
  this.startInstanceWithCachedButton = page.getByLabel('Start instance with cached');
54
59
  this.notifications = page.locator('.cds--toast-notification');
55
60
  this.saveScenarioModal = page.getByTestId('save-scenario-modal');
61
+ this.loadingInstanceDetailsText = this.page.getByText('Loading instance details...');
62
+ this.retryButton = this.page.getByRole('button', { name: 'Retry' });
56
63
  }
57
64
  async waitForCompleteJobButtonToBeAvailable() {
58
65
  await (0, test_1.expect)(this.completeJobButton).toBeVisible({
@@ -63,12 +70,19 @@ class PlayPage {
63
70
  await this.completeJobButton.click();
64
71
  }
65
72
  async clickStartInstanceButton() {
66
- await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
67
73
  const maxRetries = 3;
68
74
  let attempts = 0;
69
75
  while (attempts < maxRetries) {
70
76
  try {
71
- await this.startInstanceButton.click({ timeout: 30000 });
77
+ await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
78
+ await this.startInstanceButton
79
+ .or(this.startInstanceWithCachedButton)
80
+ .first()
81
+ .click({ timeout: 30000 });
82
+ await (0, test_1.expect)(this.loadingInstanceDetailsText).toBeVisible();
83
+ await (0, test_1.expect)(this.loadingInstanceDetailsText).not.toBeVisible({
84
+ timeout: 60000,
85
+ });
72
86
  return;
73
87
  }
74
88
  catch (error) {
@@ -123,9 +137,21 @@ class PlayPage {
123
137
  }
124
138
  }
125
139
  async waitForNextElementToBeActive(historyItem) {
126
- await (0, test_1.expect)(this.page.getByText(new RegExp(`^${historyItem}`, 'i'))).toBeVisible({
127
- timeout: maxWaitTimeSeconds,
128
- });
140
+ const locator = this.page.getByText(new RegExp(`^${historyItem}`, 'i'));
141
+ const maxRetries = 6; // ~1 min with the waits below
142
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
143
+ try {
144
+ await (0, test_1.expect)(locator.first()).toBeVisible({ timeout: 20000 });
145
+ return;
146
+ }
147
+ catch (e) {
148
+ if (attempt === maxRetries)
149
+ throw e;
150
+ await this.page.reload();
151
+ await this.diagram.waitFor({ state: 'visible', timeout: 30000 });
152
+ await this.page.waitForTimeout(5000);
153
+ }
154
+ }
129
155
  }
130
156
  async waitForProcessToBeCompleted() {
131
157
  await (0, test_1.expect)(this.page.getByText('Completed')).toBeVisible({
@@ -135,12 +161,15 @@ class PlayPage {
135
161
  async clickSaveScenarioButton() {
136
162
  await this.notifications
137
163
  .first()
138
- .waitFor({ state: 'hidden', timeout: 15000 })
164
+ .waitFor({ state: 'hidden', timeout: 60000 })
139
165
  .catch(() => { });
140
166
  const isModalVisible = await this.saveScenarioModal
141
167
  .isVisible()
142
168
  .catch(() => false);
143
169
  if (!isModalVisible) {
170
+ await (0, sleep_1.sleep)(3000);
171
+ await (0, test_1.expect)(this.saveScenarioButton).toBeVisible({ timeout: 30000 });
172
+ await (0, test_1.expect)(this.saveScenarioButton).toBeEnabled({ timeout: 30000 });
144
173
  await this.saveScenarioButton.click({ force: true, timeout: 30000 });
145
174
  }
146
175
  }
@@ -148,9 +177,12 @@ class PlayPage {
148
177
  await this.viewScenarioButton.click();
149
178
  }
150
179
  async enterScenarioName(scenarioName) {
151
- const modal = this.page.locator('[data-testid="save-scenario-modal"].is-visible');
152
- await modal.waitFor({ state: 'visible', timeout: 10000 });
153
- const input = modal.locator('input#scenario-name');
180
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.dialog, {
181
+ postAction: async () => {
182
+ await this.saveScenarioButton.click({ timeout: 30000 });
183
+ },
184
+ });
185
+ const input = this.dialog.locator('input#scenario-name');
154
186
  await input.waitFor({ state: 'visible', timeout: 10000 });
155
187
  await input.clear();
156
188
  await input.fill(scenarioName);
@@ -159,6 +191,7 @@ class PlayPage {
159
191
  await this.enterScenarioNameInput.fill(newScenarioName);
160
192
  }
161
193
  async clickViewAllScenariosButton() {
194
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.viewAllScenariosButton);
162
195
  await this.viewAllScenariosButton.click();
163
196
  }
164
197
  async confirmSaveScenario() {
@@ -188,9 +221,17 @@ class PlayPage {
188
221
  await publishIcon.click({ timeout: 30000 });
189
222
  }
190
223
  async assertScenarioCompleted(scenarioName) {
191
- await (0, test_1.expect)(this.page
224
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.page
192
225
  .locator('tr', { hasText: scenarioName })
193
- .locator('text=Completed')).toBeVisible({ timeout: 30000 });
226
+ .locator('text=Completed'), {
227
+ totalTimeout: 90000,
228
+ visibilityTimeout: 20000,
229
+ postAction: async () => {
230
+ if (await this.retryButton.isVisible()) {
231
+ await this.retryButton.click();
232
+ }
233
+ },
234
+ });
194
235
  }
195
236
  }
196
237
  exports.PlayPage = PlayPage;
@@ -78,6 +78,8 @@ SM_8_8_1.test.describe('Deploy and run a process in Play', () => {
78
78
  SM_8_8_1.test.slow();
79
79
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
80
80
  const processName = 'Play_Test_Process' + randomString;
81
+ const scenarioName = 'My first scenario' + randomString;
82
+ const updatedScenarioName = 'My first scenario-updated' + randomString;
81
83
  await SM_8_8_1.test.step('Open Cross Component Test Project', async () => {
82
84
  await modelerHomePage.clickCrossComponentProjectFolder();
83
85
  });
@@ -90,10 +92,11 @@ SM_8_8_1.test.describe('Deploy and run a process in Play', () => {
90
92
  timeout: 120000,
91
93
  });
92
94
  await modelerCreatePage.enterDiagramName(processName);
93
- await (0, sleep_1.sleep)(2000);
95
+ await modelerCreatePage.addParallelUserTasks(1, 'zeebe-user-task' + randomString);
96
+ await modelerCreatePage.clickSecondPlacedGateway();
94
97
  await modelerCreatePage.clickAppendElementButton();
95
- await modelerCreatePage.clickAppendEndEventButton();
96
- await (0, sleep_1.sleep)(2000);
98
+ await modelerCreatePage.clickAppendEndEventButton('parallelGateway');
99
+ await (0, sleep_1.sleep)(5000);
97
100
  });
98
101
  await SM_8_8_1.test.step('Open Play', async () => {
99
102
  await modelerCreatePage.switchToPlay();
@@ -103,50 +106,47 @@ SM_8_8_1.test.describe('Deploy and run a process in Play', () => {
103
106
  await playPage.dismissStartModal();
104
107
  await playPage.clickStartInstanceButton();
105
108
  await playPage.waitForInstanceDetailsToBeLoaded();
109
+ await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString + '1');
110
+ await playPage.waitForCompleteJobButtonToBeAvailable();
111
+ await playPage.clickCompleteJobButton();
106
112
  await playPage.waitForProcessToBeCompleted();
107
113
  await playPage.clickSaveScenarioButton();
108
- await playPage.enterScenarioName('My first scenario');
114
+ await playPage.enterScenarioName(scenarioName);
109
115
  await playPage.confirmSaveScenario();
110
116
  await (0, sleep_1.sleep)(2000);
111
117
  });
112
118
  await SM_8_8_1.test.step('Update the saved scenario', async () => {
113
119
  await modelerCreatePage.switchToImplementTab();
114
120
  await (0, sleep_1.sleep)(2000);
115
- await modelerCreatePage.clickStartEvent();
116
- await modelerCreatePage.hoverOnStartEvent();
117
- await modelerCreatePage.clickAppendTaskButton();
118
- await modelerCreatePage.clickChangeTypeButton();
119
- await modelerCreatePage.clickUserTaskOption();
120
- await modelerCreatePage.chooseImplementationOption('zeebeUserTask');
121
- await modelerCreatePage.clickGeneralPropertiesPanel();
122
- await modelerCreatePage.clickElemendIdInput();
123
- await modelerCreatePage.fillElementIdInput('zeebe-user-task' + randomString);
124
- await (0, sleep_1.sleep)(2000);
121
+ await modelerCreatePage.clickFirstPlacedGateway();
125
122
  await modelerCreatePage.clickAppendElementButton();
126
- await modelerCreatePage.clickAppendEndEventButton();
123
+ await modelerCreatePage.clickAppendTaskButton();
124
+ await modelerCreatePage.clickConnectToOtherElementButton();
125
+ await modelerCreatePage.clickSecondPlacedGateway();
126
+ await (0, sleep_1.sleep)(5000);
127
127
  await modelerCreatePage.switchToPlay();
128
128
  await modelerCreatePage.clickContinueToPlay();
129
- await (0, sleep_1.sleep)(2000);
130
- await playPage.clickStartInstanceWithCachedButton();
131
- await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString);
129
+ await (0, sleep_1.sleep)(5000);
130
+ await playPage.clickStartInstanceButton();
131
+ await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString + '1');
132
132
  await playPage.waitForCompleteJobButtonToBeAvailable();
133
133
  await playPage.clickCompleteJobButton();
134
134
  await playPage.waitForProcessToBeCompleted();
135
135
  await playPage.clickSaveScenarioButton();
136
- await playPage.enterScenarioName('My first scenario-updated');
136
+ await playPage.enterScenarioName(updatedScenarioName);
137
137
  await playPage.confirmSaveScenario();
138
- await modelerCreatePage.assertScenarioNameVisible('My first scenario-updated');
138
+ await modelerCreatePage.assertScenarioNameVisible(updatedScenarioName);
139
139
  });
140
140
  await SM_8_8_1.test.step('Run all scenarios', async () => {
141
141
  await playPage.clickViewAllScenariosButton();
142
142
  await playPage.clickRunAllScenariosButton();
143
- await playPage.assertScenarioCompleted('My first scenario');
144
- await playPage.assertScenarioCompleted('My first scenario-updated');
143
+ await playPage.assertScenarioCompleted(scenarioName);
144
+ await playPage.assertScenarioCompleted(updatedScenarioName);
145
145
  });
146
146
  await SM_8_8_1.test.step('Delete test scenario', async () => {
147
- await playPage.deleteScenario('My first scenario');
147
+ await playPage.deleteScenario(scenarioName);
148
148
  await playPage.confirmDeleteScenario();
149
- await (0, test_1.expect)(playPage.getScenarioRow('My first scenario')).toHaveCount(0);
149
+ await (0, test_1.expect)(playPage.getScenarioRow(scenarioName)).toHaveCount(0);
150
150
  });
151
151
  });
152
152
  });
@@ -78,6 +78,8 @@ SM_8_9_1.test.describe('Deploy and run a process in Play', () => {
78
78
  SM_8_9_1.test.slow();
79
79
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
80
80
  const processName = 'Play_Test_Process' + randomString;
81
+ const scenarioName = 'My first scenario' + randomString;
82
+ const updatedScenarioName = 'My first scenario-updated' + randomString;
81
83
  await SM_8_9_1.test.step('Open Cross Component Test Project', async () => {
82
84
  await modelerHomePage.clickCrossComponentProjectFolder();
83
85
  });
@@ -90,10 +92,11 @@ SM_8_9_1.test.describe('Deploy and run a process in Play', () => {
90
92
  timeout: 120000,
91
93
  });
92
94
  await modelerCreatePage.enterDiagramName(processName);
93
- await (0, sleep_1.sleep)(2000);
95
+ await modelerCreatePage.addParallelUserTasks(1, 'zeebe-user-task' + randomString);
96
+ await modelerCreatePage.clickSecondPlacedGateway();
94
97
  await modelerCreatePage.clickAppendElementButton();
95
- await modelerCreatePage.clickAppendEndEventButton();
96
- await (0, sleep_1.sleep)(2000);
98
+ await modelerCreatePage.clickAppendEndEventButton('parallelGateway');
99
+ await (0, sleep_1.sleep)(5000);
97
100
  });
98
101
  await SM_8_9_1.test.step('Open Play', async () => {
99
102
  await modelerCreatePage.switchToPlay();
@@ -103,50 +106,47 @@ SM_8_9_1.test.describe('Deploy and run a process in Play', () => {
103
106
  await playPage.dismissStartModal();
104
107
  await playPage.clickStartInstanceButton();
105
108
  await playPage.waitForInstanceDetailsToBeLoaded();
109
+ await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString + '1');
110
+ await playPage.waitForCompleteJobButtonToBeAvailable();
111
+ await playPage.clickCompleteJobButton();
106
112
  await playPage.waitForProcessToBeCompleted();
107
113
  await playPage.clickSaveScenarioButton();
108
- await playPage.enterScenarioName('My first scenario');
114
+ await playPage.enterScenarioName(scenarioName);
109
115
  await playPage.confirmSaveScenario();
110
116
  await (0, sleep_1.sleep)(2000);
111
117
  });
112
118
  await SM_8_9_1.test.step('Update the saved scenario', async () => {
113
119
  await modelerCreatePage.switchToImplementTab();
114
120
  await (0, sleep_1.sleep)(2000);
115
- await modelerCreatePage.clickStartEvent();
116
- await modelerCreatePage.hoverOnStartEvent();
117
- await modelerCreatePage.clickAppendTaskButton();
118
- await modelerCreatePage.clickChangeTypeButton();
119
- await modelerCreatePage.clickUserTaskOption();
120
- await modelerCreatePage.chooseImplementationOption('zeebeUserTask');
121
- await modelerCreatePage.clickGeneralPropertiesPanel();
122
- await modelerCreatePage.clickElemendIdInput();
123
- await modelerCreatePage.fillElementIdInput('zeebe-user-task' + randomString);
124
- await (0, sleep_1.sleep)(2000);
121
+ await modelerCreatePage.clickFirstPlacedGateway();
125
122
  await modelerCreatePage.clickAppendElementButton();
126
- await modelerCreatePage.clickAppendEndEventButton();
123
+ await modelerCreatePage.clickAppendTaskButton();
124
+ await modelerCreatePage.clickConnectToOtherElementButton();
125
+ await modelerCreatePage.clickSecondPlacedGateway();
126
+ await (0, sleep_1.sleep)(5000);
127
127
  await modelerCreatePage.switchToPlay();
128
128
  await modelerCreatePage.clickContinueToPlay();
129
- await (0, sleep_1.sleep)(2000);
130
- await playPage.clickStartInstanceWithCachedButton();
131
- await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString);
129
+ await (0, sleep_1.sleep)(5000);
130
+ await playPage.clickStartInstanceButton();
131
+ await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString + '1');
132
132
  await playPage.waitForCompleteJobButtonToBeAvailable();
133
133
  await playPage.clickCompleteJobButton();
134
134
  await playPage.waitForProcessToBeCompleted();
135
135
  await playPage.clickSaveScenarioButton();
136
- await playPage.enterScenarioName('My first scenario-updated');
136
+ await playPage.enterScenarioName(updatedScenarioName);
137
137
  await playPage.confirmSaveScenario();
138
- await modelerCreatePage.assertScenarioNameVisible('My first scenario-updated');
138
+ await modelerCreatePage.assertScenarioNameVisible(updatedScenarioName);
139
139
  });
140
140
  await SM_8_9_1.test.step('Run all scenarios', async () => {
141
141
  await playPage.clickViewAllScenariosButton();
142
142
  await playPage.clickRunAllScenariosButton();
143
- await playPage.assertScenarioCompleted('My first scenario');
144
- await playPage.assertScenarioCompleted('My first scenario-updated');
143
+ await playPage.assertScenarioCompleted(scenarioName);
144
+ await playPage.assertScenarioCompleted(updatedScenarioName);
145
145
  });
146
146
  await SM_8_9_1.test.step('Delete test scenario', async () => {
147
- await playPage.deleteScenario('My first scenario');
147
+ await playPage.deleteScenario(scenarioName);
148
148
  await playPage.confirmDeleteScenario();
149
- await (0, test_1.expect)(playPage.getScenarioRow('My first scenario')).toHaveCount(0);
149
+ await (0, test_1.expect)(playPage.getScenarioRow(scenarioName)).toHaveCount(0);
150
150
  });
151
151
  });
152
152
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.179",
3
+ "version": "0.0.181",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",