@camunda/e2e-test-suite 0.0.1442 → 0.0.1444
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/.github/c8_versions.json +1 -0
- package/README.md +2 -0
- package/dist/fixtures/SM-8.11.d.ts +77 -0
- package/dist/fixtures/SM-8.11.js +176 -0
- package/dist/pages/8.7/ModelerCreatePage.js +21 -0
- package/dist/pages/SM-8.11/Authorization.d.ts +39 -0
- package/dist/pages/SM-8.11/Authorization.js +349 -0
- package/dist/pages/SM-8.11/ClusterDetailsPage.d.ts +8 -0
- package/dist/pages/SM-8.11/ClusterDetailsPage.js +65 -0
- package/dist/pages/SM-8.11/ClusterPage.d.ts +11 -0
- package/dist/pages/SM-8.11/ClusterPage.js +37 -0
- package/dist/pages/SM-8.11/ConnectorMarketplacePage.d.ts +27 -0
- package/dist/pages/SM-8.11/ConnectorMarketplacePage.js +187 -0
- package/dist/pages/SM-8.11/ConnectorSettingsPage.d.ts +41 -0
- package/dist/pages/SM-8.11/ConnectorSettingsPage.js +153 -0
- package/dist/pages/SM-8.11/ConnectorTemplatePage.d.ts +11 -0
- package/dist/pages/SM-8.11/ConnectorTemplatePage.js +34 -0
- package/dist/pages/SM-8.11/FormJsPage.d.ts +33 -0
- package/dist/pages/SM-8.11/FormJsPage.js +109 -0
- package/dist/pages/SM-8.11/HomePage.d.ts +20 -0
- package/dist/pages/SM-8.11/HomePage.js +49 -0
- package/dist/pages/SM-8.11/IdentityTenantPage.d.ts +53 -0
- package/dist/pages/SM-8.11/IdentityTenantPage.js +264 -0
- package/dist/pages/SM-8.11/IdentityUsersPage.d.ts +92 -0
- package/dist/pages/SM-8.11/IdentityUsersPage.js +485 -0
- package/dist/pages/SM-8.11/KeycloakAdminPage.d.ts +17 -0
- package/dist/pages/SM-8.11/KeycloakAdminPage.js +78 -0
- package/dist/pages/SM-8.11/KeycloakLoginPage.d.ts +12 -0
- package/dist/pages/SM-8.11/KeycloakLoginPage.js +32 -0
- package/dist/pages/SM-8.11/KeycloakUtils.d.ts +17 -0
- package/dist/pages/SM-8.11/KeycloakUtils.js +94 -0
- package/dist/pages/SM-8.11/LoginPage.d.ts +21 -0
- package/dist/pages/SM-8.11/LoginPage.js +112 -0
- package/dist/pages/SM-8.11/ManagementIdentityPage.d.ts +44 -0
- package/dist/pages/SM-8.11/ManagementIdentityPage.js +176 -0
- package/dist/pages/SM-8.11/ModelerCreatePage.d.ts +238 -0
- package/dist/pages/SM-8.11/ModelerCreatePage.js +1950 -0
- package/dist/pages/SM-8.11/ModelerHomePage.d.ts +97 -0
- package/dist/pages/SM-8.11/ModelerHomePage.js +956 -0
- package/dist/pages/SM-8.11/NavigationPage.d.ts +58 -0
- package/dist/pages/SM-8.11/NavigationPage.js +389 -0
- package/dist/pages/SM-8.11/OCIdentityAuthorizationsPage.d.ts +10 -0
- package/dist/pages/SM-8.11/OCIdentityAuthorizationsPage.js +22 -0
- package/dist/pages/SM-8.11/OCIdentityClusterVariablesPage.d.ts +22 -0
- package/dist/pages/SM-8.11/OCIdentityClusterVariablesPage.js +120 -0
- package/dist/pages/SM-8.11/OCIdentityGroupsPage.d.ts +39 -0
- package/dist/pages/SM-8.11/OCIdentityGroupsPage.js +154 -0
- package/dist/pages/SM-8.11/OCIdentityHomePage.d.ts +23 -0
- package/dist/pages/SM-8.11/OCIdentityHomePage.js +115 -0
- package/dist/pages/SM-8.11/OCIdentityMappingRulesPage.d.ts +23 -0
- package/dist/pages/SM-8.11/OCIdentityMappingRulesPage.js +116 -0
- package/dist/pages/SM-8.11/OCIdentityRolesPage.d.ts +61 -0
- package/dist/pages/SM-8.11/OCIdentityRolesPage.js +433 -0
- package/dist/pages/SM-8.11/OCTenantPage.d.ts +73 -0
- package/dist/pages/SM-8.11/OCTenantPage.js +399 -0
- package/dist/pages/SM-8.11/OperateHomePage.d.ts +26 -0
- package/dist/pages/SM-8.11/OperateHomePage.js +139 -0
- package/dist/pages/SM-8.11/OperateProcessInstancePage.d.ts +30 -0
- package/dist/pages/SM-8.11/OperateProcessInstancePage.js +276 -0
- package/dist/pages/SM-8.11/OperateProcessesPage.d.ts +38 -0
- package/dist/pages/SM-8.11/OperateProcessesPage.js +383 -0
- package/dist/pages/SM-8.11/OptimizeCollectionsPage.d.ts +17 -0
- package/dist/pages/SM-8.11/OptimizeCollectionsPage.js +62 -0
- package/dist/pages/SM-8.11/OptimizeDashboardPage.d.ts +14 -0
- package/dist/pages/SM-8.11/OptimizeDashboardPage.js +63 -0
- package/dist/pages/SM-8.11/OptimizeHomePage.d.ts +19 -0
- package/dist/pages/SM-8.11/OptimizeHomePage.js +76 -0
- package/dist/pages/SM-8.11/OptimizeReportPage.d.ts +50 -0
- package/dist/pages/SM-8.11/OptimizeReportPage.js +209 -0
- package/dist/pages/SM-8.11/PlayPage.d.ts +47 -0
- package/dist/pages/SM-8.11/PlayPage.js +389 -0
- package/dist/pages/SM-8.11/ProcessApplicationPage.d.ts +35 -0
- package/dist/pages/SM-8.11/ProcessApplicationPage.js +340 -0
- package/dist/pages/SM-8.11/SettingsPage.d.ts +12 -0
- package/dist/pages/SM-8.11/SettingsPage.js +34 -0
- package/dist/pages/SM-8.11/TaskDetailsPage.d.ts +70 -0
- package/dist/pages/SM-8.11/TaskDetailsPage.js +273 -0
- package/dist/pages/SM-8.11/TaskPanelPage.d.ts +29 -0
- package/dist/pages/SM-8.11/TaskPanelPage.js +320 -0
- package/dist/pages/SM-8.11/TaskProcessesPage.d.ts +15 -0
- package/dist/pages/SM-8.11/TaskProcessesPage.js +77 -0
- package/dist/pages/SM-8.11/UtilitiesPage.d.ts +38 -0
- package/dist/pages/SM-8.11/UtilitiesPage.js +573 -0
- package/dist/pages/SM-8.11/optimizeReportUtils.d.ts +6 -0
- package/dist/pages/SM-8.11/optimizeReportUtils.js +77 -0
- package/dist/tests/SM-8.11/cluster-management-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/cluster-management-user-flows.spec.js +48 -0
- package/dist/tests/SM-8.11/cluster-variables.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/cluster-variables.spec.js +226 -0
- package/dist/tests/SM-8.11/connectors-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/connectors-user-flows.spec.js +307 -0
- package/dist/tests/SM-8.11/document-handling-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/document-handling-user-flows.spec.js +174 -0
- package/dist/tests/SM-8.11/hto-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/hto-user-flows.spec.js +410 -0
- package/dist/tests/SM-8.11/hub-web-modeler-smoke.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/hub-web-modeler-smoke.spec.js +24 -0
- package/dist/tests/SM-8.11/identity-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/identity-user-flows.spec.js +220 -0
- package/dist/tests/SM-8.11/license-key-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/license-key-user-flows.spec.js +461 -0
- package/dist/tests/SM-8.11/login.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/login.spec.js +24 -0
- package/dist/tests/SM-8.11/migration-path-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/migration-path-user-flows.spec.js +263 -0
- package/dist/tests/SM-8.11/mt-enabled-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/mt-enabled-user-flows.spec.js +607 -0
- package/dist/tests/SM-8.11/optimize-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/optimize-user-flows.spec.js +505 -0
- package/dist/tests/SM-8.11/play.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/play.spec.js +144 -0
- package/dist/tests/SM-8.11/rba-enabled-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/rba-enabled-user-flows.spec.js +712 -0
- package/dist/tests/SM-8.11/smoke-tests.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/smoke-tests.spec.js +167 -0
- package/dist/tests/SM-8.11/test-setup.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/test-setup.spec.js +24 -0
- package/dist/tests/SM-8.11/topology-orchestration-smoke.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/topology-orchestration-smoke.spec.js +58 -0
- package/dist/tests/SM-8.11/web-modeler-user-flows.spec.d.ts +1 -0
- package/dist/tests/SM-8.11/web-modeler-user-flows.spec.js +223 -0
- package/package.json +1 -1
- package/playwright.config.ts +21 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("@playwright/test");
|
|
4
|
+
const _setup_1 = require("../../test-setup.js");
|
|
5
|
+
const SM_8_11_1 = require("../../fixtures/SM-8.11");
|
|
6
|
+
const UtilitiesPage_1 = require("../../pages/SM-8.11/UtilitiesPage");
|
|
7
|
+
const optimizeReportUtils_1 = require("../../pages/SM-8.11/optimizeReportUtils");
|
|
8
|
+
const loggingUtils_1 = require("../../utils/loggingUtils");
|
|
9
|
+
const resetSession_1 = require("../../utils/resetSession");
|
|
10
|
+
const KeycloakUtils_1 = require("../../pages/SM-8.11/KeycloakUtils");
|
|
11
|
+
const constants_1 = require("../../utils/constants");
|
|
12
|
+
SM_8_11_1.test.describe.parallel('Smoke Tests', () => {
|
|
13
|
+
SM_8_11_1.test.beforeEach(async ({ navigationPage, managementIdentityPage, managementIdentityTenantPage, keycloakLoginPage, keycloakAdminPage, page, browser, ocIdentityHomePage, ocIdentityRolesPage, }, testInfo) => {
|
|
14
|
+
if (process.env.IS_MIGRATION === 'true') {
|
|
15
|
+
await navigationPage.goToOCAdmin((testInfo.workerIndex + 1) * 1000);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
console.log(`BeforeEach start: timeout = ${testInfo.timeout}`);
|
|
19
|
+
(0, loggingUtils_1.setupTestLogging)(testInfo);
|
|
20
|
+
const { testUsername, testPassword } = await (0, KeycloakUtils_1.setupKeycloakUser)(navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityRolesPage, process.env.IS_MT === 'true', managementIdentityTenantPage);
|
|
21
|
+
console.log(`BeforeEach end: timeout = ${testInfo.timeout}`);
|
|
22
|
+
await (0, resetSession_1.resetSession)(browser, page);
|
|
23
|
+
// Not loginPage.login() on the page resetSession leaves us on: where
|
|
24
|
+
// "/" serves Console it never redirects to Keycloak, so login()
|
|
25
|
+
// returned false unnoticed and later goTo() calls fell back to the
|
|
26
|
+
// first user (an org admin) instead of this test user.
|
|
27
|
+
await navigationPage.goToManagementIdentity(undefined, {
|
|
28
|
+
username: testUsername,
|
|
29
|
+
password: testPassword,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
SM_8_11_1.test.afterEach(async ({ page }, testInfo) => {
|
|
34
|
+
console.log(`AfterEach start: timeout = ${testInfo.timeout}`);
|
|
35
|
+
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
36
|
+
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
37
|
+
if (process.env.IS_MIGRATION !== 'true') {
|
|
38
|
+
(0, loggingUtils_1.cleanupTestLogging)();
|
|
39
|
+
console.log(`AfterEach end: timeout = ${testInfo.timeout}`);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
(0, SM_8_11_1.test)('Basic Login', async ({ context, navigationPage }, testInfo) => {
|
|
43
|
+
console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
|
|
44
|
+
await context.clearCookies();
|
|
45
|
+
await navigationPage.goToManagementIdentity(1000);
|
|
46
|
+
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
47
|
+
});
|
|
48
|
+
(0, SM_8_11_1.test)('Basic Navigation', async ({ context, navigationPage }, testInfo) => {
|
|
49
|
+
console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
|
|
50
|
+
await SM_8_11_1.test.step('Assert Web Modeler Navigation', async () => {
|
|
51
|
+
await context.clearCookies();
|
|
52
|
+
await navigationPage.goToModeler();
|
|
53
|
+
});
|
|
54
|
+
await SM_8_11_1.test.step('Assert Tasklist Navigation', async () => {
|
|
55
|
+
await context.clearCookies();
|
|
56
|
+
await navigationPage.goToTasklist();
|
|
57
|
+
});
|
|
58
|
+
await SM_8_11_1.test.step('Assert Operate Navigation', async () => {
|
|
59
|
+
await context.clearCookies();
|
|
60
|
+
await navigationPage.goToOperate();
|
|
61
|
+
});
|
|
62
|
+
await SM_8_11_1.test.step('Assert OC Identity Navigation', async () => {
|
|
63
|
+
await context.clearCookies();
|
|
64
|
+
await navigationPage.goToOCAdmin();
|
|
65
|
+
});
|
|
66
|
+
if (process.env.IS_OPTIMIZE !== 'false') {
|
|
67
|
+
await SM_8_11_1.test.step('Assert Optimize Navigation', async () => {
|
|
68
|
+
await context.clearCookies();
|
|
69
|
+
await navigationPage.goToOptimize();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
73
|
+
});
|
|
74
|
+
(0, SM_8_11_1.test)('Most Common Flow User Flow With All Apps', async ({ page, browser, modelerHomePage, navigationPage, modelerCreatePage, operateHomePage, operateProcessesPage, operateProcessInstancePage, optimizeHomePage, optimizeCollectionsPage, optimizeReportPage, taskDetailsPage, taskPanelPage, }, testInfo) => {
|
|
75
|
+
console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
|
|
76
|
+
const randomName = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
77
|
+
const processName = 'Zeebe_User_Task_Process' + randomName;
|
|
78
|
+
const reportName = await (0, _setup_1.generateRandomStringAsync)(5);
|
|
79
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
80
|
+
await navigationPage.goToModeler();
|
|
81
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
82
|
+
await modelerHomePage.assignWorkspaceEnvironmentAsOrgAdmin(browser);
|
|
83
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
84
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
85
|
+
});
|
|
86
|
+
await SM_8_11_1.test.step('Create BPMN Diagram with Zeebe User Task and Start Process Instance', async () => {
|
|
87
|
+
await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
|
|
88
|
+
await modelerCreatePage.runProcessInstance();
|
|
89
|
+
});
|
|
90
|
+
await SM_8_11_1.test.step('View Process Instance in Operate, complete User Task in Tasklist & assert process complete in Operate and Assert Process has been successfully imported in Optimize', async () => {
|
|
91
|
+
await navigationPage.goToOperate();
|
|
92
|
+
await operateHomePage.clickProcessesTab();
|
|
93
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'active');
|
|
94
|
+
let result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
|
|
95
|
+
(0, test_1.expect)(result).toBe('active');
|
|
96
|
+
await navigationPage.goToTasklist();
|
|
97
|
+
await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
|
|
98
|
+
await navigationPage.goToOperate();
|
|
99
|
+
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
|
|
100
|
+
await operateHomePage.clickProcessesTab();
|
|
101
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
102
|
+
result =
|
|
103
|
+
await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
104
|
+
(0, test_1.expect)(result).toBe('completed');
|
|
105
|
+
if (process.env.IS_OPTIMIZE !== 'false') {
|
|
106
|
+
await navigationPage.goToOptimize();
|
|
107
|
+
await optimizeHomePage.clickCollectionsLink();
|
|
108
|
+
await (0, optimizeReportUtils_1.createReportForProcess)(optimizeCollectionsPage, optimizeReportPage, processName);
|
|
109
|
+
await optimizeReportPage.clickUserTaskProcess(processName);
|
|
110
|
+
await (0, test_1.expect)(optimizeReportPage.versionSelection).toBeEnabled({
|
|
111
|
+
timeout: 30000,
|
|
112
|
+
});
|
|
113
|
+
await optimizeReportPage.clickVersionSelection();
|
|
114
|
+
await optimizeReportPage.clickAlwaysDisplayLatestSelection();
|
|
115
|
+
await optimizeReportPage.clickBlankReportButton();
|
|
116
|
+
await optimizeReportPage.clickCreateReportLink();
|
|
117
|
+
await (0, test_1.expect)(optimizeReportPage.selectDropdown).toBeVisible({
|
|
118
|
+
timeout: 60000,
|
|
119
|
+
});
|
|
120
|
+
await optimizeReportPage.clickSelectDropdown();
|
|
121
|
+
await optimizeReportPage.clickUserTaskOption();
|
|
122
|
+
await optimizeReportPage.clickHeatMapButton();
|
|
123
|
+
await (0, test_1.expect)(optimizeReportPage.tableOption).toBeVisible({
|
|
124
|
+
timeout: 30000,
|
|
125
|
+
});
|
|
126
|
+
await optimizeReportPage.clickTableOption();
|
|
127
|
+
await optimizeReportPage.clickReportName();
|
|
128
|
+
await optimizeReportPage.clearReportName();
|
|
129
|
+
await optimizeReportPage.fillReportName(reportName);
|
|
130
|
+
await optimizeReportPage.clickSaveButton();
|
|
131
|
+
await optimizeHomePage.clickCollectionsLink();
|
|
132
|
+
await (0, optimizeReportUtils_1.assertReportWithRefreshes)(page, optimizeHomePage, optimizeCollectionsPage, optimizeReportPage, reportName, optimizeReportPage.oneUserTaskInstance, 'One user task count');
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
136
|
+
});
|
|
137
|
+
// skipping the test to unblock AG until issue is investigated https://github.com/camunda/connectors/actions/runs/24979855526/job/73141398616?pr=7041
|
|
138
|
+
SM_8_11_1.test.skip('Most Common REST Connector User Flow @tasklistV2', async ({ context, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessesPage, operateProcessInstancePage, connectorMarketplacePage, }, testInfo) => {
|
|
139
|
+
console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
|
|
140
|
+
const processName = 'REST_Connector_Basic_Auth_Process' +
|
|
141
|
+
(await (0, _setup_1.generateRandomStringAsync)(3));
|
|
142
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
143
|
+
await context.clearCookies();
|
|
144
|
+
await navigationPage.goToModeler();
|
|
145
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
146
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
147
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
148
|
+
});
|
|
149
|
+
await SM_8_11_1.test.step('Create BPMN Diagram with REST Connector with Basic Auth and Start Process Instance', async () => {
|
|
150
|
+
await (0, UtilitiesPage_1.modelRestConnector)(modelerCreatePage, connectorSettingsPage, connectorMarketplacePage, processName, constants_1.REST_MOCK_BASIC_AUTH_URL, 'basic', '{message:response.body.message}', {
|
|
151
|
+
resultVariable: 'result',
|
|
152
|
+
basicAuthCredentials: { username: 'username', password: 'password' },
|
|
153
|
+
});
|
|
154
|
+
await modelerCreatePage.runProcessInstance();
|
|
155
|
+
});
|
|
156
|
+
await SM_8_11_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
157
|
+
await navigationPage.goToOperate();
|
|
158
|
+
await operateHomePage.clickProcessesTab();
|
|
159
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
160
|
+
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
161
|
+
(0, test_1.expect)(result).toBe('completed');
|
|
162
|
+
await operateProcessInstancePage.assertResultVariableVisibleWithRetry('message');
|
|
163
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('message', '"Message from Mock!"');
|
|
164
|
+
});
|
|
165
|
+
console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const SM_8_11_1 = require("../../fixtures/SM-8.11");
|
|
4
|
+
const _setup_1 = require("../../test-setup.js");
|
|
5
|
+
const UtilitiesPage_1 = require("../../pages/SM-8.11/UtilitiesPage");
|
|
6
|
+
SM_8_11_1.test.describe('SM Setup Tests', () => {
|
|
7
|
+
SM_8_11_1.test.afterEach(async ({ page }, testInfo) => {
|
|
8
|
+
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
9
|
+
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
10
|
+
});
|
|
11
|
+
(0, SM_8_11_1.test)('Create Project Folder', async ({ page, modelerHomePage, navigationPage, }) => {
|
|
12
|
+
if (process.env.IS_SMOKE === 'true') {
|
|
13
|
+
SM_8_11_1.test.skip(true, 'Skipping test because test not required in this test environment');
|
|
14
|
+
}
|
|
15
|
+
await SM_8_11_1.test.step('Navigate to Modeler', async () => {
|
|
16
|
+
await navigationPage.goToModeler();
|
|
17
|
+
});
|
|
18
|
+
await SM_8_11_1.test.step('Create Cross Component Project Folder', async () => {
|
|
19
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
20
|
+
await modelerHomePage.clickHomeBreadcrumb();
|
|
21
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, modelerHomePage.crossComponentProjectFolder, 'Cross component project folder', 30000);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("@playwright/test");
|
|
4
|
+
const SM_8_11_1 = require("../../fixtures/SM-8.11");
|
|
5
|
+
const ModelerCreatePage_1 = require("../../pages/SM-8.11/ModelerCreatePage");
|
|
6
|
+
const ModelerHomePage_1 = require("../../pages/SM-8.11/ModelerHomePage");
|
|
7
|
+
const NavigationPage_1 = require("../../pages/SM-8.11/NavigationPage");
|
|
8
|
+
const UtilitiesPage_1 = require("../../pages/SM-8.11/UtilitiesPage");
|
|
9
|
+
const _setup_1 = require("../../test-setup.js");
|
|
10
|
+
SM_8_11_1.test.afterEach(async ({ page }, testInfo) => {
|
|
11
|
+
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
12
|
+
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
13
|
+
});
|
|
14
|
+
(0, SM_8_11_1.test)('Topology orchestration golden path @tasklistV2', async ({ navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskPanelPage, taskDetailsPage, optimizeHomePage, page, request, }) => {
|
|
15
|
+
SM_8_11_1.test.slow();
|
|
16
|
+
const processName = `Topology_Orchestration_${await (0, _setup_1.generateRandomStringAsync)(5)}`;
|
|
17
|
+
const hubNavigationPage = new NavigationPage_1.NavigationPage(page);
|
|
18
|
+
const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
|
|
19
|
+
const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(page);
|
|
20
|
+
await SM_8_11_1.test.step('Create and start a process in Web Modeler', async () => {
|
|
21
|
+
await hubNavigationPage.goToModeler();
|
|
22
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
23
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
24
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
25
|
+
await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
|
|
26
|
+
await modelerCreatePage.runProcessInstance();
|
|
27
|
+
});
|
|
28
|
+
await SM_8_11_1.test.step('Assert the process instance is active in Operate', async () => {
|
|
29
|
+
await navigationPage.goToOperate();
|
|
30
|
+
await operateHomePage.clickProcessesTab();
|
|
31
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'active');
|
|
32
|
+
const result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
|
|
33
|
+
(0, test_1.expect)(result).toBe('active');
|
|
34
|
+
});
|
|
35
|
+
await SM_8_11_1.test.step('Complete the user task in Tasklist', async () => {
|
|
36
|
+
await navigationPage.goToTasklist();
|
|
37
|
+
await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
|
|
38
|
+
});
|
|
39
|
+
await SM_8_11_1.test.step('Assert the process instance is completed in Operate', async () => {
|
|
40
|
+
await navigationPage.goToOperate();
|
|
41
|
+
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
|
|
42
|
+
await operateHomePage.clickProcessesTab();
|
|
43
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
44
|
+
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
45
|
+
(0, test_1.expect)(result).toBe('completed');
|
|
46
|
+
});
|
|
47
|
+
if (process.env.IS_OPTIMIZE !== 'false') {
|
|
48
|
+
await SM_8_11_1.test.step('Assert the process is imported in Optimize', async () => {
|
|
49
|
+
await navigationPage.goToOptimize();
|
|
50
|
+
await optimizeHomePage.assertProcessHasBeenImported(processName);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
await SM_8_11_1.test.step('Check Connectors readiness', async () => {
|
|
54
|
+
const response = await request.get('/connectors/actuator/health/readiness');
|
|
55
|
+
(0, test_1.expect)(response.status()).toBe(200);
|
|
56
|
+
(0, test_1.expect)(await response.json()).toMatchObject({ status: 'UP' });
|
|
57
|
+
});
|
|
58
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const test_1 = require("@playwright/test");
|
|
4
|
+
const SM_8_11_1 = require("../../fixtures/SM-8.11");
|
|
5
|
+
const _setup_1 = require("../../test-setup.js");
|
|
6
|
+
const sleep_1 = require("../../utils/sleep");
|
|
7
|
+
const UtilitiesPage_1 = require("../../pages/SM-8.11/UtilitiesPage");
|
|
8
|
+
const fileUpload_1 = require("../../utils/fileUpload");
|
|
9
|
+
SM_8_11_1.test.describe.configure({ mode: 'parallel' });
|
|
10
|
+
SM_8_11_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
11
|
+
SM_8_11_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
|
|
12
|
+
await navigationPage.goToModeler((testInfo.workerIndex + 1) * 1000);
|
|
13
|
+
});
|
|
14
|
+
SM_8_11_1.test.afterEach(async ({ page }, testInfo) => {
|
|
15
|
+
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
16
|
+
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
17
|
+
});
|
|
18
|
+
(0, SM_8_11_1.test)('Form.js Integration with User Task', async ({ taskDetailsPage, taskPanelPage, modelerHomePage, navigationPage, modelerCreatePage, operateHomePage, operateProcessesPage, operateProcessInstancePage, formJsPage, page, }) => {
|
|
19
|
+
SM_8_11_1.test.slow();
|
|
20
|
+
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
21
|
+
const processName = 'User_Task_Process_With_Form' + randomString;
|
|
22
|
+
const formName = 'New form' + randomString;
|
|
23
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a Simple Form', async () => {
|
|
24
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
25
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
26
|
+
await modelerHomePage.clickFormOption();
|
|
27
|
+
await modelerHomePage.enterFormName(formName);
|
|
28
|
+
await (0, sleep_1.sleep)(10000);
|
|
29
|
+
await formJsPage.deployForm();
|
|
30
|
+
});
|
|
31
|
+
await SM_8_11_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
32
|
+
await modelerHomePage.clickProjectBreadcrumb();
|
|
33
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
34
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
35
|
+
});
|
|
36
|
+
await SM_8_11_1.test.step('Create BPMN Diagram with a User Task with an embedded Form and Start Process Instance', async () => {
|
|
37
|
+
await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName, formName);
|
|
38
|
+
await (0, sleep_1.sleep)(30000);
|
|
39
|
+
await modelerCreatePage.runProcessInstance();
|
|
40
|
+
});
|
|
41
|
+
await SM_8_11_1.test.step('View Process Instance in Operate and complete User Task in Tasklist', async () => {
|
|
42
|
+
await navigationPage.goToOperate();
|
|
43
|
+
await operateHomePage.clickProcessesTab();
|
|
44
|
+
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
45
|
+
await operateProcessInstancePage.activeIconAssertion();
|
|
46
|
+
await navigationPage.goToTasklist();
|
|
47
|
+
await (0, sleep_1.sleep)(30000);
|
|
48
|
+
await page.reload();
|
|
49
|
+
await taskPanelPage.openTask(processName);
|
|
50
|
+
await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
(0, SM_8_11_1.test)('Form.js Integration with Start form @tasklistV2', async ({ modelerHomePage, modelerCreatePage, navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, formJsPage, }) => {
|
|
54
|
+
SM_8_11_1.test.slow();
|
|
55
|
+
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
56
|
+
const processName = 'Start_Form_Process' + randomString;
|
|
57
|
+
const formName = 'New form' + randomString;
|
|
58
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a Simple Form', async () => {
|
|
59
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
60
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
61
|
+
await modelerHomePage.clickFormOption();
|
|
62
|
+
await modelerHomePage.enterFormName(formName);
|
|
63
|
+
await (0, sleep_1.sleep)(10000);
|
|
64
|
+
await formJsPage.deployForm();
|
|
65
|
+
});
|
|
66
|
+
await SM_8_11_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
67
|
+
await modelerHomePage.clickProjectBreadcrumb();
|
|
68
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
69
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
70
|
+
});
|
|
71
|
+
await SM_8_11_1.test.step('Create BPMN Diagram with a start event with an linked Form and Start Process Instance', async () => {
|
|
72
|
+
await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
|
|
73
|
+
timeout: 120000,
|
|
74
|
+
});
|
|
75
|
+
await modelerCreatePage.enterDiagramName(processName);
|
|
76
|
+
await (0, sleep_1.sleep)(15000);
|
|
77
|
+
await modelerCreatePage.clickStartEventElement();
|
|
78
|
+
await modelerCreatePage.clickGeneralPropertiesPanel();
|
|
79
|
+
await modelerCreatePage.clickNameInput();
|
|
80
|
+
await modelerCreatePage.fillNameInput(processName);
|
|
81
|
+
await modelerCreatePage.clickIdInput();
|
|
82
|
+
await modelerCreatePage.fillIdInput(processName);
|
|
83
|
+
await modelerCreatePage.clickStartEventElement();
|
|
84
|
+
await (0, sleep_1.sleep)(20000);
|
|
85
|
+
await modelerCreatePage.hoverOnStartEvent();
|
|
86
|
+
await modelerCreatePage.clickEmbedFormButton();
|
|
87
|
+
await modelerCreatePage.clickForm(formName);
|
|
88
|
+
await modelerCreatePage.clickEmbedButton();
|
|
89
|
+
await modelerCreatePage.clickAppendElementButton();
|
|
90
|
+
await modelerCreatePage.clickAppendEndEventButton();
|
|
91
|
+
await (0, sleep_1.sleep)(20000);
|
|
92
|
+
await modelerCreatePage.runProcessInstance();
|
|
93
|
+
});
|
|
94
|
+
await SM_8_11_1.test.step('View Process Instance in Operate and check if process is complete', async () => {
|
|
95
|
+
await navigationPage.goToOperate();
|
|
96
|
+
await operateHomePage.clickProcessesTab();
|
|
97
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
98
|
+
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
99
|
+
(0, test_1.expect)(result).toBe('completed');
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
(0, SM_8_11_1.test)('Timer Event User Flow @tasklistV2', async ({ modelerHomePage, modelerCreatePage, operateHomePage, operateProcessInstancePage, operateProcessesPage, navigationPage, }) => {
|
|
103
|
+
// Timer waits 180 s before completing; combined with goToOperate retries
|
|
104
|
+
// (5 × ~3 min) this regularly exceeds the default 12-min test timeout.
|
|
105
|
+
// The 180 s active window (vs 60 s) keeps the instance in the "active"
|
|
106
|
+
// Operate list long enough for the reload-based retry loop to catch it
|
|
107
|
+
// before it completes, even when OpenSearch indexing lag exceeds 60 s.
|
|
108
|
+
SM_8_11_1.test.slow();
|
|
109
|
+
const processName = 'Timer_Event_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
110
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
111
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
112
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
113
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
114
|
+
});
|
|
115
|
+
await SM_8_11_1.test.step('Create BPMN Diagram with Timer Event and Deploy Diagram', async () => {
|
|
116
|
+
await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
|
|
117
|
+
timeout: 120000,
|
|
118
|
+
});
|
|
119
|
+
await modelerCreatePage.enterDiagramName(processName);
|
|
120
|
+
await (0, sleep_1.sleep)(10000);
|
|
121
|
+
await modelerCreatePage.clickStartEventElement();
|
|
122
|
+
await modelerCreatePage.clickGeneralPropertiesPanel();
|
|
123
|
+
await modelerCreatePage.assertNameInput(processName);
|
|
124
|
+
await modelerCreatePage.clickStartEventElement();
|
|
125
|
+
await modelerCreatePage.clickAppendElementButton();
|
|
126
|
+
await modelerCreatePage.clickIntermediateBoundaryEvent();
|
|
127
|
+
await modelerCreatePage.clickChangeTypeButton();
|
|
128
|
+
await modelerCreatePage.clickTimerEventOption();
|
|
129
|
+
await modelerCreatePage.clickTimerEventSettings();
|
|
130
|
+
await modelerCreatePage.selectTimerType('timeDuration');
|
|
131
|
+
await modelerCreatePage.clickTimerValue();
|
|
132
|
+
await modelerCreatePage.fillTimerValue('PT180S');
|
|
133
|
+
await modelerCreatePage.clickAppendElementButton();
|
|
134
|
+
await modelerCreatePage.clickAppendEndEventButton();
|
|
135
|
+
await (0, sleep_1.sleep)(1000);
|
|
136
|
+
await modelerCreatePage.runProcessInstance();
|
|
137
|
+
});
|
|
138
|
+
await SM_8_11_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
|
|
139
|
+
await navigationPage.goToOperate();
|
|
140
|
+
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
|
|
141
|
+
await operateHomePage.clickProcessesTab();
|
|
142
|
+
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
143
|
+
await operateProcessInstancePage.activeIconAssertion();
|
|
144
|
+
await operateProcessInstancePage.completedIconAssertion();
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
(0, SM_8_11_1.test)('Deploy and run process with run configuration and verify in Operate', async ({ modelerHomePage, modelerCreatePage, navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
148
|
+
SM_8_11_1.test.slow();
|
|
149
|
+
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
150
|
+
const processName = 'Run_Config_Process_' + randomString;
|
|
151
|
+
const businessId = `bid-${Date.now()}-${randomString}`;
|
|
152
|
+
const variables = '{"orderNumber": "A12BH98", "amount": 185.34}';
|
|
153
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
154
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
155
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
156
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
157
|
+
});
|
|
158
|
+
await SM_8_11_1.test.step('Model a simple job worker diagram', async () => {
|
|
159
|
+
await modelerCreatePage.modelJobWorkerDiagram(processName);
|
|
160
|
+
});
|
|
161
|
+
await SM_8_11_1.test.step('Deploy and run process with variables and Business ID', async () => {
|
|
162
|
+
await modelerCreatePage.runProcessInstance(variables, '', businessId);
|
|
163
|
+
});
|
|
164
|
+
await SM_8_11_1.test.step('View process instance in Operate and assert run configuration is visible', async () => {
|
|
165
|
+
await navigationPage.goToOperate();
|
|
166
|
+
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({
|
|
167
|
+
timeout: 120000,
|
|
168
|
+
});
|
|
169
|
+
await operateHomePage.clickProcessesTab();
|
|
170
|
+
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
171
|
+
await operateProcessInstancePage.assertBusinessIdVisible(businessId);
|
|
172
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('orderNumber', '"A12BH98"');
|
|
173
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('amount', '185.34');
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
(0, SM_8_11_1.test)('Conditional Events - Deploy, verify in Operate and verify process in Optimize dashboard @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, optimizeHomePage, optimizeDashboardPage, }) => {
|
|
177
|
+
SM_8_11_1.test.slow();
|
|
178
|
+
const bpmnFileName = 'Conditional_Events_All.bpmn';
|
|
179
|
+
const processName = 'Conditional Events Auto-Run';
|
|
180
|
+
await SM_8_11_1.test.step('Open Cross Component Test Project and upload BPMN file', async () => {
|
|
181
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
182
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
183
|
+
await modelerHomePage.clickUploadFilesButton();
|
|
184
|
+
await (0, fileUpload_1.uploadFile)(page, bpmnFileName);
|
|
185
|
+
});
|
|
186
|
+
await SM_8_11_1.test.step('Open uploaded BPMN diagram', async () => {
|
|
187
|
+
await (0, sleep_1.sleep)(5000);
|
|
188
|
+
await modelerHomePage.clickProcessDiagram(bpmnFileName.replace('.bpmn', ''));
|
|
189
|
+
});
|
|
190
|
+
await SM_8_11_1.test.step('Deploy and run process with variable', async () => {
|
|
191
|
+
const variables = '{"myVar": 8}';
|
|
192
|
+
await modelerCreatePage.runProcessInstance(variables);
|
|
193
|
+
});
|
|
194
|
+
await SM_8_11_1.test.step('View process instance in Operate and verify completion', async () => {
|
|
195
|
+
await navigationPage.goToOperate();
|
|
196
|
+
await operateHomePage.clickProcessesTab();
|
|
197
|
+
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
198
|
+
await operateProcessInstancePage.assertProcessCompleteStatusWithRetry(60000, 15);
|
|
199
|
+
await operateProcessInstancePage.assertProcessVariableContainsText('myVar', '8');
|
|
200
|
+
});
|
|
201
|
+
if (process.env.IS_OPTIMIZE !== 'false') {
|
|
202
|
+
await SM_8_11_1.test.step('Navigate to Optimize and verify process appears in dashboard (CE-OPT-01)', async () => {
|
|
203
|
+
await navigationPage.goToOptimize();
|
|
204
|
+
await optimizeHomePage.clickDashboardLink();
|
|
205
|
+
await (0, sleep_1.sleep)(60000);
|
|
206
|
+
await page.reload();
|
|
207
|
+
await optimizeDashboardPage.clickFilterTable();
|
|
208
|
+
await optimizeDashboardPage.fillFilterTable(processName);
|
|
209
|
+
await optimizeDashboardPage.processAssertion(processName);
|
|
210
|
+
});
|
|
211
|
+
await SM_8_11_1.test.step('Verify the Conditional Events process link is navigable in the Optimize dashboard (CE-OPT-02)', async () => {
|
|
212
|
+
await page.reload();
|
|
213
|
+
await optimizeDashboardPage.clickFilterTable();
|
|
214
|
+
await optimizeDashboardPage.fillFilterTable(processName);
|
|
215
|
+
await optimizeDashboardPage.processAssertion(processName);
|
|
216
|
+
await page.getByTitle(processName).first().click({ timeout: 60000 });
|
|
217
|
+
await (0, test_1.expect)(optimizeHomePage.optimizeBanner).toBeVisible({
|
|
218
|
+
timeout: 60000,
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
});
|
package/package.json
CHANGED
package/playwright.config.ts
CHANGED
|
@@ -104,6 +104,27 @@ const useReportersWithSlack: any[] = [
|
|
|
104
104
|
: '';
|
|
105
105
|
return `Test Results for c8Run with 8.7-SNAPSHOT version - OS: ${process.env.OS}${dockerSuffix}${databaseSuffix}`;
|
|
106
106
|
}
|
|
107
|
+
case 'SM-8.11': {
|
|
108
|
+
const searchEngine =
|
|
109
|
+
process.env.SEARCH_ENGINE || 'Elasticsearch';
|
|
110
|
+
const isRBA = process.env.IS_RBA === 'true';
|
|
111
|
+
const isMT = process.env.IS_MT === 'true';
|
|
112
|
+
const isDS = process.env.IS_DS === 'true';
|
|
113
|
+
const isLICENSEKEY = process.env.IS_LICENSE_KEY === 'true';
|
|
114
|
+
|
|
115
|
+
let suffix = '';
|
|
116
|
+
if (isRBA) suffix += ' - RBA';
|
|
117
|
+
if (isMT) suffix += ' - Multi-Tenancy';
|
|
118
|
+
if (isDS) suffix += ' - DocumentStore';
|
|
119
|
+
if (isLICENSEKEY)
|
|
120
|
+
suffix += ` - License-Key- ${process.env.LICENSE_KEY}`;
|
|
121
|
+
const tasklistSuffix = process.env.TASKLIST_VERSION
|
|
122
|
+
? ` - Tasklist ${process.env.TASKLIST_VERSION.toUpperCase()} mode`
|
|
123
|
+
: '';
|
|
124
|
+
suffix += tasklistSuffix;
|
|
125
|
+
|
|
126
|
+
return `Test Results for Self-Managed with Helm with Latest 8.11-SNAPSHOT Versions (${searchEngine})${suffix} - ${projectName}`;
|
|
127
|
+
}
|
|
107
128
|
case 'SM-8.10': {
|
|
108
129
|
const searchEngine =
|
|
109
130
|
process.env.SEARCH_ENGINE || 'Elasticsearch';
|