@camunda/e2e-test-suite 0.0.2 → 0.0.3
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.7/IdentityPage.js +1 -1
- package/dist/pages/SM-8.7/IdentityUsersPage.js +1 -1
- package/dist/pages/SM-8.7/OperateProcessesPage.d.ts +4 -0
- package/dist/pages/SM-8.7/OperateProcessesPage.js +10 -0
- package/dist/tests/SM-8.7/connectors-user-flows.spec.js +2 -2
- package/dist/tests/SM-8.7/console-user-flows.spec.js +2 -2
- package/dist/tests/SM-8.7/hto-user-flows.spec.js +4 -4
- package/dist/tests/SM-8.7/mt-enabled-user-flows.spec.js +4 -4
- package/dist/tests/SM-8.7/optimize-user-flows.spec.js +2 -2
- package/dist/tests/SM-8.7/play.spec.js +2 -2
- package/dist/tests/SM-8.7/rba-enabled-user-flows.spec.js +16 -9
- package/dist/tests/SM-8.7/smoke-tests.spec.js +4 -2
- package/dist/tests/SM-8.7/web-modeler-user-flows.spec.js +2 -2
- package/dist/utils/keycloak.d.ts +3 -2
- package/dist/utils/keycloak.js +7 -5
- package/package.json +1 -1
|
@@ -109,7 +109,7 @@ class IdentityPage {
|
|
|
109
109
|
name: 'create group',
|
|
110
110
|
});
|
|
111
111
|
this.authorizationsTab = page.getByRole('tab', { name: 'Authorizations' });
|
|
112
|
-
this.tenantTab = page.
|
|
112
|
+
this.tenantTab = page.locator('a').filter({ hasText: 'Tenants' });
|
|
113
113
|
this.licenseKeyTagNonProduction = page
|
|
114
114
|
.getByText('Non-production license')
|
|
115
115
|
.first();
|
|
@@ -169,7 +169,7 @@ class IdentityUsersPage {
|
|
|
169
169
|
}
|
|
170
170
|
async clickCreateResourceAuthorizationButton() {
|
|
171
171
|
await (0, test_1.expect)(this.createResourceAuthorizationButton).toBeVisible({
|
|
172
|
-
timeout:
|
|
172
|
+
timeout: 1000,
|
|
173
173
|
});
|
|
174
174
|
await this.createResourceAuthorizationButton.click();
|
|
175
175
|
}
|
|
@@ -9,6 +9,8 @@ declare class OperateProcessesPage {
|
|
|
9
9
|
readonly processPageHeading: Locator;
|
|
10
10
|
readonly noMatchingInstancesMessage: Locator;
|
|
11
11
|
readonly processFinishedInstancesCheckbox: Locator;
|
|
12
|
+
readonly tenantDropdown: Locator;
|
|
13
|
+
readonly tenantDropdownOption: Locator;
|
|
12
14
|
constructor(page: Page);
|
|
13
15
|
private checkCheckbox;
|
|
14
16
|
private uncheckCheckbox;
|
|
@@ -21,6 +23,8 @@ declare class OperateProcessesPage {
|
|
|
21
23
|
clickFinishedProcessInstancesCheckbox(): Promise<void>;
|
|
22
24
|
private toggleActiveCheckboxOn;
|
|
23
25
|
private toggleCompletedCheckbox;
|
|
26
|
+
clickTenantDropdown(): Promise<void>;
|
|
27
|
+
clickTenantDropdownOption(): Promise<void>;
|
|
24
28
|
clickProcessInstanceLink(processName: string, type?: 'active' | 'completed'): Promise<void>;
|
|
25
29
|
}
|
|
26
30
|
export { OperateProcessesPage };
|
|
@@ -14,6 +14,8 @@ class OperateProcessesPage {
|
|
|
14
14
|
processPageHeading;
|
|
15
15
|
noMatchingInstancesMessage;
|
|
16
16
|
processFinishedInstancesCheckbox;
|
|
17
|
+
tenantDropdown;
|
|
18
|
+
tenantDropdownOption;
|
|
17
19
|
constructor(page) {
|
|
18
20
|
this.page = page;
|
|
19
21
|
this.processResultCount = page.getByTestId('result-count');
|
|
@@ -36,6 +38,8 @@ class OperateProcessesPage {
|
|
|
36
38
|
this.processFinishedInstancesCheckbox = page
|
|
37
39
|
.getByTestId('filter-finished-instances')
|
|
38
40
|
.getByRole('checkbox');
|
|
41
|
+
this.tenantDropdown = page.getByRole('combobox', { name: 'Tenant' });
|
|
42
|
+
this.tenantDropdownOption = page.getByRole('option', { name: 'All tenants' });
|
|
39
43
|
}
|
|
40
44
|
async checkCheckbox(checkbox) {
|
|
41
45
|
if (!(await checkbox.isChecked())) {
|
|
@@ -100,6 +104,12 @@ class OperateProcessesPage {
|
|
|
100
104
|
await this.checkCheckbox(this.processCompletedCheckbox);
|
|
101
105
|
}
|
|
102
106
|
}
|
|
107
|
+
async clickTenantDropdown() {
|
|
108
|
+
await this.tenantDropdown.click();
|
|
109
|
+
}
|
|
110
|
+
async clickTenantDropdownOption() {
|
|
111
|
+
await this.tenantDropdownOption.click();
|
|
112
|
+
}
|
|
103
113
|
async clickProcessInstanceLink(processName, type = 'active') {
|
|
104
114
|
const MAX_ATTEMPTS = 100;
|
|
105
115
|
if (type === 'active') {
|
|
@@ -6,8 +6,8 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
6
6
|
const UtlitiesPage_1 = require("../../pages/SM-8.7/UtlitiesPage");
|
|
7
7
|
const keycloak_1 = require("../../utils/keycloak");
|
|
8
8
|
SM_8_7_1.test.describe.parallel('Connectors User Flow Tests', () => {
|
|
9
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
10
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
9
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, identityTenantPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
10
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
11
11
|
});
|
|
12
12
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
13
13
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -8,8 +8,8 @@ const keycloak_1 = require("../../utils/keycloak");
|
|
|
8
8
|
SM_8_7_1.test.describe.parallel('Console User Flow Tests', () => {
|
|
9
9
|
const defaultTags = ['dev', 'custom', 'stage', 'prod', 'test'];
|
|
10
10
|
const customPropertyDescription = 'This is the main integration environment for the Camunda Platform.';
|
|
11
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
12
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
11
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, identityTenantPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
12
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
13
13
|
});
|
|
14
14
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
15
15
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -6,17 +6,17 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
6
6
|
const UtlitiesPage_1 = require("../../pages/SM-8.7/UtlitiesPage");
|
|
7
7
|
const keycloak_1 = require("../../utils/keycloak");
|
|
8
8
|
SM_8_7_1.test.describe.parallel('HTO User Flow Tests', () => {
|
|
9
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, context, }) => {
|
|
9
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, context, identityTenantPage, }) => {
|
|
10
10
|
await context.clearCookies();
|
|
11
11
|
const user1 = 'lisa' + (await (0, _setup_1.generateRandomStringAsync)(3)).toLowerCase();
|
|
12
12
|
const user2 = 'bart' + (await (0, _setup_1.generateRandomStringAsync)(3)).toLowerCase();
|
|
13
13
|
navigationPage.user1 = user1;
|
|
14
14
|
navigationPage.user2 = user2;
|
|
15
|
-
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user1, 'lisa');
|
|
15
|
+
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user1, 'lisa', identityTenantPage);
|
|
16
16
|
await context.clearCookies();
|
|
17
|
-
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user2, 'bart');
|
|
17
|
+
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user2, 'bart', identityTenantPage);
|
|
18
18
|
await context.clearCookies();
|
|
19
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
19
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
20
20
|
});
|
|
21
21
|
SM_8_7_1.test.afterEach(async ({ page, context }, testInfo) => {
|
|
22
22
|
await context.clearCookies();
|
|
@@ -9,17 +9,17 @@ const keycloak_1 = require("../../utils/keycloak");
|
|
|
9
9
|
if (process.env.IS_MT === 'true') {
|
|
10
10
|
SM_8_7_1.test.describe.configure({ mode: 'parallel' });
|
|
11
11
|
SM_8_7_1.test.describe('MT Enabled User Flows Test', () => {
|
|
12
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, context, }) => {
|
|
12
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, context, identityTenantPage, }) => {
|
|
13
13
|
await context.clearCookies();
|
|
14
14
|
const user1 = 'lisa' + (await (0, _setup_1.generateRandomStringAsync)(3)).toLowerCase();
|
|
15
15
|
const user2 = 'bart' + (await (0, _setup_1.generateRandomStringAsync)(3)).toLowerCase();
|
|
16
16
|
navigationPage.user1 = user1;
|
|
17
17
|
navigationPage.user2 = user2;
|
|
18
|
-
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user1, 'lisa');
|
|
18
|
+
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user1, 'lisa', identityTenantPage);
|
|
19
19
|
await context.clearCookies();
|
|
20
|
-
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user2, 'bart');
|
|
20
|
+
await (0, keycloak_1.createUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, user2, 'bart', identityTenantPage);
|
|
21
21
|
await context.clearCookies();
|
|
22
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
22
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
23
23
|
});
|
|
24
24
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
25
25
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -12,8 +12,8 @@ if (env_1.isOpenSearch) {
|
|
|
12
12
|
SM_8_7_1.test.skip();
|
|
13
13
|
}
|
|
14
14
|
SM_8_7_1.test.describe.parallel('Optimize User Flow Tests', () => {
|
|
15
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
16
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
15
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, identityTenantPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
16
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
17
17
|
});
|
|
18
18
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
19
19
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -5,8 +5,8 @@ const SM_8_7_1 = require("../../fixtures/SM-8.7");
|
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const keycloak_1 = require("../../utils/keycloak");
|
|
7
7
|
SM_8_7_1.test.describe('Deploy and run a process in Play', () => {
|
|
8
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
9
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
8
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, identityTenantPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
9
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
10
10
|
});
|
|
11
11
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
12
12
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -4,16 +4,16 @@ const test_1 = require("@playwright/test");
|
|
|
4
4
|
const SM_8_7_1 = require("../../fixtures/SM-8.7");
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const UtlitiesPage_1 = require("../../pages/SM-8.7/UtlitiesPage");
|
|
7
|
-
|
|
7
|
+
const keycloak_1 = require("../../utils/keycloak");
|
|
8
8
|
SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
9
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
|
|
10
|
-
await
|
|
9
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage }, testInfo) => {
|
|
10
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
11
11
|
});
|
|
12
12
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
13
13
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
14
14
|
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
15
15
|
});
|
|
16
|
-
(0, SM_8_7_1.test)('RBA On User Flow - No User Permission', async ({ page, identityPage, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, navigationPage, }) => {
|
|
16
|
+
(0, SM_8_7_1.test)('RBA On User Flow - No User Permission', async ({ page, identityPage, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, navigationPage, context, }) => {
|
|
17
17
|
if (process.env.IS_RBA !== 'true') {
|
|
18
18
|
SM_8_7_1.test.skip(true, 'Skipping test because test environment does not have RBA enabled');
|
|
19
19
|
}
|
|
@@ -21,7 +21,10 @@ SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
21
21
|
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
22
22
|
const processName = 'RBA_NO_PERM' + randomString;
|
|
23
23
|
await SM_8_7_1.test.step('Open Cross Component Test Project', async () => {
|
|
24
|
-
await
|
|
24
|
+
await context.clearCookies();
|
|
25
|
+
await navigationPage.goToModeler();
|
|
26
|
+
await modelerHomePage.clickCreateNewProjectButton();
|
|
27
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
25
28
|
});
|
|
26
29
|
await SM_8_7_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
27
30
|
await (0, UtlitiesPage_1.runMultipleProcesses)(modelerHomePage, modelerCreatePage, 2, processName);
|
|
@@ -67,7 +70,7 @@ SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
67
70
|
});
|
|
68
71
|
});
|
|
69
72
|
});
|
|
70
|
-
(0, SM_8_7_1.test)('RBA On User Flow - Permission for One Process', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, identityUsersPage, loginPage, navigationPage, identityPage, settingsPage, }) => {
|
|
73
|
+
(0, SM_8_7_1.test)('RBA On User Flow - Permission for One Process', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, identityUsersPage, loginPage, navigationPage, identityPage, settingsPage, context, }) => {
|
|
71
74
|
if (process.env.IS_RBA !== 'true') {
|
|
72
75
|
SM_8_7_1.test.skip(true, 'Skipping test because test environment does not have RBA enabled');
|
|
73
76
|
}
|
|
@@ -83,10 +86,12 @@ SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
83
86
|
});
|
|
84
87
|
});
|
|
85
88
|
await SM_8_7_1.test.step('Navigate to Web Modeler', async () => {
|
|
89
|
+
await context.clearCookies();
|
|
86
90
|
await navigationPage.goToModeler();
|
|
87
91
|
});
|
|
88
92
|
await SM_8_7_1.test.step('Open Cross Component Test Project', async () => {
|
|
89
|
-
await modelerHomePage.
|
|
93
|
+
await modelerHomePage.clickCreateNewProjectButton();
|
|
94
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
90
95
|
});
|
|
91
96
|
await SM_8_7_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
92
97
|
await (0, UtlitiesPage_1.runMultipleProcesses)(modelerHomePage, modelerCreatePage, 2, processName, processName);
|
|
@@ -161,7 +166,7 @@ SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
161
166
|
});
|
|
162
167
|
});
|
|
163
168
|
});
|
|
164
|
-
(0, SM_8_7_1.test)('RBA On User Flow - Permission for All Processes', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, identityUsersPage, navigationPage, identityPage, }) => {
|
|
169
|
+
(0, SM_8_7_1.test)('RBA On User Flow - Permission for All Processes', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, identityUsersPage, navigationPage, identityPage, context, }) => {
|
|
165
170
|
if (process.env.IS_RBA !== 'true') {
|
|
166
171
|
SM_8_7_1.test.skip(true, 'Skipping test because test environment does not have RBA enabled');
|
|
167
172
|
}
|
|
@@ -177,10 +182,12 @@ SM_8_7_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
177
182
|
});
|
|
178
183
|
});
|
|
179
184
|
await SM_8_7_1.test.step('Navigate to Web Modeler', async () => {
|
|
185
|
+
await context.clearCookies();
|
|
180
186
|
await navigationPage.goToModeler();
|
|
181
187
|
});
|
|
182
188
|
await SM_8_7_1.test.step('Open Cross Component Test Project', async () => {
|
|
183
|
-
await modelerHomePage.
|
|
189
|
+
await modelerHomePage.clickCreateNewProjectButton();
|
|
190
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
184
191
|
});
|
|
185
192
|
await SM_8_7_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
186
193
|
await (0, UtlitiesPage_1.runMultipleProcesses)(modelerHomePage, modelerCreatePage, 2, processName, processName);
|
|
@@ -8,8 +8,8 @@ const env_1 = require("../../utils/env");
|
|
|
8
8
|
const keycloak_1 = require("../../utils/keycloak");
|
|
9
9
|
const optimizeReportUtils_1 = require("./optimizeReportUtils");
|
|
10
10
|
SM_8_7_1.test.describe.parallel('Smoke Tests', () => {
|
|
11
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
12
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
11
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, identityTenantPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
12
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
13
13
|
});
|
|
14
14
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
15
15
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -127,6 +127,8 @@ SM_8_7_1.test.describe.parallel('Smoke Tests', () => {
|
|
|
127
127
|
await SM_8_7_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
128
128
|
await navigationPage.goToOperate();
|
|
129
129
|
await operateHomePage.clickProcessesTab();
|
|
130
|
+
await operateProcessesPage.clickTenantDropdown();
|
|
131
|
+
await operateProcessesPage.clickTenantDropdownOption();
|
|
130
132
|
await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
|
|
131
133
|
const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
|
|
132
134
|
(0, test_1.expect)(result).toBe('completed');
|
|
@@ -6,8 +6,8 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
6
6
|
const UtlitiesPage_1 = require("../../pages/SM-8.7/UtlitiesPage");
|
|
7
7
|
const keycloak_1 = require("../../utils/keycloak");
|
|
8
8
|
SM_8_7_1.test.describe.parallel('Web Modeler User Flow Tests', () => {
|
|
9
|
-
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, }) => {
|
|
10
|
-
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage);
|
|
9
|
+
SM_8_7_1.test.beforeEach(async ({ navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage, }) => {
|
|
10
|
+
await (0, keycloak_1.setupKeycloakUser)(navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage);
|
|
11
11
|
});
|
|
12
12
|
SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
|
|
13
13
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
package/dist/utils/keycloak.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { NavigationPage } from '../pages/SM-8.7/NavigationPage';
|
|
|
2
2
|
import { IdentityPage } from '../pages/SM-8.7/IdentityPage';
|
|
3
3
|
import { KeycloakLoginPage } from '../pages/SM-8.7/KeycloakLoginPage';
|
|
4
4
|
import { KeycloakAdminPage } from '../pages/SM-8.7/KeycloakAdminPage';
|
|
5
|
+
import { IdentityTenantPage } from '../pages/SM-8.7/IdentityTenantPage';
|
|
5
6
|
export declare const keycloakAdminCredentials: () => {
|
|
6
7
|
username: string;
|
|
7
8
|
password: string;
|
|
@@ -9,5 +10,5 @@ export declare const keycloakAdminCredentials: () => {
|
|
|
9
10
|
export declare const adminUser = "demo";
|
|
10
11
|
export declare const adminPassword: string;
|
|
11
12
|
export declare const setAdminUserCredentials: (navigationPage: NavigationPage) => void;
|
|
12
|
-
export declare const setupKeycloakUser: (navigationPage: NavigationPage, identityPage: IdentityPage, keycloakLoginPage: KeycloakLoginPage, keycloakAdminPage: KeycloakAdminPage) => Promise<void>;
|
|
13
|
-
export declare const createUser: (navigationPage: NavigationPage, identityPage: IdentityPage, keycloakLoginPage: KeycloakLoginPage, keycloakAdminPage: KeycloakAdminPage, username: string, password: string) => Promise<void>;
|
|
13
|
+
export declare const setupKeycloakUser: (navigationPage: NavigationPage, identityPage: IdentityPage, keycloakLoginPage: KeycloakLoginPage, keycloakAdminPage: KeycloakAdminPage, identityTenantPage: IdentityTenantPage) => Promise<void>;
|
|
14
|
+
export declare const createUser: (navigationPage: NavigationPage, identityPage: IdentityPage, keycloakLoginPage: KeycloakLoginPage, keycloakAdminPage: KeycloakAdminPage, username: string, password: string, identityTenantPage: IdentityTenantPage) => Promise<void>;
|
package/dist/utils/keycloak.js
CHANGED
|
@@ -15,22 +15,22 @@ const setAdminUserCredentials = (navigationPage) => {
|
|
|
15
15
|
navigationPage.activePassword = exports.adminPassword;
|
|
16
16
|
};
|
|
17
17
|
exports.setAdminUserCredentials = setAdminUserCredentials;
|
|
18
|
-
const setupKeycloakUser = async (navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage) => {
|
|
18
|
+
const setupKeycloakUser = async (navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, identityTenantPage) => {
|
|
19
19
|
const testUsername = `test-user-${new Date().getTime()}-${Math.random()
|
|
20
20
|
.toString(36)
|
|
21
21
|
.substring(7)}`;
|
|
22
22
|
const testPassword = 'test-password';
|
|
23
23
|
await createKeycloakUser(navigationPage, keycloakLoginPage, keycloakAdminPage, testUsername, testPassword);
|
|
24
24
|
(0, exports.setAdminUserCredentials)(navigationPage);
|
|
25
|
-
await createIdentityUser(navigationPage, identityPage, testUsername);
|
|
25
|
+
await createIdentityUser(navigationPage, identityPage, identityTenantPage, testUsername);
|
|
26
26
|
navigationPage.activeUser = testUsername;
|
|
27
27
|
navigationPage.activePassword = testPassword;
|
|
28
28
|
};
|
|
29
29
|
exports.setupKeycloakUser = setupKeycloakUser;
|
|
30
|
-
const createUser = async (navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, username, password) => {
|
|
30
|
+
const createUser = async (navigationPage, identityPage, keycloakLoginPage, keycloakAdminPage, username, password, identityTenantPage) => {
|
|
31
31
|
await createKeycloakUser(navigationPage, keycloakLoginPage, keycloakAdminPage, username, password);
|
|
32
32
|
(0, exports.setAdminUserCredentials)(navigationPage);
|
|
33
|
-
await createIdentityUser(navigationPage, identityPage, username);
|
|
33
|
+
await createIdentityUser(navigationPage, identityPage, identityTenantPage, username);
|
|
34
34
|
};
|
|
35
35
|
exports.createUser = createUser;
|
|
36
36
|
const createKeycloakUser = async (navigationPage, keycloakLoginPage, keycloakAdminPage, username, password) => {
|
|
@@ -48,7 +48,7 @@ const createKeycloakUser = async (navigationPage, keycloakLoginPage, keycloakAdm
|
|
|
48
48
|
await keycloakAdminPage.fillPassword(password);
|
|
49
49
|
await keycloakAdminPage.savePassword();
|
|
50
50
|
};
|
|
51
|
-
const createIdentityUser = async (navigationPage, identityPage, username) => {
|
|
51
|
+
const createIdentityUser = async (navigationPage, identityPage, identityTenantPage, username) => {
|
|
52
52
|
await navigationPage.goToIdentity();
|
|
53
53
|
await identityPage.clickUsersLink();
|
|
54
54
|
await identityPage.clickUser(username);
|
|
@@ -63,4 +63,6 @@ const createIdentityUser = async (navigationPage, identityPage, username) => {
|
|
|
63
63
|
await identityPage.clickIdentityCheckbox();
|
|
64
64
|
await identityPage.clickModelerAdminCheckbox();
|
|
65
65
|
await identityPage.clickAddButton();
|
|
66
|
+
await identityPage.clickTenantTab();
|
|
67
|
+
await identityTenantPage.assignUserToTenant('default', username, username + '@camunda.com');
|
|
66
68
|
};
|