@camunda/e2e-test-suite 0.0.157 → 0.0.158
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/8.6/AppsPage.js +4 -1
- package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +1 -1
- package/dist/pages/8.6/ConsoleOrganizationPage.js +6 -3
- package/dist/pages/8.6/FormJsPage.d.ts +1 -0
- package/dist/pages/8.6/FormJsPage.js +3 -1
- package/dist/pages/8.6/HomePage.js +12 -2
- package/dist/pages/8.6/ModelerHomePage.d.ts +1 -0
- package/dist/pages/8.6/ModelerHomePage.js +22 -10
- package/dist/pages/8.6/OptimizeDashboardPage.d.ts +1 -1
- package/dist/pages/8.6/OptimizeDashboardPage.js +9 -6
- package/dist/pages/8.6/SignUpPage.d.ts +1 -1
- package/dist/pages/8.6/SignUpPage.js +2 -2
- package/dist/pages/8.6/TaskDetailsPage.js +4 -1
- package/dist/pages/8.6/UtilitiesPage.d.ts +4 -1
- package/dist/pages/8.6/UtilitiesPage.js +2 -2
- package/dist/tests/8.6/connectors-user-flows.spec.js +3 -1
- package/dist/tests/8.6/console-user-flows.spec.js +3 -1
- package/dist/tests/8.6/hto-user-flows.spec.js +5 -4
- package/dist/tests/8.6/navigation.spec.js +3 -1
- package/dist/tests/8.6/optimize-user-flows.spec.js +4 -2
- package/dist/tests/8.6/play.spec.js +3 -1
- package/dist/tests/8.6/rba-enabled-user-flows.spec.js +7 -4
- package/dist/tests/8.6/smoke-tests.spec.js +3 -1
- package/dist/tests/8.6/test-setup.spec.js +29 -22
- package/dist/tests/8.6/web-modeler-user-flows.spec.js +19 -13
- package/package.json +1 -1
|
@@ -21,7 +21,10 @@ class AppsPage {
|
|
|
21
21
|
tasklistListItem;
|
|
22
22
|
constructor(page) {
|
|
23
23
|
this.page = page;
|
|
24
|
-
this.modelerLink = page
|
|
24
|
+
this.modelerLink = page
|
|
25
|
+
.getByRole('link', { name: 'Modeler', exact: true })
|
|
26
|
+
.or(page.getByLabel('App Panel').getByLabel('Camunda Modeler'))
|
|
27
|
+
.first();
|
|
25
28
|
this.appSwitcherButton = page.getByLabel('App Switcher');
|
|
26
29
|
this.tasklistLink = page.getByRole('link', { name: 'Tasklist', exact: true });
|
|
27
30
|
this.operateLink = page.getByRole('link', { name: 'Operate', exact: true });
|
|
@@ -45,7 +45,7 @@ declare class ConsoleOrganizationPage {
|
|
|
45
45
|
readonly filterTableSearchbox: Locator;
|
|
46
46
|
constructor(page: Page);
|
|
47
47
|
clickUsersTab(): Promise<void>;
|
|
48
|
-
clickMainUser(): Promise<void>;
|
|
48
|
+
clickMainUser(email: string): Promise<void>;
|
|
49
49
|
clickAuthorizations(): Promise<void>;
|
|
50
50
|
clickCreateAuthorizedResourceButton(): Promise<void>;
|
|
51
51
|
processIdResourceAssertion(processId: string): Promise<void>;
|
|
@@ -166,9 +166,11 @@ class ConsoleOrganizationPage {
|
|
|
166
166
|
async clickUsersTab() {
|
|
167
167
|
await this.usersTab.click({ timeout: 60000 });
|
|
168
168
|
}
|
|
169
|
-
async clickMainUser() {
|
|
170
|
-
await
|
|
171
|
-
|
|
169
|
+
async clickMainUser(email) {
|
|
170
|
+
await this.filterTable([email]);
|
|
171
|
+
const user = this.rows.filter({ hasText: email }).first();
|
|
172
|
+
await (0, test_1.expect)(user).toBeVisible({ timeout: 60000 });
|
|
173
|
+
await user.click();
|
|
172
174
|
}
|
|
173
175
|
async clickAuthorizations() {
|
|
174
176
|
await (0, test_1.expect)(this.authorizedResources).toBeVisible({ timeout: 60000 });
|
|
@@ -448,6 +450,7 @@ class ConsoleOrganizationPage {
|
|
|
448
450
|
}
|
|
449
451
|
async filterTable(names) {
|
|
450
452
|
for (const name of names) {
|
|
453
|
+
await (0, test_1.expect)(this.filterTableSearchbox).toBeVisible({ timeout: 120000 });
|
|
451
454
|
await this.filterTableSearchbox.click({ timeout: 60000 });
|
|
452
455
|
await this.filterTableSearchbox.fill(name);
|
|
453
456
|
}
|
|
@@ -8,6 +8,7 @@ declare class FormJsPage {
|
|
|
8
8
|
readonly formEditor: Locator;
|
|
9
9
|
readonly keyInput: Locator;
|
|
10
10
|
readonly generalPanel: Locator;
|
|
11
|
+
readonly textFieldInForm: Locator;
|
|
11
12
|
constructor(page: Page);
|
|
12
13
|
clickAIFormGeneratorButton(): Promise<void>;
|
|
13
14
|
generateAIForm(request?: string): Promise<void>;
|
|
@@ -12,6 +12,7 @@ class FormJsPage {
|
|
|
12
12
|
formEditor;
|
|
13
13
|
keyInput;
|
|
14
14
|
generalPanel;
|
|
15
|
+
textFieldInForm;
|
|
15
16
|
constructor(page) {
|
|
16
17
|
this.page = page;
|
|
17
18
|
this.aiFormGeneratorButton = page.getByRole('button', {
|
|
@@ -21,8 +22,9 @@ class FormJsPage {
|
|
|
21
22
|
this.generateFormButton = page.getByRole('button', { name: 'Generate form' });
|
|
22
23
|
this.textField = page.locator('button[data-field-type="textfield"]');
|
|
23
24
|
this.formEditor = page.getByLabel('Form Definition');
|
|
24
|
-
this.generalPanel = page.
|
|
25
|
+
this.generalPanel = page.locator('[data-group-id="group-general"]').first();
|
|
25
26
|
this.keyInput = page.getByRole('textbox', { name: 'key' });
|
|
27
|
+
this.textFieldInForm = page.getByLabel('Form Definition');
|
|
26
28
|
}
|
|
27
29
|
async clickAIFormGeneratorButton() {
|
|
28
30
|
await this.aiFormGeneratorButton.click();
|
|
@@ -72,9 +72,19 @@ class HomePage {
|
|
|
72
72
|
await this.openOrganizationButton.click({ timeout: 60000 });
|
|
73
73
|
}
|
|
74
74
|
async clickSkipCustomization() {
|
|
75
|
-
|
|
76
|
-
await this.
|
|
75
|
+
try {
|
|
76
|
+
await (0, test_1.expect)(this.gettingStartedHeading).toBeVisible({
|
|
77
|
+
timeout: 20000,
|
|
78
|
+
});
|
|
79
|
+
await (0, test_1.expect)(this.buttonSkipCustomization).toBeVisible({
|
|
80
|
+
timeout: 30000,
|
|
81
|
+
});
|
|
82
|
+
await this.buttonSkipCustomization.click({ timeout: 60000 });
|
|
77
83
|
await this.closeInformationDialog();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error(error);
|
|
78
88
|
}
|
|
79
89
|
}
|
|
80
90
|
}
|
|
@@ -19,6 +19,7 @@ declare class ModelerHomePage {
|
|
|
19
19
|
readonly uploadFilesButton: Locator;
|
|
20
20
|
readonly messageBanner: Locator;
|
|
21
21
|
readonly closeButton: Locator;
|
|
22
|
+
readonly cancelButton: Locator;
|
|
22
23
|
readonly optionsButton: Locator;
|
|
23
24
|
readonly formNameBreadcrumb: (formName: string) => Locator;
|
|
24
25
|
constructor(page: Page);
|
|
@@ -24,6 +24,7 @@ class ModelerHomePage {
|
|
|
24
24
|
uploadFilesButton;
|
|
25
25
|
messageBanner;
|
|
26
26
|
closeButton;
|
|
27
|
+
cancelButton;
|
|
27
28
|
optionsButton;
|
|
28
29
|
formNameBreadcrumb;
|
|
29
30
|
constructor(page) {
|
|
@@ -59,6 +60,7 @@ class ModelerHomePage {
|
|
|
59
60
|
this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
|
|
60
61
|
this.messageBanner = page.locator('[data-test="close-top-banner"]');
|
|
61
62
|
this.closeButton = page.getByRole('button', { name: 'Got it - Dismiss' });
|
|
63
|
+
this.cancelButton = page.getByRole('button', { name: 'Cancel' });
|
|
62
64
|
this.optionsButton = page.getByRole('button', { name: 'Options' });
|
|
63
65
|
this.formNameBreadcrumb = (formName) => page.locator('button[data-test="breadcrumb-form"]', {
|
|
64
66
|
hasText: formName,
|
|
@@ -92,6 +94,7 @@ class ModelerHomePage {
|
|
|
92
94
|
await this.formNameInput.click({ timeout: 60000 });
|
|
93
95
|
await this.formNameInput.fill(name);
|
|
94
96
|
await this.formNameInput.press('Enter');
|
|
97
|
+
await (0, sleep_1.sleep)(200);
|
|
95
98
|
}
|
|
96
99
|
async reload() {
|
|
97
100
|
await this.page.reload();
|
|
@@ -139,16 +142,23 @@ class ModelerHomePage {
|
|
|
139
142
|
await this.enterNewProjectName(this.defaultFolderName);
|
|
140
143
|
}
|
|
141
144
|
async clickManageButton(retries = 3) {
|
|
145
|
+
await this.optionsButton.click({ timeout: 30000 });
|
|
142
146
|
for (let i = 0; i < retries; i++) {
|
|
143
147
|
try {
|
|
144
|
-
await
|
|
145
|
-
|
|
148
|
+
await (0, sleep_1.sleep)(5000);
|
|
149
|
+
if (await this.manageButton.isVisible({ timeout: 30000 })) {
|
|
150
|
+
await this.manageButton.click({ timeout: 10000 });
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
await this.clickOpenOrganizationsButton();
|
|
154
|
+
await this.optionsButton.click({ timeout: 30000 });
|
|
155
|
+
await (0, test_1.expect)(this.manageButton).toBeVisible({ timeout: 30000 });
|
|
156
|
+
await this.manageButton.click({ timeout: 30000 });
|
|
157
|
+
}
|
|
158
|
+
return;
|
|
146
159
|
}
|
|
147
160
|
catch (error) {
|
|
148
|
-
console.error(`Attempt ${i + 1} to click manage button failed: ${error}`);
|
|
149
161
|
await (0, sleep_1.sleep)(10000);
|
|
150
|
-
await this.clickOpenOrganizationsButton();
|
|
151
|
-
await this.clickOptionsButton();
|
|
152
162
|
}
|
|
153
163
|
}
|
|
154
164
|
throw new Error(`Failed to click manage button after ${retries} retries`);
|
|
@@ -158,13 +168,15 @@ class ModelerHomePage {
|
|
|
158
168
|
}
|
|
159
169
|
async clickMessageBanner() {
|
|
160
170
|
try {
|
|
161
|
-
|
|
162
|
-
this.
|
|
163
|
-
this.
|
|
164
|
-
|
|
171
|
+
const button = this.messageBanner
|
|
172
|
+
.or(this.closeButton)
|
|
173
|
+
.or(this.cancelButton)
|
|
174
|
+
.first();
|
|
175
|
+
await (0, test_1.expect)(button).toBeVisible({ timeout: 15000 });
|
|
176
|
+
await button.click();
|
|
165
177
|
}
|
|
166
178
|
catch {
|
|
167
|
-
console.log('No
|
|
179
|
+
console.log('No banner or close button found to click');
|
|
168
180
|
}
|
|
169
181
|
}
|
|
170
182
|
async assertFormBreadcrumbVisible(formName) {
|
|
@@ -6,6 +6,6 @@ declare class OptimizeDashboardPage {
|
|
|
6
6
|
clickFilterTable(): Promise<void>;
|
|
7
7
|
fillFilterTable(processName: string): Promise<void>;
|
|
8
8
|
processLinkAssertion(processName: string, maxRetries: number, retryDelay?: number): Promise<void>;
|
|
9
|
-
processOwnerNameAssertion(processName: string): Promise<void>;
|
|
9
|
+
processOwnerNameAssertion(processName: string, userEmail: string): Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export { OptimizeDashboardPage };
|
|
@@ -36,24 +36,27 @@ class OptimizeDashboardPage {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
async processOwnerNameAssertion(processName) {
|
|
40
|
-
const maxRetries =
|
|
39
|
+
async processOwnerNameAssertion(processName, userEmail) {
|
|
40
|
+
const maxRetries = 15;
|
|
41
41
|
const retryDelay = 60000;
|
|
42
|
+
const localPart = userEmail.split('@')[0];
|
|
43
|
+
const uuid = localPart.replace('qa-user-', '');
|
|
44
|
+
const result = !uuid ? 'QA Camunda' : `QA User ${uuid}`;
|
|
42
45
|
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
43
46
|
try {
|
|
44
|
-
await this.page.reload();
|
|
45
47
|
await (0, test_1.expect)(this.page.getByRole('row', {
|
|
46
|
-
name: `${processName}\nProcess\n\
|
|
48
|
+
name: `${processName}\nProcess\n\t${result}`,
|
|
47
49
|
})).toBeVisible({ timeout: 90000 });
|
|
48
50
|
return;
|
|
49
51
|
}
|
|
50
52
|
catch (error) {
|
|
51
53
|
if (attempt < maxRetries - 1) {
|
|
52
|
-
console.warn(`Attempt ${attempt + 1} failed
|
|
54
|
+
console.warn(`Attempt ${attempt + 1} failed for asserting owner name ${result} assertion for ${processName} in Optimize.. Retrying...`);
|
|
55
|
+
await this.page.reload();
|
|
53
56
|
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
54
57
|
}
|
|
55
58
|
else {
|
|
56
|
-
throw new Error(`
|
|
59
|
+
throw new Error(`Owner name ${result} assertion for ${processName} failed after ${maxRetries} attempts`);
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
}
|
|
@@ -27,7 +27,7 @@ declare class SignUpPage {
|
|
|
27
27
|
readonly verifyEmailText: Locator;
|
|
28
28
|
readonly signupFailedText: Locator;
|
|
29
29
|
constructor(page: Page);
|
|
30
|
-
signupToC8(emailAddress: string): Promise<void>;
|
|
30
|
+
signupToC8(emailAddress: string, password: string): Promise<void>;
|
|
31
31
|
clickFirstNameInput(): Promise<void>;
|
|
32
32
|
fillFirstNameInput(firstName: string): Promise<void>;
|
|
33
33
|
clickLastNameInput(): Promise<void>;
|
|
@@ -78,7 +78,7 @@ class SignUpPage {
|
|
|
78
78
|
this.verifyEmailText = page.getByText('Verify your email');
|
|
79
79
|
this.signupFailedText = page.getByText('Sign up failed');
|
|
80
80
|
}
|
|
81
|
-
async signupToC8(emailAddress) {
|
|
81
|
+
async signupToC8(emailAddress, password) {
|
|
82
82
|
await this.page.goto('https://accounts.ultrawombat.com/signup');
|
|
83
83
|
await this.clickFirstNameInput();
|
|
84
84
|
await this.fillFirstNameInput('QA');
|
|
@@ -87,7 +87,7 @@ class SignUpPage {
|
|
|
87
87
|
await this.clickEmailInput();
|
|
88
88
|
await this.fillEmailInput(emailAddress);
|
|
89
89
|
await this.clickPasswordInput();
|
|
90
|
-
await this.fillPasswordInput(
|
|
90
|
+
await this.fillPasswordInput(password);
|
|
91
91
|
await this.clickSignupButton();
|
|
92
92
|
await (0, test_1.expect)(this.verifyEmailText.first()).toBeVisible({
|
|
93
93
|
timeout: 40000,
|
|
@@ -195,7 +195,10 @@ class TaskDetailsPage {
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
async fillTextInput(value) {
|
|
198
|
+
await (0, test_1.expect)(this.textInput).toBeVisible({ timeout: 90000 });
|
|
199
|
+
await this.textInput.click();
|
|
198
200
|
await this.textInput.fill(value, { timeout: 90000 });
|
|
201
|
+
(0, test_1.expect)(await this.textInput.inputValue()).toBe(value);
|
|
199
202
|
}
|
|
200
203
|
async fillTextBox(text) {
|
|
201
204
|
await this.textBox.fill(text);
|
|
@@ -204,7 +207,7 @@ class TaskDetailsPage {
|
|
|
204
207
|
await this.nameInput.fill(nameInput);
|
|
205
208
|
}
|
|
206
209
|
async clickSubmitButton() {
|
|
207
|
-
await (0, test_1.expect)(this.submitButton).toBeVisible();
|
|
210
|
+
await (0, test_1.expect)(this.submitButton).toBeVisible({ timeout: 60000 });
|
|
208
211
|
await (0, test_1.expect)(this.submitButton).toBeEnabled();
|
|
209
212
|
await this.submitButton.click();
|
|
210
213
|
}
|
|
@@ -12,7 +12,10 @@ import { OperateProcessesPage } from './OperateProcessesPage';
|
|
|
12
12
|
import { OperateProcessInstancePage } from './OperateProcessInstancePage';
|
|
13
13
|
import { ConnectorSettingsPage } from './ConnectorSettingsPage';
|
|
14
14
|
import { LoginPage } from './LoginPage';
|
|
15
|
-
export declare function loginWithRetry(page: Page, loginPage: LoginPage,
|
|
15
|
+
export declare function loginWithRetry(page: Page, loginPage: LoginPage, testUser: {
|
|
16
|
+
username: string;
|
|
17
|
+
password: string;
|
|
18
|
+
}, timeout: number, maxRetries?: number): Promise<void>;
|
|
16
19
|
export declare function modelRestConnector(modelerCreatePage: ModelerCreatePage, connectorSettingsPage: ConnectorSettingsPage, processName: string, url: string, auth: string, resultExpression: string, resultVariable?: string, basicAuthCredentials?: {
|
|
17
20
|
username: string;
|
|
18
21
|
password: string;
|
|
@@ -8,12 +8,12 @@ const sleep_1 = require("../../utils/sleep");
|
|
|
8
8
|
const randomSleep_1 = require("../../utils/randomSleep");
|
|
9
9
|
const fileUpload_1 = require("../../utils/fileUpload");
|
|
10
10
|
const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
|
|
11
|
-
async function loginWithRetry(page, loginPage, timeout, maxRetries = 3) {
|
|
11
|
+
async function loginWithRetry(page, loginPage, testUser, timeout, maxRetries = 3) {
|
|
12
12
|
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
13
13
|
try {
|
|
14
14
|
await page.goto('/');
|
|
15
15
|
await (0, sleep_1.sleep)(timeout);
|
|
16
|
-
await loginPage.login();
|
|
16
|
+
await loginPage.login(testUser);
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
@@ -8,12 +8,14 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
8
8
|
const sleep_1 = require("../../utils/sleep");
|
|
9
9
|
const apiHelpers_1 = require("../../utils/apiHelpers");
|
|
10
10
|
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
11
|
+
const users_1 = require("../../utils/users");
|
|
12
|
+
const testUser = (0, users_1.getTestUser)('seventeenthUser');
|
|
11
13
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
12
14
|
_8_6_1.test.describe('Connectors User Flow Tests', () => {
|
|
13
15
|
const defaultClusterName = 'Test Cluster';
|
|
14
16
|
const awsCluster = 'AWS Cluster';
|
|
15
17
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
16
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
18
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
17
19
|
});
|
|
18
20
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
19
21
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -9,12 +9,14 @@ const googleapi_1 = require("../../utils/googleapi");
|
|
|
9
9
|
const formatDate_1 = require("../../utils/formatDate");
|
|
10
10
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
11
11
|
const constants_1 = require("../../utils/constants");
|
|
12
|
+
const users_1 = require("../../utils/users");
|
|
13
|
+
const testUser = (0, users_1.getTestUser)('eighteenthUser');
|
|
12
14
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
13
15
|
_8_6_1.test.describe('Console User Flow Tests', () => {
|
|
14
16
|
const defaultClusterName = 'Test Cluster';
|
|
15
17
|
const awsCluster = 'AWS Cluster';
|
|
16
18
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
17
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
19
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
18
20
|
});
|
|
19
21
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
20
22
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -11,11 +11,13 @@ const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
|
11
11
|
const sleep_1 = require("../../utils/sleep");
|
|
12
12
|
const LoginPage_1 = require("../../pages/8.6/LoginPage");
|
|
13
13
|
const resetSession_1 = require("../../utils/resetSession");
|
|
14
|
+
const users_1 = require("../../utils/users");
|
|
15
|
+
const testUser = (0, users_1.getTestUser)('nineteenthUser');
|
|
14
16
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
15
17
|
_8_6_1.test.describe('HTO User Flow Tests', () => {
|
|
16
18
|
const clusterName = 'Test Cluster';
|
|
17
19
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
18
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
20
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
19
21
|
});
|
|
20
22
|
_8_6_1.test.afterEach(async ({ page, homePage, appsPage, consoleOrganizationsPage }, testInfo) => {
|
|
21
23
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -261,9 +263,7 @@ _8_6_1.test.describe('HTO User Flow Tests', () => {
|
|
|
261
263
|
await _8_6_1.test.step('Assign Users to the Created Groups in Identity', async () => {
|
|
262
264
|
await consoleOrganizationsPage.clickUserGroup('Single User');
|
|
263
265
|
await consoleOrganizationsPage.clickAssignMembers();
|
|
264
|
-
await consoleOrganizationsPage.fillAssignMembers([
|
|
265
|
-
process.env.C8_USERNAME,
|
|
266
|
-
]);
|
|
266
|
+
await consoleOrganizationsPage.fillAssignMembers([testUser.username]);
|
|
267
267
|
await consoleOrganizationsPage.clickAssignSubButton();
|
|
268
268
|
await consoleOrganizationsPage.clickOrganizationManagementLink();
|
|
269
269
|
await consoleOrganizationsPage.clickGroupsTab();
|
|
@@ -348,6 +348,7 @@ _8_6_1.test.describe('HTO User Flow Tests', () => {
|
|
|
348
348
|
const loginPage = new LoginPage_1.LoginPage(page);
|
|
349
349
|
await loginPage.loginWithTestUser({
|
|
350
350
|
username: process.env.C8_USERNAME_TEST_2,
|
|
351
|
+
password: process.env.C8_PASSWORD_TEST_2,
|
|
351
352
|
});
|
|
352
353
|
await appsPage.clickCamundaApps();
|
|
353
354
|
await appsPage.clickTasklist(clusterName);
|
|
@@ -4,11 +4,13 @@ const test_1 = require("@playwright/test");
|
|
|
4
4
|
const _8_6_1 = require("../../fixtures/8.6");
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
7
|
+
const users_1 = require("../../utils/users");
|
|
8
|
+
const testUser = (0, users_1.getTestUser)('twentyFirstUser');
|
|
7
9
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
8
10
|
_8_6_1.test.describe('Navigation Tests', () => {
|
|
9
11
|
const clusterName = 'Test Cluster';
|
|
10
12
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
11
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
13
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
12
14
|
});
|
|
13
15
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
14
16
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -10,11 +10,13 @@ const OptimizeHomePage_1 = require("../../pages/8.6/OptimizeHomePage");
|
|
|
10
10
|
const OptimizeDashboardPage_1 = require("../../pages/8.6/OptimizeDashboardPage");
|
|
11
11
|
const sleep_1 = require("../../utils/sleep");
|
|
12
12
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
13
|
+
const users_1 = require("../../utils/users");
|
|
14
|
+
const testUser = (0, users_1.getTestUser)('twentyThirdUser');
|
|
13
15
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
14
16
|
_8_6_1.test.describe('Optimize User Flow Tests', () => {
|
|
15
17
|
const clusterName = 'Test Cluster';
|
|
16
18
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
17
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
19
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
18
20
|
});
|
|
19
21
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
20
22
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -223,7 +225,7 @@ _8_6_1.test.describe('Optimize User Flow Tests', () => {
|
|
|
223
225
|
await optimizeTabOptimizeHomePage.clickDashboardLink();
|
|
224
226
|
await (0, sleep_1.sleep)(120000);
|
|
225
227
|
await operateTabOptimizeDashboardPage.processLinkAssertion(processName, 5);
|
|
226
|
-
await operateTabOptimizeDashboardPage.processOwnerNameAssertion(processName);
|
|
228
|
+
await operateTabOptimizeDashboardPage.processOwnerNameAssertion(processName, testUser.username);
|
|
227
229
|
});
|
|
228
230
|
});
|
|
229
231
|
});
|
|
@@ -5,10 +5,12 @@ const _8_6_1 = require("../../fixtures/8.6");
|
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const sleep_1 = require("../../utils/sleep");
|
|
7
7
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
8
|
+
const users_1 = require("../../utils/users");
|
|
9
|
+
const testUser = (0, users_1.getTestUser)('twentyFourthUser');
|
|
8
10
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
9
11
|
_8_6_1.test.describe('Deploy and run a process in Play', () => {
|
|
10
12
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
11
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
13
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
12
14
|
});
|
|
13
15
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
14
16
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -6,6 +6,8 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
6
6
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
7
7
|
const sleep_1 = require("../../utils/sleep");
|
|
8
8
|
const resetSession_1 = require("../../utils/resetSession");
|
|
9
|
+
const users_1 = require("../../utils/users");
|
|
10
|
+
const mainUser = (0, users_1.getTestUser)('twentyFifthUser');
|
|
9
11
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
10
12
|
_8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
11
13
|
const clusterNames = {
|
|
@@ -14,7 +16,7 @@ _8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
14
16
|
'RBA On User Flow - Permission for All Processes': 'Third RBA Cluster',
|
|
15
17
|
};
|
|
16
18
|
_8_6_1.test.beforeEach(async ({ page, homePage, clusterPage, loginPage }, testInfo) => {
|
|
17
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
19
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, mainUser, (testInfo.workerIndex + 1) * 1000);
|
|
18
20
|
await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 120000 });
|
|
19
21
|
await homePage.clickClusters();
|
|
20
22
|
(0, test_1.expect)(clusterNames[testInfo.title]).toBeTruthy();
|
|
@@ -55,7 +57,7 @@ _8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
55
57
|
await _8_6_1.test.step('Navigate to Users and Make Sure that No Authorized Resources Are Created', async () => {
|
|
56
58
|
await homePage.clickOrganization();
|
|
57
59
|
await consoleOrganizationsPage.clickUsersTab();
|
|
58
|
-
await consoleOrganizationsPage.clickMainUser();
|
|
60
|
+
await consoleOrganizationsPage.clickMainUser(mainUser.username);
|
|
59
61
|
await consoleOrganizationsPage.clickAuthorizations();
|
|
60
62
|
await (0, test_1.expect)(page.getByText(processIdBeforeEnablingRBA + '1', { exact: true })).not.toBeVisible({
|
|
61
63
|
timeout: 120000,
|
|
@@ -125,7 +127,7 @@ _8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
125
127
|
await _8_6_1.test.step('Navigate to Users and Create Authorized Resource For Process 1', async () => {
|
|
126
128
|
await homePage.clickOrganization();
|
|
127
129
|
await consoleOrganizationsPage.clickUsersTab();
|
|
128
|
-
await consoleOrganizationsPage.clickMainUser();
|
|
130
|
+
await consoleOrganizationsPage.clickMainUser(mainUser.username);
|
|
129
131
|
await consoleOrganizationsPage.clickAuthorizations();
|
|
130
132
|
await (0, test_1.expect)(page.getByText(processId1, { exact: true })).not.toBeVisible({
|
|
131
133
|
timeout: 60000,
|
|
@@ -172,6 +174,7 @@ _8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
172
174
|
await _8_6_1.test.step('Login as Test User', async () => {
|
|
173
175
|
await loginPage.loginWithTestUser({
|
|
174
176
|
username: process.env.C8_USERNAME_TEST_2,
|
|
177
|
+
password: process.env.C8_PASSWORD_TEST_2,
|
|
175
178
|
});
|
|
176
179
|
});
|
|
177
180
|
await _8_6_1.test.step('Navigate to Operate and Check Processes Are Not Accessible', async () => {
|
|
@@ -226,7 +229,7 @@ _8_6_1.test.describe('RBA Enabled User Flows Test', () => {
|
|
|
226
229
|
await appsPage.clickConsoleLink();
|
|
227
230
|
await homePage.clickOrganization();
|
|
228
231
|
await consoleOrganizationsPage.clickUsersTab();
|
|
229
|
-
await consoleOrganizationsPage.clickMainUser();
|
|
232
|
+
await consoleOrganizationsPage.clickMainUser(mainUser.username);
|
|
230
233
|
await consoleOrganizationsPage.clickAuthorizations();
|
|
231
234
|
await consoleOrganizationsPage.authorizedResourceAssertion(processId1);
|
|
232
235
|
await consoleOrganizationsPage.authorizedResourceAssertion(processId2);
|
|
@@ -14,11 +14,13 @@ const OptimizeCollectionsPage_1 = require("../../pages/8.6/OptimizeCollectionsPa
|
|
|
14
14
|
const OptimizeReportPage_1 = require("../../pages/8.6/OptimizeReportPage");
|
|
15
15
|
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
16
16
|
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
17
|
+
const users_1 = require("../../utils/users");
|
|
18
|
+
const testUser = (0, users_1.getTestUser)('thirteenthUser');
|
|
17
19
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
18
20
|
_8_6_1.test.describe('Smoke Tests', () => {
|
|
19
21
|
const clusterName = 'Test Cluster';
|
|
20
22
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
21
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
23
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
22
24
|
});
|
|
23
25
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
24
26
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -4,20 +4,19 @@ const test_1 = require("@playwright/test");
|
|
|
4
4
|
const _8_6_1 = require("../../fixtures/8.6");
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const sleep_1 = require("../../utils/sleep");
|
|
7
|
+
const users_1 = require("../../utils/users");
|
|
8
|
+
const UtilitiesPage_1 = require("../../pages/8.6/UtilitiesPage");
|
|
7
9
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
8
10
|
_8_6_1.test.describe('Cluster Setup Tests', () => {
|
|
9
|
-
_8_6_1.test.beforeEach(async ({ page, loginPage }) => {
|
|
10
|
-
await page.goto('/');
|
|
11
|
-
await loginPage.login();
|
|
12
|
-
});
|
|
13
11
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
14
12
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
15
13
|
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
16
14
|
});
|
|
17
|
-
(0, _8_6_1.test)('Enable Alpha Features', async ({ page, homePage, consoleOrganizationsPage, }) => {
|
|
15
|
+
(0, _8_6_1.test)('Enable Alpha Features', async ({ page, homePage, loginPage, consoleOrganizationsPage, }, testInfo) => {
|
|
18
16
|
if (process.env.IS_PROD === 'true') {
|
|
19
17
|
_8_6_1.test.skip(true, 'Skipping test because not required on PROD test org');
|
|
20
18
|
}
|
|
19
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, users_1.testUsers.mainUser, (testInfo.workerIndex + 1) * 1000);
|
|
21
20
|
await homePage.clickOrganization();
|
|
22
21
|
await (0, test_1.expect)(consoleOrganizationsPage.settingsTab).toBeVisible({
|
|
23
22
|
timeout: 60000,
|
|
@@ -29,37 +28,45 @@ _8_6_1.test.describe('Cluster Setup Tests', () => {
|
|
|
29
28
|
await consoleOrganizationsPage.clickSettingsTab();
|
|
30
29
|
await consoleOrganizationsPage.enableAlphaFeature('AI-powered features');
|
|
31
30
|
});
|
|
32
|
-
(0, _8_6_1.test)('Create Default Cluster', async ({ homePage, clusterDetailsPage,
|
|
31
|
+
(0, _8_6_1.test)('Create Default Cluster', async ({ page, loginPage, homePage, clusterPage, clusterDetailsPage, }, testInfo) => {
|
|
33
32
|
_8_6_1.test.slow();
|
|
34
33
|
const clusterName = 'Test Cluster';
|
|
34
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, users_1.testUsers.mainUser, (testInfo.workerIndex + 1) * 1000);
|
|
35
35
|
await homePage.clickClusters();
|
|
36
36
|
await clusterPage.createCluster(clusterName);
|
|
37
37
|
await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
|
|
38
38
|
await clusterPage.clickClusterLink(clusterName);
|
|
39
39
|
await clusterDetailsPage.assertComponentsHealth();
|
|
40
40
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
await (
|
|
44
|
-
|
|
41
|
+
for (const [index, user] of (0, users_1.getTestUsers)().entries()) {
|
|
42
|
+
(0, _8_6_1.test)(`Create Project Folder for User ${index + 1}`, async ({ page, loginPage, homePage, appsPage, modelerHomePage, }, testInfo) => {
|
|
43
|
+
await _8_6_1.test.step('Log in', async () => {
|
|
44
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, user, (testInfo.workerIndex + 1) * 1000);
|
|
45
45
|
});
|
|
46
|
-
await
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
await _8_6_1.test.step('Navigate to Web Modeler', async () => {
|
|
47
|
+
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
48
|
+
timeout: 120000,
|
|
49
|
+
});
|
|
50
|
+
await appsPage.clickCamundaApps();
|
|
51
|
+
await appsPage.clickModeler();
|
|
52
|
+
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
53
|
+
timeout: 180000,
|
|
54
|
+
});
|
|
50
55
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
await _8_6_1.test.step('Create Cross Component Project Folder', async () => {
|
|
57
|
+
await homePage.clickSkipCustomization();
|
|
58
|
+
await modelerHomePage.createCrossComponentProjectFolder();
|
|
59
|
+
await modelerHomePage.clickHomeBreadcrumb();
|
|
60
|
+
await (0, test_1.expect)(modelerHomePage.crossComponentProjectFolder).toBeVisible({
|
|
61
|
+
timeout: 60000,
|
|
62
|
+
});
|
|
57
63
|
});
|
|
58
64
|
});
|
|
59
|
-
}
|
|
60
|
-
(0, _8_6_1.test)('Create AWS Cluster', async ({ homePage, clusterPage, clusterDetailsPage, }) => {
|
|
65
|
+
}
|
|
66
|
+
(0, _8_6_1.test)('Create AWS Cluster', async ({ page, loginPage, homePage, clusterPage, clusterDetailsPage, }, testInfo) => {
|
|
61
67
|
_8_6_1.test.slow();
|
|
62
68
|
const clusterName = 'AWS Cluster';
|
|
69
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, users_1.testUsers.mainUser, (testInfo.workerIndex + 1) * 1000);
|
|
63
70
|
await homePage.clickClusters();
|
|
64
71
|
await clusterPage.createCluster(clusterName, 'AWS');
|
|
65
72
|
await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
|
|
@@ -12,6 +12,9 @@ const deleteOrg_1 = require("../../utils/deleteOrg");
|
|
|
12
12
|
const sleep_1 = require("../../utils/sleep");
|
|
13
13
|
const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
|
|
14
14
|
const resetSession_1 = require("../../utils/resetSession");
|
|
15
|
+
const users_1 = require("../../utils/users");
|
|
16
|
+
const node_crypto_1 = require("node:crypto");
|
|
17
|
+
const testUser = (0, users_1.getTestUser)('eleventhUser');
|
|
15
18
|
_8_6_1.test.describe.configure({ mode: 'parallel' });
|
|
16
19
|
_8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
17
20
|
const clusterName = 'Test Cluster';
|
|
@@ -20,7 +23,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
20
23
|
'Invite Existing C8 member to Web Modeler flow': '',
|
|
21
24
|
};
|
|
22
25
|
_8_6_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
23
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
26
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
|
|
24
27
|
});
|
|
25
28
|
_8_6_1.test.afterEach(async ({ page }, testInfo) => {
|
|
26
29
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
@@ -106,7 +109,6 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
106
109
|
timeout: 120000,
|
|
107
110
|
});
|
|
108
111
|
await modelerHomePage.clickOpenOrganizationsButton();
|
|
109
|
-
await modelerHomePage.clickOptionsButton();
|
|
110
112
|
await modelerHomePage.clickManageButton();
|
|
111
113
|
await consoleOrganizationsPage.clickUsersTab();
|
|
112
114
|
await consoleOrganizationsPage.filterTable([
|
|
@@ -139,6 +141,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
139
141
|
await (0, test_1.expect)(appsPage.tasklistLink).not.toBeVisible();
|
|
140
142
|
await (0, test_1.expect)(appsPage.modelerLink).toBeVisible();
|
|
141
143
|
await appsPage.clickModeler();
|
|
144
|
+
await homePage.clickSkipCustomization();
|
|
142
145
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
143
146
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
144
147
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
@@ -160,7 +163,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
160
163
|
});
|
|
161
164
|
await settingsPage.clickOpenSettingsButton();
|
|
162
165
|
await settingsPage.clickLogoutButton();
|
|
163
|
-
await loginPage.login();
|
|
166
|
+
await loginPage.login(testUser);
|
|
164
167
|
await (0, sleep_1.sleep)(30000);
|
|
165
168
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
166
169
|
timeout: 90000,
|
|
@@ -170,7 +173,6 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
170
173
|
timeout: 120000,
|
|
171
174
|
});
|
|
172
175
|
await modelerHomePage.clickOpenOrganizationsButton();
|
|
173
|
-
await modelerHomePage.clickOptionsButton();
|
|
174
176
|
await modelerHomePage.clickManageButton();
|
|
175
177
|
await consoleOrganizationsPage.clickUsersTab();
|
|
176
178
|
await page.reload();
|
|
@@ -221,7 +223,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
221
223
|
});
|
|
222
224
|
await settingsPage.clickOpenSettingsButton();
|
|
223
225
|
await settingsPage.clickLogoutButton();
|
|
224
|
-
await loginPage.login();
|
|
226
|
+
await loginPage.login(testUser);
|
|
225
227
|
await (0, sleep_1.sleep)(20000);
|
|
226
228
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
227
229
|
timeout: 60000,
|
|
@@ -231,7 +233,6 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
231
233
|
timeout: 60000,
|
|
232
234
|
});
|
|
233
235
|
await modelerHomePage.clickOpenOrganizationsButton();
|
|
234
|
-
await modelerHomePage.clickOptionsButton();
|
|
235
236
|
await modelerHomePage.clickManageButton();
|
|
236
237
|
await consoleOrganizationsPage.clickUsersTab();
|
|
237
238
|
await page.reload();
|
|
@@ -396,7 +397,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
396
397
|
timeout: 60000,
|
|
397
398
|
});
|
|
398
399
|
await page.goto('/');
|
|
399
|
-
await loginPage.login();
|
|
400
|
+
await loginPage.login(testUser);
|
|
400
401
|
});
|
|
401
402
|
await _8_6_1.test.step('Navigate to Web Modeler as Project Admin', async () => {
|
|
402
403
|
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
@@ -419,8 +420,11 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
419
420
|
const { id, emailAddress } = await (0, mailSlurpClient_1.createInbox)();
|
|
420
421
|
inboxes[testInfo.title] = id;
|
|
421
422
|
let newOrganizationUuid = '';
|
|
423
|
+
const password = (await (0, _setup_1.generateRandomStringAsync)(5)) +
|
|
424
|
+
(0, node_crypto_1.randomInt)(10000000, 90000000) +
|
|
425
|
+
'*';
|
|
422
426
|
await _8_6_1.test.step('Sign up new user to C8', async () => {
|
|
423
|
-
await signUpPage.signupToC8(emailAddress);
|
|
427
|
+
await signUpPage.signupToC8(emailAddress, password);
|
|
424
428
|
});
|
|
425
429
|
await _8_6_1.test.step('Log in to C8 as New User', async () => {
|
|
426
430
|
await (0, UtilitiesPage_1.clickInvitationLinkInEmail)(page, id);
|
|
@@ -432,7 +436,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
432
436
|
await settingsPage.clickLogoutButton();
|
|
433
437
|
await loginPage.loginWithoutOrgAssertion({
|
|
434
438
|
username: emailAddress,
|
|
435
|
-
password:
|
|
439
|
+
password: password,
|
|
436
440
|
});
|
|
437
441
|
await (0, test_1.expect)(homePage.gettingStartedHeading).toBeVisible({
|
|
438
442
|
timeout: 40000,
|
|
@@ -450,7 +454,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
450
454
|
await _8_6_1.test.step('Login as Project Admin', async () => {
|
|
451
455
|
await settingsPage.clickOpenSettingsButton();
|
|
452
456
|
await settingsPage.clickLogoutButton();
|
|
453
|
-
await loginPage.login();
|
|
457
|
+
await loginPage.login(testUser);
|
|
454
458
|
});
|
|
455
459
|
await _8_6_1.test.step('Navigate to Web Modeler', async () => {
|
|
456
460
|
await appsPage.clickCamundaApps();
|
|
@@ -477,7 +481,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
477
481
|
await (0, sleep_1.sleep)(60000);
|
|
478
482
|
await loginPage.login({
|
|
479
483
|
username: emailAddress,
|
|
480
|
-
password:
|
|
484
|
+
password: password,
|
|
481
485
|
});
|
|
482
486
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(modelerHomePage, modelerHomePage.crossComponentProjectFolder, 'Cross Component Test Project', 60000, 5);
|
|
483
487
|
});
|
|
@@ -486,7 +490,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
486
490
|
await settingsPage.clickLogoutButton();
|
|
487
491
|
});
|
|
488
492
|
await _8_6_1.test.step('Navigate to Web Modeler as Project Admin', async () => {
|
|
489
|
-
await loginPage.login();
|
|
493
|
+
await loginPage.login(testUser);
|
|
490
494
|
await appsPage.clickCamundaApps();
|
|
491
495
|
await appsPage.clickModeler();
|
|
492
496
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
@@ -618,8 +622,10 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
618
622
|
await modelerHomePage.clickFormOption();
|
|
619
623
|
await modelerHomePage.enterFormName(formName);
|
|
620
624
|
await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
|
|
625
|
+
await (0, test_1.expect)(formJsPage.textFieldInForm).toBeVisible();
|
|
621
626
|
await formJsPage.clickGeneralPropertiesPanel();
|
|
622
627
|
await formJsPage.fillKeyInput('Public_Form_Text_Field');
|
|
628
|
+
await (0, sleep_1.sleep)(10000);
|
|
623
629
|
});
|
|
624
630
|
await _8_6_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
625
631
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
@@ -654,7 +660,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
654
660
|
});
|
|
655
661
|
});
|
|
656
662
|
await _8_6_1.test.step('Login to Tasklist and Check User Task Has the Correct Input Values and Can Be Completed', async () => {
|
|
657
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, 5000);
|
|
663
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, 5000);
|
|
658
664
|
await appsPage.clickCamundaApps();
|
|
659
665
|
await appsPage.clickTasklist(clusterName);
|
|
660
666
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, taskPanelPage.taskListPageBanner, 'Tasklist banner');
|