@camunda/e2e-test-suite 0.0.155 → 0.0.157
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.7/AppsPage.js +4 -1
- package/dist/pages/8.7/FormJsPage.d.ts +1 -0
- package/dist/pages/8.7/FormJsPage.js +4 -0
- package/dist/pages/8.9/ClusterDetailsPage.js +3 -0
- package/dist/pages/8.9/HomePage.js +0 -3
- package/dist/pages/8.9/OptimizeDashboardPage.d.ts +1 -1
- package/dist/pages/8.9/OptimizeDashboardPage.js +8 -5
- package/dist/pages/8.9/UtilitiesPage.d.ts +2 -0
- package/dist/pages/8.9/UtilitiesPage.js +22 -1
- package/dist/tests/8.7/web-modeler-user-flows.spec.js +7 -1
- package/dist/tests/8.8/console-user-flows.spec.js +2 -1
- package/dist/tests/8.9/access-user-role-management.spec.js +3 -0
- package/dist/tests/8.9/console-user-flows.spec.js +20 -16
- package/dist/tests/8.9/optimize-user-flows.spec.js +1 -1
- package/dist/tests/8.9/rba-enabled-v1-user-flows.spec.js +3 -0
- package/dist/tests/8.9/rba-enabled-v2-user-flows.spec.js +1 -0
- package/dist/utils/deleteOrg.js +1 -0
- package/package.json +1 -1
|
@@ -21,7 +21,10 @@ class AppsPage {
|
|
|
21
21
|
camundaAppsButton;
|
|
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 });
|
|
@@ -12,6 +12,7 @@ declare class FormJsPage {
|
|
|
12
12
|
readonly documentReferenceInput: Locator;
|
|
13
13
|
readonly generalPanel: Locator;
|
|
14
14
|
readonly textField: Locator;
|
|
15
|
+
readonly textFieldInForm: Locator;
|
|
15
16
|
constructor(page: Page);
|
|
16
17
|
generateAIForm(request?: string): Promise<void>;
|
|
17
18
|
clickAIFormGeneratorButton(): Promise<void>;
|
|
@@ -16,6 +16,7 @@ class FormJsPage {
|
|
|
16
16
|
documentReferenceInput;
|
|
17
17
|
generalPanel;
|
|
18
18
|
textField;
|
|
19
|
+
textFieldInForm;
|
|
19
20
|
constructor(page) {
|
|
20
21
|
this.page = page;
|
|
21
22
|
this.aiFormGeneratorButton = page.getByRole('button', {
|
|
@@ -33,6 +34,9 @@ class FormJsPage {
|
|
|
33
34
|
});
|
|
34
35
|
this.generalPanel = page.locator('[data-group-id="group-general"]').first();
|
|
35
36
|
this.textField = page.locator('button[data-field-type="textfield"]');
|
|
37
|
+
this.textFieldInForm = page
|
|
38
|
+
.getByLabel('Form Definition')
|
|
39
|
+
.getByText('Text field');
|
|
36
40
|
}
|
|
37
41
|
async generateAIForm(request = 'Create a form with the following fields: 1. A text field with the label "Full Name" 2. A number with the label "Count" 3. A date input with the label "Date of birth"4. A Checkbox with the label "Agree"') {
|
|
38
42
|
await (0, test_1.expect)(this.aiFormGeneratorButton).toBeVisible({
|
|
@@ -73,9 +73,6 @@ class HomePage {
|
|
|
73
73
|
}
|
|
74
74
|
async clickSkipCustomization() {
|
|
75
75
|
try {
|
|
76
|
-
await (0, test_1.expect)(this.gettingStartedHeading).toBeVisible({
|
|
77
|
-
timeout: 20000,
|
|
78
|
-
});
|
|
79
76
|
await (0, test_1.expect)(this.buttonSkipCustomization).toBeVisible({
|
|
80
77
|
timeout: 30000,
|
|
81
78
|
});
|
|
@@ -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) {
|
|
39
|
+
async processOwnerNameAssertion(processName, userEmail) {
|
|
40
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 for asserting owner name in Optimize.. Retrying...`);
|
|
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(`Owner name assertion failed after ${maxRetries} attempts`);
|
|
59
|
+
throw new Error(`Owner name ${result} assertion for ${processName} failed after ${maxRetries} attempts`);
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
}
|
|
@@ -13,6 +13,7 @@ import { ConnectorSettingsPage } from './ConnectorSettingsPage';
|
|
|
13
13
|
import { LoginPage } from './LoginPage';
|
|
14
14
|
import { ConnectorMarketplacePage } from './ConnectorMarketplacePage';
|
|
15
15
|
import { ConnectorTemplatePage } from './ConnectorTemplatePage';
|
|
16
|
+
import { MailSlurp } from 'mailslurp-client';
|
|
16
17
|
export declare function loginWithRetry(page: Page, loginPage: LoginPage, testUser: {
|
|
17
18
|
username: string;
|
|
18
19
|
password: string;
|
|
@@ -34,6 +35,7 @@ export declare function runMultipleProcesses(clusterName: string, page: Page, mo
|
|
|
34
35
|
export declare function disableRBA(clusterName: string, homePage: HomePage, clusterPage: ClusterPage, clusterDetailsPage: ClusterDetailsPage, appsPage: AppsPage): Promise<void>;
|
|
35
36
|
export declare function enableAuthorizations(clusterName: string, homePage: HomePage, clusterPage: ClusterPage, clusterDetailsPage: ClusterDetailsPage, appsPage: AppsPage): Promise<void>;
|
|
36
37
|
export declare function clickInvitationLinkInEmail(page: Page, id: string): Promise<void>;
|
|
38
|
+
export declare function assertLatestAlertEmail(id: string, mailSlurp: MailSlurp, processName: string, alertText: string): Promise<string>;
|
|
37
39
|
export declare function assertTestUsesCorrectOrganization(page: Page): Promise<void>;
|
|
38
40
|
export declare function deleteAllUserGroups(homePage: HomePage, organizationPage: ConsoleOrganizationPage, appsPage: AppsPage): Promise<void>;
|
|
39
41
|
export declare function deleteCluster(clusterName: string, homePage: HomePage, clusterPage: ClusterPage, appsPage: AppsPage): Promise<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.waitForLoadingToFinish = exports.assertTestUsesCorrectOrganizationFromModeler = exports.expectCountToBeOneOf = exports.createAPIClient = exports.modelAndRunConnectorsTimerEventDiagram = exports.modelAndRunConnectorsDocHandlingDiagram = exports.deleteCluster = exports.deleteAllUserGroups = exports.assertTestUsesCorrectOrganization = exports.clickInvitationLinkInEmail = exports.enableAuthorizations = exports.disableRBA = exports.runMultipleProcesses = exports.runProcess = exports.completeTaskWithRetry = exports.assertPageTextWithRetry = exports.assertLocatorVisibleWithRetry = exports.modelRestConnector = exports.modelDiagramFromFile = exports.loginWithRetry = void 0;
|
|
3
|
+
exports.waitForLoadingToFinish = exports.assertTestUsesCorrectOrganizationFromModeler = exports.expectCountToBeOneOf = exports.createAPIClient = exports.modelAndRunConnectorsTimerEventDiagram = exports.modelAndRunConnectorsDocHandlingDiagram = exports.deleteCluster = exports.deleteAllUserGroups = exports.assertTestUsesCorrectOrganization = exports.assertLatestAlertEmail = exports.clickInvitationLinkInEmail = exports.enableAuthorizations = exports.disableRBA = exports.runMultipleProcesses = exports.runProcess = exports.completeTaskWithRetry = exports.assertPageTextWithRetry = exports.assertLocatorVisibleWithRetry = exports.modelRestConnector = exports.modelDiagramFromFile = exports.loginWithRetry = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const ModelerHomePage_1 = require("./ModelerHomePage");
|
|
6
6
|
const HomePage_1 = require("./HomePage");
|
|
@@ -281,6 +281,27 @@ async function clickInvitationLinkInEmail(page, id) {
|
|
|
281
281
|
}
|
|
282
282
|
}
|
|
283
283
|
exports.clickInvitationLinkInEmail = clickInvitationLinkInEmail;
|
|
284
|
+
async function assertLatestAlertEmail(id, mailSlurp, processName, alertText) {
|
|
285
|
+
const maxRetries = 3;
|
|
286
|
+
for (let retries = 0; retries < maxRetries; retries++) {
|
|
287
|
+
try {
|
|
288
|
+
const email = await mailSlurp.waitForLatestEmail(id, 120000);
|
|
289
|
+
if (email && email.body) {
|
|
290
|
+
(0, test_1.expect)(email.body).toContain(processName);
|
|
291
|
+
(0, test_1.expect)(email.body).toContain(alertText);
|
|
292
|
+
return email.body;
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
throw new Error('Email or email body is null or undefined.');
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
console.warn(`Click attempt ${retries + 1} failed: ${error}`);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
throw new Error(`Failed to get latest alert (${processName}) email for ${id} after ${maxRetries} attempts.`);
|
|
303
|
+
}
|
|
304
|
+
exports.assertLatestAlertEmail = assertLatestAlertEmail;
|
|
284
305
|
async function assertTestUsesCorrectOrganization(page) {
|
|
285
306
|
const homePage = new HomePage_1.HomePage(page);
|
|
286
307
|
if (page.url().includes('?code=') || page.url().includes('&state=')) {
|
|
@@ -141,6 +141,7 @@ _8_7_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
141
141
|
await (0, test_1.expect)(appsPage.tasklistLink).not.toBeVisible();
|
|
142
142
|
await (0, test_1.expect)(appsPage.modelerLink).toBeVisible();
|
|
143
143
|
await appsPage.clickModeler();
|
|
144
|
+
await homePage.clickSkipCustomization();
|
|
144
145
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
145
146
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
146
147
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
@@ -162,8 +163,10 @@ _8_7_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
162
163
|
});
|
|
163
164
|
await settingsPage.clickOpenSettingsButton();
|
|
164
165
|
await settingsPage.clickLogoutButton();
|
|
165
|
-
await
|
|
166
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, 1000);
|
|
166
167
|
await (0, sleep_1.sleep)(30000);
|
|
168
|
+
await appsPage.clickCamundaApps();
|
|
169
|
+
await appsPage.clickModeler();
|
|
167
170
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
168
171
|
timeout: 90000,
|
|
169
172
|
});
|
|
@@ -621,9 +624,12 @@ _8_7_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
621
624
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
622
625
|
await modelerHomePage.clickFormOption();
|
|
623
626
|
await modelerHomePage.enterFormName(formName);
|
|
627
|
+
await (0, sleep_1.sleep)(2000);
|
|
624
628
|
await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
|
|
625
629
|
await formJsPage.clickGeneralPropertiesPanel();
|
|
626
630
|
await formJsPage.fillKeyInput('Public_Form_Text_Field');
|
|
631
|
+
await (0, test_1.expect)(formJsPage.textFieldInForm).toBeVisible();
|
|
632
|
+
await (0, sleep_1.sleep)(5000);
|
|
627
633
|
});
|
|
628
634
|
await _8_7_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
629
635
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
@@ -65,7 +65,8 @@ _8_8_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
|
65
65
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTabProcessInstancePage, operateTabProcessInstancePage.completedIcon, 'completed icon in Operate', 60000);
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
-
|
|
68
|
+
//Waiting infra team to provide DNS configuration for email testing, skipping for now
|
|
69
|
+
_8_8_1.test.skip('Alert Trigger Flow - Email Notification', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
69
70
|
_8_8_1.test.slow();
|
|
70
71
|
const processName = 'Email_Alert_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
71
72
|
const invalidURl = 'https://invalid';
|
|
@@ -110,6 +110,7 @@ _8_9_1.test.describe('User Roles User Flow', () => {
|
|
|
110
110
|
await (0, UtilitiesPage_1.waitForLoadingToFinish)(page);
|
|
111
111
|
await appsPage.clickCamundaApps();
|
|
112
112
|
await appsPage.clickModeler();
|
|
113
|
+
await homePage.clickSkipCustomization();
|
|
113
114
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
114
115
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
115
116
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
@@ -200,6 +201,7 @@ _8_9_1.test.describe('User Roles User Flow', () => {
|
|
|
200
201
|
await _8_9_1.test.step('Navigate to Modeler and Ensure Diagram Failed To Deploy', async () => {
|
|
201
202
|
await appsPage.clickCamundaApps();
|
|
202
203
|
await appsPage.clickModeler();
|
|
204
|
+
await homePage.clickSkipCustomization();
|
|
203
205
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
204
206
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
205
207
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
@@ -295,6 +297,7 @@ _8_9_1.test.describe('User Roles User Flow', () => {
|
|
|
295
297
|
await _8_9_1.test.step('Navigate to Modeler and Ensure Diagram Can Be Deployed', async () => {
|
|
296
298
|
await appsPage.clickCamundaApps();
|
|
297
299
|
await appsPage.clickModeler();
|
|
300
|
+
await homePage.clickSkipCustomization();
|
|
298
301
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
299
302
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
300
303
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
@@ -7,8 +7,8 @@ const OperateProcessInstancePage_1 = require("../../pages/8.9/OperateProcessInst
|
|
|
7
7
|
const formatDate_1 = require("../../utils/formatDate");
|
|
8
8
|
const UtilitiesPage_1 = require("../../pages/8.9/UtilitiesPage");
|
|
9
9
|
const sleep_1 = require("../../utils/sleep");
|
|
10
|
-
const googleapi_1 = require("../../utils/googleapi");
|
|
11
10
|
const users_1 = require("../../utils/users");
|
|
11
|
+
const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
|
|
12
12
|
const testUser = (0, users_1.getTestUser)('eighteenthUser');
|
|
13
13
|
_8_9_1.test.describe.configure({ mode: 'parallel' });
|
|
14
14
|
_8_9_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
@@ -65,19 +65,18 @@ _8_9_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
|
65
65
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTabProcessInstancePage, operateTabProcessInstancePage.completedIcon, 'completed icon in Operate', 60000);
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
-
(0, _8_9_1.test)('Alert Trigger Flow - Email Notification', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, connectorSettingsPage, operateHomePage,
|
|
68
|
+
(0, _8_9_1.test)('Alert Trigger Flow - Email Notification', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
69
69
|
_8_9_1.test.slow();
|
|
70
70
|
const processName = 'Email_Alert_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
71
71
|
const invalidURl = 'https://invalid';
|
|
72
|
-
const senderEmail = 'no-reply@camunda.io';
|
|
73
72
|
let lastTriggerTime = 0;
|
|
74
73
|
const alertFlowClusterName = 'Alert Flow Cluster';
|
|
74
|
+
const { id } = await (0, mailSlurpClient_1.createInbox)(testUser.username);
|
|
75
75
|
await _8_9_1.test.step('Create Cluster', async () => {
|
|
76
76
|
await homePage.clickClusters();
|
|
77
77
|
await clusterPage.createClusterIfNotExists(alertFlowClusterName);
|
|
78
78
|
});
|
|
79
79
|
await _8_9_1.test.step('Delete Alert Settings If Exist', async () => {
|
|
80
|
-
await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 30000 });
|
|
81
80
|
await homePage.clickClusters();
|
|
82
81
|
await clusterPage.clickClusterLink(alertFlowClusterName);
|
|
83
82
|
await clusterDetailsPage.clickAlertsTab();
|
|
@@ -120,7 +119,7 @@ _8_9_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
|
120
119
|
});
|
|
121
120
|
await operateHomePage.clickProcessesTab();
|
|
122
121
|
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
123
|
-
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(
|
|
122
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.incidentIcon, 'incident icon in Operate');
|
|
124
123
|
});
|
|
125
124
|
await _8_9_1.test.step('Navigate to Clusters', async () => {
|
|
126
125
|
await appsPage.clickCamundaApps();
|
|
@@ -131,17 +130,19 @@ _8_9_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
|
131
130
|
});
|
|
132
131
|
await _8_9_1.test.step('Verify Alert Count Increases to 1 After Trigger', async () => {
|
|
133
132
|
await clusterDetailsPage.clickAlertsTab();
|
|
134
|
-
(0, test_1.expect)(
|
|
133
|
+
await (0, test_1.expect)(async () => {
|
|
134
|
+
await page.reload();
|
|
135
|
+
await (0, test_1.expect)(clusterDetailsPage.alertsList.first()).toBeVisible({
|
|
136
|
+
timeout: 20000,
|
|
137
|
+
});
|
|
138
|
+
(0, test_1.expect)(await clusterDetailsPage.alertsList.count()).toBeGreaterThan(1);
|
|
139
|
+
}).toPass({ timeout: 60000 });
|
|
135
140
|
await (0, test_1.expect)(clusterDetailsPage.alertsList.nth(0)).toContainText(`Email`);
|
|
136
141
|
await clusterDetailsPage.assertAlertText('Amount triggered1');
|
|
137
142
|
});
|
|
138
143
|
await _8_9_1.test.step('Verify Alerts Received via Email for Incident', async () => {
|
|
139
144
|
await (0, sleep_1.sleep)(60000);
|
|
140
|
-
|
|
141
|
-
const messages = await (0, googleapi_1.getGmailMessagesWithRetry)(token, senderEmail, processName);
|
|
142
|
-
(0, test_1.expect)(messages.length).toBe(1);
|
|
143
|
-
const emailDetails = await (0, googleapi_1.getLatestEmailDetails)(token, await messages[0]['id']);
|
|
144
|
-
(0, test_1.expect)(emailDetails).toContain('New Incidents: 1');
|
|
145
|
+
await (0, UtilitiesPage_1.assertLatestAlertEmail)(id, mailSlurpClient_1.mailSlurp, processName, 'New Incidents: 1');
|
|
145
146
|
lastTriggerTime = Math.floor(Date.now() / 1000); // Current time in seconds (Unix timestamp)
|
|
146
147
|
console.log('Captured Target Time:', lastTriggerTime);
|
|
147
148
|
});
|
|
@@ -168,15 +169,18 @@ _8_9_1.test.describe('Console User Flow Tests @tasklistV2', () => {
|
|
|
168
169
|
});
|
|
169
170
|
await _8_9_1.test.step('Verify Alert Count Increases to 3 After Trigger', async () => {
|
|
170
171
|
await clusterDetailsPage.clickAlertsTab();
|
|
171
|
-
(0, test_1.expect)(
|
|
172
|
+
await (0, test_1.expect)(async () => {
|
|
173
|
+
await page.reload();
|
|
174
|
+
await (0, test_1.expect)(clusterDetailsPage.alertsList.first()).toBeVisible({
|
|
175
|
+
timeout: 20000,
|
|
176
|
+
});
|
|
177
|
+
(0, test_1.expect)(await clusterDetailsPage.alertsList.count()).toBeGreaterThan(1);
|
|
178
|
+
}).toPass({ timeout: 60000 });
|
|
172
179
|
await clusterDetailsPage.assertAlertText('Amount triggered3');
|
|
173
180
|
});
|
|
174
181
|
await _8_9_1.test.step('Verify Alerts Received via Email for Incident', async () => {
|
|
175
182
|
await (0, sleep_1.sleep)(60000);
|
|
176
|
-
|
|
177
|
-
const messages = await (0, googleapi_1.getGmailMessagesWithRetry)(token, senderEmail, processName, lastTriggerTime);
|
|
178
|
-
const emailDetails = await (0, googleapi_1.getLatestEmailDetails)(token, await messages[0]['id']);
|
|
179
|
-
(0, test_1.expect)(emailDetails).toContain('New Incidents: 2'); //# of alerts triggered since the last one
|
|
183
|
+
await (0, UtilitiesPage_1.assertLatestAlertEmail)(id, mailSlurpClient_1.mailSlurp, processName, 'New Incidents: 2');
|
|
180
184
|
});
|
|
181
185
|
});
|
|
182
186
|
});
|
|
@@ -246,7 +246,7 @@ _8_9_1.test.describe('Optimize User Flow Tests', () => {
|
|
|
246
246
|
await optimizeTabOptimizeHomePage.clickDashboardLink();
|
|
247
247
|
await (0, sleep_1.sleep)(90000);
|
|
248
248
|
await operateTabOptimizeDashboardPage.processLinkAssertion(processName, 6);
|
|
249
|
-
await operateTabOptimizeDashboardPage.processOwnerNameAssertion(processName);
|
|
249
|
+
await operateTabOptimizeDashboardPage.processOwnerNameAssertion(processName, testUser.username);
|
|
250
250
|
});
|
|
251
251
|
});
|
|
252
252
|
});
|
|
@@ -78,6 +78,7 @@ _8_9_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
|
|
|
78
78
|
});
|
|
79
79
|
});
|
|
80
80
|
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
81
|
+
await homePage.clickSkipCustomization();
|
|
81
82
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
82
83
|
});
|
|
83
84
|
await _8_9_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
@@ -202,6 +203,7 @@ _8_9_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
|
|
|
202
203
|
});
|
|
203
204
|
});
|
|
204
205
|
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
206
|
+
await homePage.clickSkipCustomization();
|
|
205
207
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
206
208
|
});
|
|
207
209
|
await _8_9_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
@@ -407,6 +409,7 @@ _8_9_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
|
|
|
407
409
|
});
|
|
408
410
|
});
|
|
409
411
|
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
412
|
+
await homePage.clickSkipCustomization();
|
|
410
413
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
411
414
|
});
|
|
412
415
|
await _8_9_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
|
@@ -80,6 +80,7 @@ _8_9_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
|
|
|
80
80
|
});
|
|
81
81
|
});
|
|
82
82
|
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
83
|
+
await homePage.clickSkipCustomization();
|
|
83
84
|
await modelerHomePage.createCrossComponentProjectFolder();
|
|
84
85
|
});
|
|
85
86
|
await _8_9_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
|
package/dist/utils/deleteOrg.js
CHANGED
|
@@ -20,6 +20,7 @@ async function deleteOrganization(page, uuid) {
|
|
|
20
20
|
client_id: process.env.EXTERNAL_CONSOLE_API_CLIENT_ID,
|
|
21
21
|
client_secret: process.env.EXTERNAL_CONSOLE_API_CLIENT_SECRET,
|
|
22
22
|
},
|
|
23
|
+
timeout: 60000,
|
|
23
24
|
});
|
|
24
25
|
if (tokenResponse.status() !== 200) {
|
|
25
26
|
const errorBody = await tokenResponse.text();
|