@camunda/e2e-test-suite 0.0.362 → 0.0.364
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.
|
@@ -9,6 +9,8 @@ declare class OperateHomePage {
|
|
|
9
9
|
readonly saveVariableButton: Locator;
|
|
10
10
|
readonly editVariableSpinner: Locator;
|
|
11
11
|
readonly operateBanner: Locator;
|
|
12
|
+
readonly closeButton: Locator;
|
|
13
|
+
readonly messageBanner: Locator;
|
|
12
14
|
constructor(page: Page);
|
|
13
15
|
clickProcessesTab(): Promise<void>;
|
|
14
16
|
closeInformationDialog(): Promise<void>;
|
|
@@ -17,5 +19,6 @@ declare class OperateHomePage {
|
|
|
17
19
|
clearVariableValueInput(): Promise<void>;
|
|
18
20
|
fillVariableValueInput(value: string): Promise<void>;
|
|
19
21
|
clickSaveVariableButton(): Promise<void>;
|
|
22
|
+
clickMessageBanner(): Promise<void>;
|
|
20
23
|
}
|
|
21
24
|
export { OperateHomePage };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OperateHomePage = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
|
|
4
6
|
class OperateHomePage {
|
|
5
7
|
page;
|
|
6
8
|
operateHeader;
|
|
@@ -11,6 +13,8 @@ class OperateHomePage {
|
|
|
11
13
|
saveVariableButton;
|
|
12
14
|
editVariableSpinner;
|
|
13
15
|
operateBanner;
|
|
16
|
+
closeButton;
|
|
17
|
+
messageBanner;
|
|
14
18
|
constructor(page) {
|
|
15
19
|
this.page = page;
|
|
16
20
|
this.operateHeader = page.getByRole('link', { name: 'Camunda Operate' });
|
|
@@ -29,9 +33,15 @@ class OperateHomePage {
|
|
|
29
33
|
.locator('circle')
|
|
30
34
|
.nth(1);
|
|
31
35
|
this.operateBanner = page.getByRole('link', { name: 'Camunda logo Operate' });
|
|
36
|
+
this.closeButton = page.getByRole('button', { name: 'Got it - Dismiss' });
|
|
37
|
+
this.messageBanner = page.getByRole('button', { name: 'Close' });
|
|
32
38
|
}
|
|
33
39
|
async clickProcessesTab() {
|
|
34
|
-
await this.processesTab
|
|
40
|
+
await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.processesTab, {
|
|
41
|
+
preAction: async () => {
|
|
42
|
+
await this.clickMessageBanner();
|
|
43
|
+
},
|
|
44
|
+
});
|
|
35
45
|
}
|
|
36
46
|
async closeInformationDialog() {
|
|
37
47
|
await this.informationDialog.click();
|
|
@@ -52,5 +62,15 @@ class OperateHomePage {
|
|
|
52
62
|
async clickSaveVariableButton() {
|
|
53
63
|
await this.saveVariableButton.click();
|
|
54
64
|
}
|
|
65
|
+
async clickMessageBanner() {
|
|
66
|
+
try {
|
|
67
|
+
const button = this.messageBanner.or(this.closeButton).first();
|
|
68
|
+
await (0, test_1.expect)(button).toBeVisible({ timeout: 15000 });
|
|
69
|
+
await button.click();
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
console.log('No banner or close button found to click');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
55
75
|
}
|
|
56
76
|
exports.OperateHomePage = OperateHomePage;
|
|
@@ -38,6 +38,13 @@ async function modelRestConnector(modelerCreatePage, connectorSettingsPage, proc
|
|
|
38
38
|
});
|
|
39
39
|
await modelerCreatePage.enterDiagramName(processName);
|
|
40
40
|
await (0, sleep_1.sleep)(10000);
|
|
41
|
+
await modelerCreatePage.clickCanvas();
|
|
42
|
+
await modelerCreatePage.clickGeneralPropertiesPanel();
|
|
43
|
+
await modelerCreatePage.clickNameInput();
|
|
44
|
+
await modelerCreatePage.fillNamedInput(processName);
|
|
45
|
+
await modelerCreatePage.clickIdInput();
|
|
46
|
+
await modelerCreatePage.fillIdInput(processName);
|
|
47
|
+
await modelerCreatePage.clickStartEventElement();
|
|
41
48
|
await modelerCreatePage.clickAppendElementButton();
|
|
42
49
|
await modelerCreatePage.clickAppendTaskButton();
|
|
43
50
|
await modelerCreatePage.clickChangeTypeButton();
|
|
@@ -71,7 +71,12 @@ class OperateHomePage {
|
|
|
71
71
|
}
|
|
72
72
|
async clickSaveVariableButton() {
|
|
73
73
|
await this.applyButton.click();
|
|
74
|
-
|
|
74
|
+
try {
|
|
75
|
+
await this.saveVariableButton.click();
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
// additional save not required -> continue
|
|
79
|
+
}
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
exports.OperateHomePage = OperateHomePage;
|
|
@@ -15,6 +15,7 @@ const OptimizeCollectionsPage_1 = require("../../pages/8.7/OptimizeCollectionsPa
|
|
|
15
15
|
const OptimizeReportPage_1 = require("../../pages/8.7/OptimizeReportPage");
|
|
16
16
|
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
17
17
|
const users_1 = require("../../utils/users");
|
|
18
|
+
const sleep_1 = require("../../utils/sleep");
|
|
18
19
|
const testUser = (0, users_1.getTestUser)('thirteenthUser');
|
|
19
20
|
_8_7_1.test.describe.configure({ mode: 'parallel' });
|
|
20
21
|
_8_7_1.test.describe('Smoke Tests', () => {
|
|
@@ -66,7 +67,14 @@ _8_7_1.test.describe('Smoke Tests', () => {
|
|
|
66
67
|
});
|
|
67
68
|
await modelerCreatePage.enterDiagramName(processName);
|
|
68
69
|
await modelerCreatePage.assertDiagramNameSet(processName);
|
|
69
|
-
await
|
|
70
|
+
await (0, sleep_1.sleep)(10000);
|
|
71
|
+
await modelerCreatePage.clickCanvas();
|
|
72
|
+
await modelerCreatePage.clickGeneralPropertiesPanel();
|
|
73
|
+
await modelerCreatePage.clickNameInput();
|
|
74
|
+
await modelerCreatePage.fillNamedInput(processName);
|
|
75
|
+
await modelerCreatePage.clickIdInput();
|
|
76
|
+
await modelerCreatePage.fillIdInput(processName);
|
|
77
|
+
await modelerCreatePage.clickStartEventElement();
|
|
70
78
|
await modelerCreatePage.addParallelUserTasks(2, userTaskName);
|
|
71
79
|
await modelerCreatePage.clickAppendElementButton();
|
|
72
80
|
await modelerCreatePage.clickAppendEndEventButton('parallelGateway');
|
|
@@ -146,7 +154,7 @@ _8_7_1.test.describe('Smoke Tests', () => {
|
|
|
146
154
|
await (0, test_1.expect)(optimizeTabOptimizeReportPage.oneUserTaskInstance).toHaveCount(2, { timeout: 120000 });
|
|
147
155
|
});
|
|
148
156
|
});
|
|
149
|
-
(0, _8_7_1.test)('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage,
|
|
157
|
+
(0, _8_7_1.test)('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
|
|
150
158
|
_8_7_1.test.slow();
|
|
151
159
|
const randomString = useFixedNames
|
|
152
160
|
? 'UpgradeTest'
|
|
@@ -156,7 +164,7 @@ _8_7_1.test.describe('Smoke Tests', () => {
|
|
|
156
164
|
await appsPage.clickCamundaApps();
|
|
157
165
|
await appsPage.clickModeler();
|
|
158
166
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
159
|
-
timeout:
|
|
167
|
+
timeout: 60000,
|
|
160
168
|
});
|
|
161
169
|
});
|
|
162
170
|
await _8_7_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
@@ -169,19 +177,25 @@ _8_7_1.test.describe('Smoke Tests', () => {
|
|
|
169
177
|
await modelerCreatePage.runProcessInstance(clusterName);
|
|
170
178
|
});
|
|
171
179
|
await _8_7_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
172
|
-
await
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
await
|
|
176
|
-
await
|
|
177
|
-
|
|
178
|
-
|
|
180
|
+
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
181
|
+
timeout: 60000,
|
|
182
|
+
});
|
|
183
|
+
await modelerCreatePage.clickViewProcessInstanceLink();
|
|
184
|
+
const operateTab = await page.waitForEvent('popup', { timeout: 30000 });
|
|
185
|
+
const operateTabHomePage = new OperateHomePage_1.OperateHomePage(operateTab);
|
|
186
|
+
const operateTabProcessesPage = new OperateProcessesPage_1.OperateProcessesPage(operateTab);
|
|
187
|
+
const operateTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
|
|
188
|
+
await operateTabHomePage.clickProcessesTab();
|
|
189
|
+
await operateTabProcessesPage.clickProcessCompletedCheckbox();
|
|
190
|
+
await operateTabProcessesPage.clickProcessInstanceLink(processName);
|
|
191
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateTabProcessInstancePage.completedIcon, { totalTimeout: 60000, maxRetries: 5 });
|
|
192
|
+
await (0, test_1.expect)(operateTabProcessInstancePage.variablesList).toBeVisible({
|
|
179
193
|
timeout: 15000,
|
|
180
194
|
});
|
|
181
|
-
await (0, test_1.expect)(
|
|
195
|
+
await (0, test_1.expect)(operateTabProcessInstancePage.connectorResultVariableName('message')).toBeVisible({
|
|
182
196
|
timeout: 15000,
|
|
183
197
|
});
|
|
184
|
-
await (0, test_1.expect)(
|
|
198
|
+
await (0, test_1.expect)(operateTabProcessInstancePage
|
|
185
199
|
.connectorResultVariableName('message')
|
|
186
200
|
.getByText('"Message from Mock!"')).toBeVisible({
|
|
187
201
|
timeout: 15000,
|