@camunda/e2e-test-suite 0.0.422 → 0.0.423
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.
- package/dist/pages/SM-8.9/OperateProcessInstancePage.d.ts +4 -2
- package/dist/pages/SM-8.9/OperateProcessInstancePage.js +53 -7
- package/dist/pages/SM-8.9/OperateProcessesPage.js +39 -7
- package/dist/tests/SM-8.9/connectors-user-flows.spec.js +11 -21
- package/dist/tests/SM-8.9/migration-path-user-flows.spec.js +4 -8
- package/dist/tests/SM-8.9/mt-enabled-user-flows.spec.js +2 -6
- package/dist/tests/SM-8.9/smoke-tests.spec.js +6 -6
- package/package.json +1 -1
|
@@ -6,9 +6,11 @@ declare class OperateProcessInstancePage {
|
|
|
6
6
|
readonly diagramSpinner: Locator;
|
|
7
7
|
readonly activeIcon: Locator;
|
|
8
8
|
readonly incidentIcon: Locator;
|
|
9
|
+
readonly variablesList: Locator;
|
|
9
10
|
constructor(page: Page);
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
assertVariablesListVisible(timeout?: number): Promise<void>;
|
|
12
|
+
connectorResultVariableName(name: string, timeout?: number): Promise<Locator>;
|
|
13
|
+
connectorResultVariableValue(variableName: string, timeout?: number): Promise<Locator>;
|
|
12
14
|
completedIconAssertion(): Promise<void>;
|
|
13
15
|
activeIconAssertion(): Promise<void>;
|
|
14
16
|
activeUserTaskIconVisibleAssertion(taskName: string): Promise<void>;
|
|
@@ -10,6 +10,7 @@ class OperateProcessInstancePage {
|
|
|
10
10
|
diagramSpinner;
|
|
11
11
|
activeIcon;
|
|
12
12
|
incidentIcon;
|
|
13
|
+
variablesList;
|
|
13
14
|
constructor(page) {
|
|
14
15
|
this.page = page;
|
|
15
16
|
this.diagram = page.getByTestId('diagram');
|
|
@@ -23,15 +24,60 @@ class OperateProcessInstancePage {
|
|
|
23
24
|
this.incidentIcon = page
|
|
24
25
|
.getByTestId('instance-header')
|
|
25
26
|
.getByTestId('INCIDENT-icon');
|
|
27
|
+
this.variablesList = page.getByTestId('variables-list');
|
|
26
28
|
}
|
|
27
|
-
async
|
|
28
|
-
|
|
29
|
+
async assertVariablesListVisible(timeout = 30000) {
|
|
30
|
+
const startTime = Date.now();
|
|
31
|
+
while (Date.now() - startTime < timeout) {
|
|
32
|
+
try {
|
|
33
|
+
await (0, test_1.expect)(this.variablesList).toBeVisible({ timeout: 10000 });
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
console.log(`Variables list not visible, reloading... (${Math.round((Date.now() - startTime) / 1000)}s elapsed)`);
|
|
38
|
+
await this.page
|
|
39
|
+
.reload({ timeout: 10000 })
|
|
40
|
+
.catch(() => console.log('Page reload timed out, continuing...'));
|
|
41
|
+
await (0, sleep_1.sleep)(2000);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
throw new Error(`Variables list not visible after ${Math.round(timeout / 1000)}s`);
|
|
45
|
+
}
|
|
46
|
+
async connectorResultVariableName(name, timeout = 30000) {
|
|
47
|
+
const locator = this.page.getByTestId('variable-' + name);
|
|
48
|
+
const startTime = Date.now();
|
|
49
|
+
while (Date.now() - startTime < timeout) {
|
|
50
|
+
try {
|
|
51
|
+
await (0, test_1.expect)(locator).toBeVisible({ timeout: 10000 });
|
|
52
|
+
return locator;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
console.log(`Variable "${name}" not visible, reloading... (${Math.round((Date.now() - startTime) / 1000)}s elapsed)`);
|
|
56
|
+
await this.page
|
|
57
|
+
.reload({ timeout: 10000 })
|
|
58
|
+
.catch(() => console.log('Page reload timed out, continuing...'));
|
|
59
|
+
await (0, sleep_1.sleep)(2000);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
throw new Error(`Variable "${name}" not visible after ${Math.round(timeout / 1000)}s`);
|
|
29
63
|
}
|
|
30
|
-
async connectorResultVariableValue(variableName) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
64
|
+
async connectorResultVariableValue(variableName, timeout = 30000) {
|
|
65
|
+
const locator = this.page.getByTestId('variable-' + variableName);
|
|
66
|
+
const startTime = Date.now();
|
|
67
|
+
while (Date.now() - startTime < timeout) {
|
|
68
|
+
try {
|
|
69
|
+
await (0, test_1.expect)(locator).toBeVisible({ timeout: 10000 });
|
|
70
|
+
return locator;
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
console.log(`Variable value "${variableName}" not visible, reloading... (${Math.round((Date.now() - startTime) / 1000)}s elapsed)`);
|
|
74
|
+
await this.page
|
|
75
|
+
.reload({ timeout: 10000 })
|
|
76
|
+
.catch(() => console.log('Page reload timed out, continuing...'));
|
|
77
|
+
await (0, sleep_1.sleep)(2000);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
throw new Error(`Variable value "${variableName}" not visible after ${Math.round(timeout / 1000)}s`);
|
|
35
81
|
}
|
|
36
82
|
async completedIconAssertion() {
|
|
37
83
|
let retryCount = 0;
|
|
@@ -137,6 +137,10 @@ class OperateProcessesPage {
|
|
|
137
137
|
});
|
|
138
138
|
if (!(await this.processActiveCheckbox.isChecked({ timeout: 60000 }))) {
|
|
139
139
|
await this.processActiveCheckbox.click({ timeout: 120000 });
|
|
140
|
+
await (0, test_1.expect)(this.processActiveCheckbox).toBeChecked({
|
|
141
|
+
checked: true,
|
|
142
|
+
timeout: constants_1._1_SECOND_IN_MS * 5,
|
|
143
|
+
});
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
146
|
async clickProcessCompletedCheckbox() {
|
|
@@ -146,6 +150,10 @@ class OperateProcessesPage {
|
|
|
146
150
|
});
|
|
147
151
|
if (!(await this.processCompletedCheckbox.isChecked({ timeout: 60000 }))) {
|
|
148
152
|
await this.processCompletedCheckbox.click({ timeout: 120000 });
|
|
153
|
+
await (0, test_1.expect)(this.processCompletedCheckbox).toBeChecked({
|
|
154
|
+
checked: true,
|
|
155
|
+
timeout: constants_1._1_SECOND_IN_MS * 5,
|
|
156
|
+
});
|
|
149
157
|
}
|
|
150
158
|
}
|
|
151
159
|
async clickProcessIncidentsCheckbox() {
|
|
@@ -153,28 +161,43 @@ class OperateProcessesPage {
|
|
|
153
161
|
state: 'visible',
|
|
154
162
|
timeout: constants_1._1_SECOND_IN_MS * 10,
|
|
155
163
|
});
|
|
164
|
+
const wasChecked = await this.processIncidentsCheckbox.isChecked();
|
|
156
165
|
await this.processIncidentsCheckbox.click({ timeout: 90000 });
|
|
166
|
+
await (0, test_1.expect)(this.processIncidentsCheckbox).toBeChecked({
|
|
167
|
+
checked: !wasChecked,
|
|
168
|
+
timeout: constants_1._1_SECOND_IN_MS * 5,
|
|
169
|
+
});
|
|
157
170
|
}
|
|
158
171
|
async clickRunningProcessInstancesCheckbox() {
|
|
159
172
|
await this.processRunningInstancesCheckbox.waitFor({
|
|
160
173
|
state: 'visible',
|
|
161
174
|
timeout: constants_1._1_SECOND_IN_MS * 10,
|
|
162
175
|
});
|
|
176
|
+
const wasChecked = await this.processRunningInstancesCheckbox.isChecked();
|
|
163
177
|
await this.processRunningInstancesCheckbox.click({ timeout: 90000 });
|
|
178
|
+
await (0, test_1.expect)(this.processRunningInstancesCheckbox).toBeChecked({
|
|
179
|
+
checked: !wasChecked,
|
|
180
|
+
timeout: constants_1._1_SECOND_IN_MS * 5,
|
|
181
|
+
});
|
|
164
182
|
}
|
|
165
183
|
async clickFinishedProcessInstancesCheckbox() {
|
|
166
184
|
await this.processFinishedInstancesCheckbox.waitFor({
|
|
167
185
|
state: 'visible',
|
|
168
186
|
timeout: constants_1._1_SECOND_IN_MS * 10,
|
|
169
187
|
});
|
|
188
|
+
const wasChecked = await this.processFinishedInstancesCheckbox.isChecked();
|
|
170
189
|
await this.processFinishedInstancesCheckbox.click({ timeout: 90000 });
|
|
190
|
+
await (0, test_1.expect)(this.processFinishedInstancesCheckbox).toBeChecked({
|
|
191
|
+
checked: !wasChecked,
|
|
192
|
+
timeout: constants_1._1_SECOND_IN_MS * 5,
|
|
193
|
+
});
|
|
171
194
|
}
|
|
172
195
|
async clickProcessInstanceLink(processName, type = 'active') {
|
|
173
196
|
if (await this.checkTableForProcess(processName)) {
|
|
174
197
|
return;
|
|
175
198
|
}
|
|
176
199
|
const MAX_ATTEMPTS = 100;
|
|
177
|
-
const TOTAL_TIMEOUT_MS = constants_1._1_MINUTE_IN_MS *
|
|
200
|
+
const TOTAL_TIMEOUT_MS = constants_1._1_MINUTE_IN_MS * 6;
|
|
178
201
|
let attempt = 0;
|
|
179
202
|
let lastError;
|
|
180
203
|
const startTime = Date.now();
|
|
@@ -191,19 +214,28 @@ class OperateProcessesPage {
|
|
|
191
214
|
if (await this.checkTableForProcess(processName)) {
|
|
192
215
|
return;
|
|
193
216
|
}
|
|
194
|
-
throw new Error(`
|
|
217
|
+
throw new Error(`Process "${processName}" not found in table on attempt ${attempt}.`);
|
|
195
218
|
}
|
|
196
219
|
catch (err) {
|
|
197
220
|
lastError = err instanceof Error ? err.message : err;
|
|
198
|
-
|
|
199
|
-
await this.page
|
|
221
|
+
console.log(`clickProcessInstanceLink attempt ${attempt}: ${String(lastError)}`);
|
|
222
|
+
await this.page
|
|
223
|
+
.reload({ timeout: 30000 })
|
|
224
|
+
.catch(() => console.log('Page reload timed out, continuing...'));
|
|
225
|
+
await this.page
|
|
226
|
+
.waitForLoadState('networkidle', { timeout: 30000 })
|
|
227
|
+
.catch(() => console.log('waitForLoadState networkidle timed out, continuing...'));
|
|
200
228
|
await (0, sleep_1.sleep)(2000);
|
|
201
229
|
// After reload, check if page redirected away from Operate
|
|
202
230
|
if (!this.page.url().includes('/operate')) {
|
|
203
231
|
const operatePath = (process.env.ORCHESTRATION_CONTEXT_PATH ?? '/orchestration') +
|
|
204
232
|
'/operate';
|
|
205
|
-
await this.page
|
|
206
|
-
|
|
233
|
+
await this.page
|
|
234
|
+
.goto(operatePath, { timeout: 30000 })
|
|
235
|
+
.catch(() => console.log('Navigation to Operate timed out, continuing...'));
|
|
236
|
+
await this.page
|
|
237
|
+
.waitForLoadState('networkidle', { timeout: 30000 })
|
|
238
|
+
.catch(() => console.log('waitForLoadState after Operate navigation timed out, continuing...'));
|
|
207
239
|
await (0, sleep_1.sleep)(2000);
|
|
208
240
|
}
|
|
209
241
|
try {
|
|
@@ -220,7 +252,7 @@ class OperateProcessesPage {
|
|
|
220
252
|
}
|
|
221
253
|
}
|
|
222
254
|
}
|
|
223
|
-
throw new Error(`Failed to open instance "${processName}" after ${
|
|
255
|
+
throw new Error(`Failed to open instance "${processName}" after ${attempt} attempts (${Math.round((Date.now() - startTime) / 1000)}s elapsed). Last error: ${String(lastError)}`);
|
|
224
256
|
}
|
|
225
257
|
async clickProcessInstanceLinkWithPartialNameMatch(processName) {
|
|
226
258
|
let retryCount = 0;
|
|
@@ -15,7 +15,7 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
15
15
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
16
16
|
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
17
17
|
});
|
|
18
|
-
(0, SM_8_9_1.test)('REST Connector No Auth User Flow', async ({
|
|
18
|
+
(0, SM_8_9_1.test)('REST Connector No Auth User Flow', async ({ operateHomePage, modelerHomePage, operateProcessInstancePage, modelerCreatePage, connectorSettingsPage, operateProcessesPage, connectorMarketplacePage, navigationPage, }) => {
|
|
19
19
|
SM_8_9_1.test.slow();
|
|
20
20
|
const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
21
21
|
await SM_8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
@@ -34,16 +34,12 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
34
34
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
35
35
|
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
36
36
|
(0, test_1.expect)(result).toBe('completed');
|
|
37
|
-
await
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
await (0, test_1.expect)(await operateProcessInstancePage.connectorResultVariableName('status')).toBeVisible({ timeout: 30000 });
|
|
41
|
-
await (0, test_1.expect)(page.getByText('"Awesome!"')).toBeVisible({
|
|
42
|
-
timeout: 60000,
|
|
43
|
-
});
|
|
37
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
38
|
+
await operateProcessInstancePage.connectorResultVariableName('status');
|
|
39
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('status', '"Awesome!"');
|
|
44
40
|
});
|
|
45
41
|
});
|
|
46
|
-
(0, SM_8_9_1.test)('REST Connector Bearer Token Auth User Flow', async ({
|
|
42
|
+
(0, SM_8_9_1.test)('REST Connector Bearer Token Auth User Flow', async ({ operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
|
|
47
43
|
SM_8_9_1.test.slow();
|
|
48
44
|
const processName = 'REST_Connector_Bearer_Auth_Process' +
|
|
49
45
|
(await (0, _setup_1.generateRandomStringAsync)(3));
|
|
@@ -64,13 +60,9 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
64
60
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
65
61
|
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
66
62
|
(0, test_1.expect)(result).toBe('completed');
|
|
67
|
-
await
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
(0, test_1.expect)((await operateProcessInstancePage.connectorResultVariableName('message')).isVisible()).toBeTruthy();
|
|
71
|
-
await (0, test_1.expect)(page.getByText('"Awesome!"')).toBeVisible({
|
|
72
|
-
timeout: 60000,
|
|
73
|
-
});
|
|
63
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
64
|
+
await operateProcessInstancePage.connectorResultVariableName('message');
|
|
65
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('message', '"Awesome!"');
|
|
74
66
|
});
|
|
75
67
|
});
|
|
76
68
|
(0, SM_8_9_1.test)('Message Start Event Webhook Connector No Auth User Flow', async ({ modelerHomePage, navigationPage, modelerCreatePage, request, operateHomePage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, connectorSettingsPage, }) => {
|
|
@@ -134,7 +126,7 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
134
126
|
(0, test_1.expect)(result).toBe('completed');
|
|
135
127
|
});
|
|
136
128
|
});
|
|
137
|
-
(0, SM_8_9_1.test)('Connector Secrets User Flow', async ({
|
|
129
|
+
(0, SM_8_9_1.test)('Connector Secrets User Flow', async ({ operateHomePage, modelerHomePage, navigationPage, modelerCreatePage, connectorSettingsPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
|
|
138
130
|
SM_8_9_1.test.slow();
|
|
139
131
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
140
132
|
await SM_8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
@@ -153,10 +145,8 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
153
145
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
154
146
|
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
155
147
|
(0, test_1.expect)(result).toBe('completed');
|
|
156
|
-
await
|
|
157
|
-
|
|
158
|
-
});
|
|
159
|
-
await (0, test_1.expect)(page.getByTestId('variable-message').getByText('"Message from Mock!"')).toBeVisible({ timeout: 180000 });
|
|
148
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
149
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('message', '"Message from Mock!"');
|
|
160
150
|
});
|
|
161
151
|
});
|
|
162
152
|
(0, SM_8_9_1.test)('Intermediate Event Webhook Connector No Auth User Flow', async ({ modelerHomePage, modelerCreatePage, request, operateHomePage, operateProcessInstancePage, operateProcessesPage, navigationPage, connectorMarketplacePage, connectorSettingsPage, }) => {
|
|
@@ -70,7 +70,7 @@ if (process.env.IS_MIGRATION === 'true') {
|
|
|
70
70
|
});
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
-
(0, SM_8_9_1.test)('Assert REST Connector Process Migration @tasklistV2', async ({
|
|
73
|
+
(0, SM_8_9_1.test)('Assert REST Connector Process Migration @tasklistV2', async ({ operateHomePage, navigationPage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
74
74
|
SM_8_9_1.test.slow();
|
|
75
75
|
const processName = 'REST_Connector_Basic_Auth_Process';
|
|
76
76
|
await SM_8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
@@ -79,13 +79,9 @@ if (process.env.IS_MIGRATION === 'true') {
|
|
|
79
79
|
await operateProcessesPage.clickProcessCompletedCheckbox();
|
|
80
80
|
await operateProcessesPage.clickProcessInstanceLinkWithPartialNameMatch(processName);
|
|
81
81
|
await operateProcessInstancePage.completedIconAssertion();
|
|
82
|
-
await
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
(0, test_1.expect)((await operateProcessInstancePage.connectorResultVariableName('message')).isVisible()).toBeTruthy();
|
|
86
|
-
await (0, test_1.expect)(page
|
|
87
|
-
.getByTestId('variable-message')
|
|
88
|
-
.getByText('"Message from Mock!"')).toBeVisible({ timeout: 60000 });
|
|
82
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
83
|
+
await operateProcessInstancePage.connectorResultVariableName('message');
|
|
84
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('message', '"Message from Mock!"');
|
|
89
85
|
});
|
|
90
86
|
});
|
|
91
87
|
(0, SM_8_9_1.test)('Assert Users Persist in Management Identity With Correct Roles @tasklistV2', async ({ managementIdentityPage, identityUsersPage, }) => {
|
|
@@ -165,9 +165,7 @@ if (process.env.IS_MT === 'true') {
|
|
|
165
165
|
await operateHomePage.clickProcessesTab();
|
|
166
166
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
167
167
|
await operateProcessInstancePage.completedIconAssertion();
|
|
168
|
-
await
|
|
169
|
-
timeout: 30000,
|
|
170
|
-
});
|
|
168
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
171
169
|
await (0, test_1.expect)(page.getByText('"Awesome!"')).toBeVisible({
|
|
172
170
|
timeout: 60000,
|
|
173
171
|
});
|
|
@@ -309,9 +307,7 @@ if (process.env.IS_MT === 'true') {
|
|
|
309
307
|
await operateHomePage.clickProcessesTab();
|
|
310
308
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
311
309
|
await operateProcessInstancePage.completedIconAssertion();
|
|
312
|
-
await
|
|
313
|
-
timeout: 30000,
|
|
314
|
-
});
|
|
310
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
315
311
|
await (0, test_1.expect)(page.getByText('"Awesome!"')).toBeVisible({
|
|
316
312
|
timeout: 60000,
|
|
317
313
|
});
|
|
@@ -8,6 +8,7 @@ const optimizeReportUtils_1 = require("../../pages/SM-8.9/optimizeReportUtils");
|
|
|
8
8
|
const loggingUtils_1 = require("../../utils/loggingUtils");
|
|
9
9
|
const resetSession_1 = require("../../utils/resetSession");
|
|
10
10
|
const KeycloakUtils_1 = require("../../pages/SM-8.9/KeycloakUtils");
|
|
11
|
+
const sleep_1 = require("../../utils/sleep");
|
|
11
12
|
SM_8_9_1.test.describe.parallel('Smoke Tests', () => {
|
|
12
13
|
SM_8_9_1.test.beforeEach(async ({ navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, page, browser, loginPage, ocIdentityHomePage, ocIdentityRolesPage, }, testInfo) => {
|
|
13
14
|
if (process.env.IS_MIGRATION === 'true') {
|
|
@@ -130,7 +131,7 @@ SM_8_9_1.test.describe.parallel('Smoke Tests', () => {
|
|
|
130
131
|
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
131
132
|
});
|
|
132
133
|
// Skipped to unblock AG until failure is investigate
|
|
133
|
-
SM_8_9_1.test.skip('Most Common REST Connector User Flow @tasklistV2', async ({
|
|
134
|
+
SM_8_9_1.test.skip('Most Common REST Connector User Flow @tasklistV2', async ({ context, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessesPage, operateProcessInstancePage, connectorMarketplacePage, }, testInfo) => {
|
|
134
135
|
console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
|
|
135
136
|
const processName = 'REST_Connector_Basic_Auth_Process' +
|
|
136
137
|
(await (0, _setup_1.generateRandomStringAsync)(3));
|
|
@@ -144,6 +145,7 @@ SM_8_9_1.test.describe.parallel('Smoke Tests', () => {
|
|
|
144
145
|
await SM_8_9_1.test.step('Create BPMN Diagram with REST Connector with Basic Auth and Start Process Instance', async () => {
|
|
145
146
|
await (0, UtilitiesPage_1.modelRestConnector)(modelerCreatePage, connectorSettingsPage, connectorMarketplacePage, processName, 'https://camunda.proxy.beeceptor.com/pre-prod/basic-auth-test', 'basic', '{message:response.body.message}', 'result', { username: 'username', password: 'password' });
|
|
146
147
|
await modelerCreatePage.runProcessInstance();
|
|
148
|
+
await (0, sleep_1.sleep)(3000);
|
|
147
149
|
});
|
|
148
150
|
await SM_8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
149
151
|
await navigationPage.goToOperate();
|
|
@@ -151,11 +153,9 @@ SM_8_9_1.test.describe.parallel('Smoke Tests', () => {
|
|
|
151
153
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
152
154
|
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
153
155
|
(0, test_1.expect)(result).toBe('completed');
|
|
154
|
-
await
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
(0, test_1.expect)((await operateProcessInstancePage.connectorResultVariableName('message')).isVisible()).toBeTruthy();
|
|
158
|
-
await (0, test_1.expect)(page.getByTestId('variable-message').getByText('"Message from Mock!"')).toBeVisible({ timeout: 60000 });
|
|
156
|
+
await operateProcessInstancePage.assertVariablesListVisible();
|
|
157
|
+
await operateProcessInstancePage.connectorResultVariableName('message');
|
|
158
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('message', '"Message from Mock!"');
|
|
159
159
|
});
|
|
160
160
|
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
161
161
|
});
|