@camunda/e2e-test-suite 0.0.412 → 0.0.413

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.
@@ -25,10 +25,13 @@ class OperateProcessInstancePage {
25
25
  .getByTestId('INCIDENT-icon');
26
26
  }
27
27
  async connectorResultVariableName(name) {
28
- return await this.page.getByTestId(name);
28
+ return this.page.getByTestId('variable-' + name);
29
29
  }
30
30
  async connectorResultVariableValue(variableName) {
31
- return await this.page.getByTestId(variableName).locator('td').last();
31
+ return this.page
32
+ .getByTestId('variable-' + variableName)
33
+ .locator('td')
34
+ .last();
32
35
  }
33
36
  async completedIconAssertion() {
34
37
  let retryCount = 0;
@@ -51,6 +51,7 @@ class OperateProcessesPage {
51
51
  this.gotItButton = page.getByRole('button', { name: 'Got it' });
52
52
  }
53
53
  async checkCheckbox(checkbox) {
54
+ await checkbox.waitFor({ state: 'visible', timeout: constants_1._1_SECOND_IN_MS * 10 });
54
55
  if (!(await checkbox.isChecked())) {
55
56
  await checkbox.click();
56
57
  await (0, test_1.expect)(checkbox).toBeChecked({
@@ -78,6 +79,10 @@ class OperateProcessesPage {
78
79
  async toggleActiveCheckboxOn() {
79
80
  await this.uncheckCompletedCheckbox();
80
81
  await this.clickProcessIncidentsCheckbox();
82
+ await this.processActiveCheckbox.waitFor({
83
+ state: 'visible',
84
+ timeout: constants_1._1_SECOND_IN_MS * 10,
85
+ });
81
86
  if (await this.processActiveCheckbox.isChecked({ timeout: constants_1._1_SECOND_IN_MS })) {
82
87
  await this.uncheckCheckbox(this.processActiveCheckbox);
83
88
  await (0, sleep_1.sleep)(200); // Required to skip the debounce protection on the frontend
@@ -90,6 +95,10 @@ class OperateProcessesPage {
90
95
  async toggleCompletedCheckbox() {
91
96
  await this.uncheckActiveCheckbox();
92
97
  await this.clickProcessIncidentsCheckbox();
98
+ await this.processCompletedCheckbox.waitFor({
99
+ state: 'visible',
100
+ timeout: constants_1._1_SECOND_IN_MS * 10,
101
+ });
93
102
  if (await this.processCompletedCheckbox.isChecked({ timeout: constants_1._1_SECOND_IN_MS })) {
94
103
  await this.uncheckCheckbox(this.processCompletedCheckbox);
95
104
  await (0, sleep_1.sleep)(200); // Required to skip the debounce protection on the frontend
@@ -122,22 +131,42 @@ class OperateProcessesPage {
122
131
  }
123
132
  }
124
133
  async clickProcessActiveCheckbox() {
134
+ await this.processActiveCheckbox.waitFor({
135
+ state: 'visible',
136
+ timeout: constants_1._1_SECOND_IN_MS * 10,
137
+ });
125
138
  if (!(await this.processActiveCheckbox.isChecked({ timeout: 60000 }))) {
126
139
  await this.processActiveCheckbox.click({ timeout: 120000 });
127
140
  }
128
141
  }
129
142
  async clickProcessCompletedCheckbox() {
143
+ await this.processCompletedCheckbox.waitFor({
144
+ state: 'visible',
145
+ timeout: constants_1._1_SECOND_IN_MS * 10,
146
+ });
130
147
  if (!(await this.processCompletedCheckbox.isChecked({ timeout: 60000 }))) {
131
148
  await this.processCompletedCheckbox.click({ timeout: 120000 });
132
149
  }
133
150
  }
134
151
  async clickProcessIncidentsCheckbox() {
152
+ await this.processIncidentsCheckbox.waitFor({
153
+ state: 'visible',
154
+ timeout: constants_1._1_SECOND_IN_MS * 10,
155
+ });
135
156
  await this.processIncidentsCheckbox.click({ timeout: 90000 });
136
157
  }
137
158
  async clickRunningProcessInstancesCheckbox() {
159
+ await this.processRunningInstancesCheckbox.waitFor({
160
+ state: 'visible',
161
+ timeout: constants_1._1_SECOND_IN_MS * 10,
162
+ });
138
163
  await this.processRunningInstancesCheckbox.click({ timeout: 90000 });
139
164
  }
140
165
  async clickFinishedProcessInstancesCheckbox() {
166
+ await this.processFinishedInstancesCheckbox.waitFor({
167
+ state: 'visible',
168
+ timeout: constants_1._1_SECOND_IN_MS * 10,
169
+ });
141
170
  await this.processFinishedInstancesCheckbox.click({ timeout: 90000 });
142
171
  }
143
172
  async clickProcessInstanceLink(processName, type = 'active') {
@@ -169,6 +198,26 @@ class OperateProcessesPage {
169
198
  await this.page.reload();
170
199
  await this.page.waitForLoadState('networkidle');
171
200
  await (0, sleep_1.sleep)(2000);
201
+ // After reload, check if page redirected away from Operate
202
+ if (!this.page.url().includes('/operate')) {
203
+ const operatePath = (process.env.ORCHESTRATION_CONTEXT_PATH ?? '/orchestration') +
204
+ '/operate';
205
+ await this.page.goto(operatePath, { timeout: 30000 });
206
+ await this.page.waitForLoadState('networkidle');
207
+ await (0, sleep_1.sleep)(2000);
208
+ }
209
+ try {
210
+ if (type === 'active') {
211
+ await this.toggleActiveCheckboxOn();
212
+ }
213
+ else {
214
+ await this.toggleCompletedCheckbox();
215
+ }
216
+ }
217
+ catch (toggleErr) {
218
+ // Toggle may fail if page state is unexpected; continue to next retry
219
+ console.log(`Checkbox toggle failed after reload: ${String(toggleErr)}`);
220
+ }
172
221
  }
173
222
  }
174
223
  throw new Error(`Failed to open instance "${processName}" after ${MAX_ATTEMPTS} attempts. Last error: ${String(lastError)}`);
@@ -37,7 +37,7 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
37
37
  await (0, test_1.expect)(page.getByTestId('variables-list')).toBeVisible({
38
38
  timeout: 30000,
39
39
  });
40
- (0, test_1.expect)((await operateProcessInstancePage.connectorResultVariableName('status')).isVisible()).toBeTruthy();
40
+ await (0, test_1.expect)(await operateProcessInstancePage.connectorResultVariableName('status')).toBeVisible({ timeout: 30000 });
41
41
  await (0, test_1.expect)(page.getByText('"Awesome!"')).toBeVisible({
42
42
  timeout: 60000,
43
43
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.412",
3
+ "version": "0.0.413",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",