@camunda/e2e-test-suite 0.0.1 → 0.0.2
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/README.md +0 -2
- package/dist/pages/8.5/ModelerCreatePage.d.ts +1 -1
- package/dist/pages/8.5/ModelerCreatePage.js +15 -15
- package/dist/pages/8.6/ModelerCreatePage.d.ts +2 -1
- package/dist/pages/8.6/ModelerCreatePage.js +30 -16
- package/dist/pages/8.6/UtilitiesPage.d.ts +1 -3
- package/dist/pages/8.6/UtilitiesPage.js +5 -21
- package/dist/pages/8.7/ConsoleOrganizationPage.js +2 -1
- package/dist/pages/8.7/IdpCreatePage.d.ts +1 -1
- package/dist/pages/8.7/IdpCreatePage.js +16 -4
- package/dist/pages/8.7/ModelerCreatePage.d.ts +5 -5
- package/dist/pages/8.7/ModelerCreatePage.js +27 -30
- package/dist/pages/8.7/ModelerHomePage.d.ts +2 -0
- package/dist/pages/8.7/ModelerHomePage.js +26 -2
- package/dist/pages/8.8/ConsoleOrganizationPage.d.ts +9 -5
- package/dist/pages/8.8/ConsoleOrganizationPage.js +59 -16
- package/dist/pages/8.8/ModelerCreatePage.d.ts +5 -3
- package/dist/pages/8.8/ModelerCreatePage.js +35 -46
- package/dist/pages/8.8/OperateProcessesPage.js +1 -1
- package/dist/pages/8.8/UtilitiesPage.js +1 -1
- package/dist/pages/SM-8.5/ModelerCreatePage.js +1 -0
- package/dist/pages/SM-8.7/ClusterPage.js +1 -1
- package/dist/pages/SM-8.7/ModelerHomePage.js +1 -1
- package/dist/pages/SM-8.7/NavigationPage.js +1 -1
- package/dist/tests/8.6/connectors-user-flows.spec.js +3 -3
- package/dist/tests/8.6/web-modeler-user-flows.spec.js +3 -3
- package/dist/tests/8.7/hto-user-flows.spec.js +0 -3
- package/dist/tests/8.7/idp-user-flows.spec.js +1 -0
- package/dist/tests/8.7/web-modeler-user-flows.spec.js +2 -2
- package/dist/tests/8.8/aws-cluster-user-flows.spec.js +1 -1
- package/dist/tests/8.8/connectors-user-flows.spec.js +0 -2
- package/dist/tests/8.8/console-user-flows.spec.js +1 -3
- package/dist/tests/8.8/hto-user-flows.spec.js +4 -5
- package/dist/tests/8.8/rba-enabled-user-flows.spec.js +5 -3
- package/dist/tests/8.8/web-modeler-user-flows.spec.js +29 -39
- package/dist/tests/SM-8.5/mt-enabled-user-flows.spec.js +18 -0
- package/dist/tests/SM-8.7/mt-enabled-user-flows.spec.js +10 -3
- package/dist/tests/SM-8.8/optimize-user-flows.spec.js +7 -7
- package/package.json +1 -1
- package/dist/fixtures/8.4.d.ts +0 -57
- package/dist/fixtures/8.4.js +0 -150
- package/dist/fixtures/SM-8.4.d.ts +0 -55
- package/dist/fixtures/SM-8.4.js +0 -132
- package/dist/pages/8.4/AppsPage.d.ts +0 -33
- package/dist/pages/8.4/AppsPage.js +0 -333
- package/dist/pages/8.4/ClusterDetailsPage.d.ts +0 -59
- package/dist/pages/8.4/ClusterDetailsPage.js +0 -319
- package/dist/pages/8.4/ClusterPage.d.ts +0 -50
- package/dist/pages/8.4/ClusterPage.js +0 -334
- package/dist/pages/8.4/ClusterSecretsPage.d.ts +0 -21
- package/dist/pages/8.4/ClusterSecretsPage.js +0 -105
- package/dist/pages/8.4/ConnectorMarketplacePage.d.ts +0 -18
- package/dist/pages/8.4/ConnectorMarketplacePage.js +0 -59
- package/dist/pages/8.4/ConnectorSettingsPage.d.ts +0 -28
- package/dist/pages/8.4/ConnectorSettingsPage.js +0 -72
- package/dist/pages/8.4/ConnectorTemplatePage.d.ts +0 -11
- package/dist/pages/8.4/ConnectorTemplatePage.js +0 -34
- package/dist/pages/8.4/ConsoleOrganizationPage.d.ts +0 -69
- package/dist/pages/8.4/ConsoleOrganizationPage.js +0 -366
- package/dist/pages/8.4/FormJsPage.d.ts +0 -14
- package/dist/pages/8.4/FormJsPage.js +0 -44
- package/dist/pages/8.4/HomePage.d.ts +0 -27
- package/dist/pages/8.4/HomePage.js +0 -87
- package/dist/pages/8.4/LoginPage.d.ts +0 -30
- package/dist/pages/8.4/LoginPage.js +0 -83
- package/dist/pages/8.4/ModelerCreatePage.d.ts +0 -145
- package/dist/pages/8.4/ModelerCreatePage.js +0 -660
- package/dist/pages/8.4/ModelerHomePage.d.ts +0 -39
- package/dist/pages/8.4/ModelerHomePage.js +0 -153
- package/dist/pages/8.4/ModelerUserInvitePage.d.ts +0 -27
- package/dist/pages/8.4/ModelerUserInvitePage.js +0 -83
- package/dist/pages/8.4/OperateHomePage.d.ts +0 -21
- package/dist/pages/8.4/OperateHomePage.js +0 -53
- package/dist/pages/8.4/OperateProcessInstancePage.d.ts +0 -14
- package/dist/pages/8.4/OperateProcessInstancePage.js +0 -35
- package/dist/pages/8.4/OperateProcessesPage.d.ts +0 -22
- package/dist/pages/8.4/OperateProcessesPage.js +0 -80
- package/dist/pages/8.4/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/8.4/OptimizeCollectionsPage.js +0 -44
- package/dist/pages/8.4/OptimizeDashboardPage.d.ts +0 -8
- package/dist/pages/8.4/OptimizeDashboardPage.js +0 -48
- package/dist/pages/8.4/OptimizeHomePage.d.ts +0 -12
- package/dist/pages/8.4/OptimizeHomePage.js +0 -32
- package/dist/pages/8.4/OptimizeReportPage.d.ts +0 -49
- package/dist/pages/8.4/OptimizeReportPage.js +0 -160
- package/dist/pages/8.4/SettingsPage.d.ts +0 -10
- package/dist/pages/8.4/SettingsPage.js +0 -41
- package/dist/pages/8.4/SignUpPage.d.ts +0 -44
- package/dist/pages/8.4/SignUpPage.js +0 -137
- package/dist/pages/8.4/TaskDetailsPage.d.ts +0 -64
- package/dist/pages/8.4/TaskDetailsPage.js +0 -198
- package/dist/pages/8.4/TaskPanelPage.d.ts +0 -19
- package/dist/pages/8.4/TaskPanelPage.js +0 -61
- package/dist/pages/8.4/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/8.4/TaskProcessesPage.js +0 -31
- package/dist/pages/8.4/UtilitiesPage.d.ts +0 -33
- package/dist/pages/8.4/UtilitiesPage.js +0 -312
- package/dist/pages/SM-8.4/ConnectorMarketplacePage.d.ts +0 -16
- package/dist/pages/SM-8.4/ConnectorMarketplacePage.js +0 -48
- package/dist/pages/SM-8.4/ConnectorSettingsPage.d.ts +0 -28
- package/dist/pages/SM-8.4/ConnectorSettingsPage.js +0 -82
- package/dist/pages/SM-8.4/ConsoleHomePage.d.ts +0 -7
- package/dist/pages/SM-8.4/ConsoleHomePage.js +0 -14
- package/dist/pages/SM-8.4/ConsoleOrganizationPage.d.ts +0 -22
- package/dist/pages/SM-8.4/ConsoleOrganizationPage.js +0 -68
- package/dist/pages/SM-8.4/FormJsPage.d.ts +0 -13
- package/dist/pages/SM-8.4/FormJsPage.js +0 -30
- package/dist/pages/SM-8.4/HomePage.d.ts +0 -20
- package/dist/pages/SM-8.4/HomePage.js +0 -49
- package/dist/pages/SM-8.4/IdentityPage.d.ts +0 -56
- package/dist/pages/SM-8.4/IdentityPage.js +0 -219
- package/dist/pages/SM-8.4/IdentityTenantPage.d.ts +0 -46
- package/dist/pages/SM-8.4/IdentityTenantPage.js +0 -173
- package/dist/pages/SM-8.4/IdentityUsersPage.d.ts +0 -90
- package/dist/pages/SM-8.4/IdentityUsersPage.js +0 -505
- package/dist/pages/SM-8.4/LoginPage.d.ts +0 -16
- package/dist/pages/SM-8.4/LoginPage.js +0 -50
- package/dist/pages/SM-8.4/ModelerCreatePage.d.ts +0 -142
- package/dist/pages/SM-8.4/ModelerCreatePage.js +0 -648
- package/dist/pages/SM-8.4/ModelerHomePage.d.ts +0 -35
- package/dist/pages/SM-8.4/ModelerHomePage.js +0 -139
- package/dist/pages/SM-8.4/NavigationPage.d.ts +0 -26
- package/dist/pages/SM-8.4/NavigationPage.js +0 -97
- package/dist/pages/SM-8.4/OperateHomePage.d.ts +0 -21
- package/dist/pages/SM-8.4/OperateHomePage.js +0 -63
- package/dist/pages/SM-8.4/OperateProcessInstancePage.d.ts +0 -23
- package/dist/pages/SM-8.4/OperateProcessInstancePage.js +0 -105
- package/dist/pages/SM-8.4/OperateProcessesPage.d.ts +0 -22
- package/dist/pages/SM-8.4/OperateProcessesPage.js +0 -90
- package/dist/pages/SM-8.4/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/SM-8.4/OptimizeCollectionsPage.js +0 -50
- package/dist/pages/SM-8.4/OptimizeDashboardPage.d.ts +0 -15
- package/dist/pages/SM-8.4/OptimizeDashboardPage.js +0 -59
- package/dist/pages/SM-8.4/OptimizeHomePage.d.ts +0 -17
- package/dist/pages/SM-8.4/OptimizeHomePage.js +0 -56
- package/dist/pages/SM-8.4/OptimizeReportPage.d.ts +0 -48
- package/dist/pages/SM-8.4/OptimizeReportPage.js +0 -157
- package/dist/pages/SM-8.4/SettingsPage.d.ts +0 -10
- package/dist/pages/SM-8.4/SettingsPage.js +0 -20
- package/dist/pages/SM-8.4/TaskDetailsPage.d.ts +0 -61
- package/dist/pages/SM-8.4/TaskDetailsPage.js +0 -175
- package/dist/pages/SM-8.4/TaskPanelPage.d.ts +0 -22
- package/dist/pages/SM-8.4/TaskPanelPage.js +0 -77
- package/dist/pages/SM-8.4/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/SM-8.4/TaskProcessesPage.js +0 -31
- package/dist/pages/SM-8.4/UtilitiesPage.d.ts +0 -19
- package/dist/pages/SM-8.4/UtilitiesPage.js +0 -175
- package/dist/tests/8.4/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/connectors-user-flows.spec.js +0 -407
- package/dist/tests/8.4/console-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/console-user-flows.spec.js +0 -192
- package/dist/tests/8.4/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/hto-user-flows.spec.js +0 -186
- package/dist/tests/8.4/login.spec.d.ts +0 -1
- package/dist/tests/8.4/login.spec.js +0 -27
- package/dist/tests/8.4/navigation.spec.d.ts +0 -1
- package/dist/tests/8.4/navigation.spec.js +0 -62
- package/dist/tests/8.4/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/optimize-user-flows.spec.js +0 -266
- package/dist/tests/8.4/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/rba-enabled-user-flows.spec.js +0 -306
- package/dist/tests/8.4/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/8.4/smoke-tests.spec.js +0 -174
- package/dist/tests/8.4/test-setup.spec.d.ts +0 -1
- package/dist/tests/8.4/test-setup.spec.js +0 -61
- package/dist/tests/8.4/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/web-modeler-user-flows.spec.js +0 -611
- package/dist/tests/SM-8.4/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/connectors-user-flows.spec.js +0 -224
- package/dist/tests/SM-8.4/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/hto-user-flows.spec.js +0 -308
- package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.js +0 -537
- package/dist/tests/SM-8.4/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/optimize-user-flows.spec.js +0 -182
- package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.js +0 -250
- package/dist/tests/SM-8.4/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/smoke-tests.spec.js +0 -148
- package/dist/tests/SM-8.4/test-setup.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/test-setup.spec.js +0 -105
- package/dist/tests/SM-8.4/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/web-modeler-user-flows.spec.js +0 -125
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelerHomePage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
class ModelerHomePage {
|
|
7
|
-
page;
|
|
8
|
-
defaultFolderName = 'Cross Component Test Project';
|
|
9
|
-
modelerPageBanner;
|
|
10
|
-
createNewProjectButton;
|
|
11
|
-
projectNameInput;
|
|
12
|
-
chooseBpmnTemplateButton;
|
|
13
|
-
diagramTypeDropdown;
|
|
14
|
-
bpmnTemplateOption;
|
|
15
|
-
formTemplateOption;
|
|
16
|
-
projectBreadcrumb;
|
|
17
|
-
openOrganizationsButton;
|
|
18
|
-
manageButton;
|
|
19
|
-
rows;
|
|
20
|
-
crossComponentProjectFolder;
|
|
21
|
-
homeBreadcrumb;
|
|
22
|
-
formNameInput;
|
|
23
|
-
uploadFilesButton;
|
|
24
|
-
constructor(page) {
|
|
25
|
-
this.page = page;
|
|
26
|
-
this.modelerPageBanner = page.getByRole('banner', {
|
|
27
|
-
name: 'Camunda Modeler',
|
|
28
|
-
});
|
|
29
|
-
this.createNewProjectButton = page.getByRole('button', {
|
|
30
|
-
name: 'New project',
|
|
31
|
-
});
|
|
32
|
-
this.projectNameInput = page.locator('[data-test="editable-input"]');
|
|
33
|
-
this.chooseBpmnTemplateButton = page.getByRole('button', {
|
|
34
|
-
name: 'Choose BPMN template',
|
|
35
|
-
});
|
|
36
|
-
this.diagramTypeDropdown = page.locator('[data-test="diagram-dropdown"]');
|
|
37
|
-
this.bpmnTemplateOption = page
|
|
38
|
-
.locator('[data-test="create-bpmn-diagram"]')
|
|
39
|
-
.getByText('BPMN Diagram');
|
|
40
|
-
this.formTemplateOption = page
|
|
41
|
-
.locator('[data-test="create-form"]')
|
|
42
|
-
.getByText('Form');
|
|
43
|
-
this.projectBreadcrumb = page.locator('[data-test="breadcrumb-project"]');
|
|
44
|
-
this.openOrganizationsButton = page.getByLabel('Open Organizations');
|
|
45
|
-
this.manageButton = page.getByRole('button', { name: 'Manage' });
|
|
46
|
-
this.rows = page.getByRole('row');
|
|
47
|
-
this.formNameInput = page.locator('[data-test="editable-input"]');
|
|
48
|
-
this.crossComponentProjectFolder = page
|
|
49
|
-
.getByText(this.defaultFolderName, { exact: true })
|
|
50
|
-
.first();
|
|
51
|
-
this.homeBreadcrumb = page.locator('[data-test="breadcrumb-home"]');
|
|
52
|
-
this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
|
|
53
|
-
}
|
|
54
|
-
async clickCreateNewProjectButton() {
|
|
55
|
-
await this.createNewProjectButton.click({ timeout: 60000 });
|
|
56
|
-
}
|
|
57
|
-
async reload() {
|
|
58
|
-
await this.page.reload();
|
|
59
|
-
}
|
|
60
|
-
async enterNewProjectName(name) {
|
|
61
|
-
await this.projectNameInput.click({ timeout: 120000 });
|
|
62
|
-
await this.projectNameInput.fill(name);
|
|
63
|
-
await this.projectNameInput.press('Enter');
|
|
64
|
-
}
|
|
65
|
-
async clickChooseBpmnTemplateButton() {
|
|
66
|
-
await this.chooseBpmnTemplateButton.click();
|
|
67
|
-
}
|
|
68
|
-
async clickHomeBreadcrumb() {
|
|
69
|
-
try {
|
|
70
|
-
await this.homeBreadcrumb.click();
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
await this.page.getByText('Home', { exact: true }).first().click();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
async enterFormName(name) {
|
|
77
|
-
await this.formNameInput.click({ timeout: 60000 });
|
|
78
|
-
await this.formNameInput.fill(name);
|
|
79
|
-
await this.formNameInput.press('Enter');
|
|
80
|
-
}
|
|
81
|
-
async clickCrossComponentProjectFolder() {
|
|
82
|
-
await (0, test_1.expect)(this.crossComponentProjectFolder).toBeVisible({
|
|
83
|
-
timeout: 60000,
|
|
84
|
-
});
|
|
85
|
-
await this.crossComponentProjectFolder.click();
|
|
86
|
-
}
|
|
87
|
-
async createForm(formName) {
|
|
88
|
-
await this.clickDiagramTypeDropdown();
|
|
89
|
-
await this.clickFormOption();
|
|
90
|
-
await this.enterFormName(formName);
|
|
91
|
-
await (0, sleep_1.sleep)(10000);
|
|
92
|
-
}
|
|
93
|
-
async createCrossComponentProjectFolder() {
|
|
94
|
-
await (0, sleep_1.sleep)(15000);
|
|
95
|
-
if (await this.crossComponentProjectFolder.isVisible()) {
|
|
96
|
-
console.log('Cross Component Project folder already exists. Clicking into it');
|
|
97
|
-
await this.clickCrossComponentProjectFolder();
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
await this.clickCreateNewProjectButton();
|
|
101
|
-
await this.enterNewProjectName(this.defaultFolderName);
|
|
102
|
-
}
|
|
103
|
-
async clickProcessDiagram(name) {
|
|
104
|
-
const process = this.rows.filter({ hasText: name }).getByTitle(name).first();
|
|
105
|
-
await (0, test_1.expect)(process).toBeVisible({ timeout: 30000 });
|
|
106
|
-
await process.click();
|
|
107
|
-
}
|
|
108
|
-
async clickDiagramTypeDropdown() {
|
|
109
|
-
await this.diagramTypeDropdown.click({ timeout: 60000 });
|
|
110
|
-
}
|
|
111
|
-
async clickBpmnTemplateOption() {
|
|
112
|
-
await this.bpmnTemplateOption.click({ timeout: 120000 });
|
|
113
|
-
}
|
|
114
|
-
async clickFormOption() {
|
|
115
|
-
await this.formTemplateOption.click();
|
|
116
|
-
}
|
|
117
|
-
async clickProjectBreadcrumb() {
|
|
118
|
-
await this.projectBreadcrumb.click({ timeout: 60000 });
|
|
119
|
-
}
|
|
120
|
-
async clickOpenOrganizationsButton(retries = 3) {
|
|
121
|
-
for (let i = 0; i < retries; i++) {
|
|
122
|
-
try {
|
|
123
|
-
await this.openOrganizationsButton.click({ timeout: 90000, force: true });
|
|
124
|
-
return; // Click succeeded, exit the loop
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
|
|
128
|
-
// Refresh the page
|
|
129
|
-
await this.page.reload();
|
|
130
|
-
await (0, sleep_1.sleep)(10000);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
throw new Error(`Failed to click open organization button after ${retries} retries`);
|
|
134
|
-
}
|
|
135
|
-
async clickManageButton(retries = 3) {
|
|
136
|
-
for (let i = 0; i < retries; i++) {
|
|
137
|
-
try {
|
|
138
|
-
await this.manageButton.click({ timeout: 60000 });
|
|
139
|
-
return; // Click succeeded, exit the loop
|
|
140
|
-
}
|
|
141
|
-
catch (error) {
|
|
142
|
-
console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
|
|
143
|
-
await (0, sleep_1.sleep)(10000);
|
|
144
|
-
await this.clickOpenOrganizationsButton();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
throw new Error(`Failed to click deploy button after ${retries} retries`);
|
|
148
|
-
}
|
|
149
|
-
async clickUploadFilesButton() {
|
|
150
|
-
await this.uploadFilesButton.click({ timeout: 60000 });
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
exports.ModelerHomePage = ModelerHomePage;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class ModelerUserInvitePage {
|
|
3
|
-
private page;
|
|
4
|
-
private user_name;
|
|
5
|
-
readonly buttonAddUser: Locator;
|
|
6
|
-
readonly inputFieldUserEmailAddress: Locator;
|
|
7
|
-
readonly buttonSendInvitation: Locator;
|
|
8
|
-
readonly pendingInviteText: Locator;
|
|
9
|
-
readonly settings: Locator;
|
|
10
|
-
readonly logout: Locator;
|
|
11
|
-
readonly buttonSkipCustomization: Locator;
|
|
12
|
-
readonly buttonCloseHelpCentre: Locator;
|
|
13
|
-
readonly collaboratorName: Locator;
|
|
14
|
-
constructor(page: Page);
|
|
15
|
-
clickAddUser(): Promise<void>;
|
|
16
|
-
clickUserEmailInput(): Promise<void>;
|
|
17
|
-
fillUserEmailInput(emailAddress?: string): Promise<void>;
|
|
18
|
-
clickSendInviteButton(): Promise<void>;
|
|
19
|
-
checkPendingInviteText(email: string): Promise<void>;
|
|
20
|
-
inviteNewUser(): Promise<void>;
|
|
21
|
-
clickSettings(): Promise<void>;
|
|
22
|
-
clickLogout(): Promise<void>;
|
|
23
|
-
clickSkipCustomization(): Promise<void>;
|
|
24
|
-
clickCloseHelpCenter(): Promise<void>;
|
|
25
|
-
verifyCollaboratorName(): Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
export { ModelerUserInvitePage };
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelerUserInvitePage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
class ModelerUserInvitePage {
|
|
7
|
-
page;
|
|
8
|
-
user_name;
|
|
9
|
-
buttonAddUser;
|
|
10
|
-
inputFieldUserEmailAddress;
|
|
11
|
-
buttonSendInvitation;
|
|
12
|
-
pendingInviteText;
|
|
13
|
-
settings;
|
|
14
|
-
logout;
|
|
15
|
-
buttonSkipCustomization;
|
|
16
|
-
buttonCloseHelpCentre;
|
|
17
|
-
collaboratorName;
|
|
18
|
-
constructor(page) {
|
|
19
|
-
this.page = page;
|
|
20
|
-
this.buttonAddUser = page.locator('[data-test="add-collaborator"]');
|
|
21
|
-
this.inputFieldUserEmailAddress = page.locator('[data-test="multi-select-input"]');
|
|
22
|
-
this.buttonSendInvitation = page.locator('[data-test="invite-email-button"]');
|
|
23
|
-
this.pendingInviteText = page.getByText('pending');
|
|
24
|
-
this.settings = page.getByLabel('Open Settings');
|
|
25
|
-
this.logout = page.getByRole('button', { name: 'Log out' });
|
|
26
|
-
this.buttonSkipCustomization = page.getByRole('button', {
|
|
27
|
-
name: 'Skip customization',
|
|
28
|
-
});
|
|
29
|
-
this.buttonCloseHelpCentre = page.getByRole('button', { name: 'Close' });
|
|
30
|
-
this.collaboratorName = page.getByText('QA Camunda');
|
|
31
|
-
}
|
|
32
|
-
async clickAddUser() {
|
|
33
|
-
await (0, test_1.expect)(this.buttonAddUser).toBeVisible({ timeout: 60000 });
|
|
34
|
-
await this.buttonAddUser.click({ timeout: 30000 });
|
|
35
|
-
}
|
|
36
|
-
async clickUserEmailInput() {
|
|
37
|
-
await (0, test_1.expect)(this.inputFieldUserEmailAddress).toBeVisible({
|
|
38
|
-
timeout: 60000,
|
|
39
|
-
});
|
|
40
|
-
await this.inputFieldUserEmailAddress.click();
|
|
41
|
-
}
|
|
42
|
-
async fillUserEmailInput(emailAddress = this.user_name) {
|
|
43
|
-
await this.inputFieldUserEmailAddress.fill(emailAddress);
|
|
44
|
-
await (0, test_1.expect)(this.inputFieldUserEmailAddress).toHaveValue(emailAddress);
|
|
45
|
-
await this.inputFieldUserEmailAddress.press('Enter');
|
|
46
|
-
}
|
|
47
|
-
async clickSendInviteButton() {
|
|
48
|
-
await (0, test_1.expect)(this.buttonSendInvitation).toBeVisible({ timeout: 60000 });
|
|
49
|
-
await this.buttonSendInvitation.click();
|
|
50
|
-
}
|
|
51
|
-
async checkPendingInviteText(email) {
|
|
52
|
-
await (0, test_1.expect)(this.page.getByRole('row').filter({ hasText: `${email}` })).toContainText('pending', {
|
|
53
|
-
timeout: 120000,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
async inviteNewUser() {
|
|
57
|
-
await this.clickAddUser();
|
|
58
|
-
await this.clickUserEmailInput();
|
|
59
|
-
await this.fillUserEmailInput();
|
|
60
|
-
await (0, sleep_1.sleep)(8000);
|
|
61
|
-
await this.clickSendInviteButton();
|
|
62
|
-
}
|
|
63
|
-
async clickSettings() {
|
|
64
|
-
await (0, test_1.expect)(this.settings).toBeVisible({ timeout: 60000 });
|
|
65
|
-
await this.settings.click({ timeout: 90000 });
|
|
66
|
-
}
|
|
67
|
-
async clickLogout() {
|
|
68
|
-
await (0, test_1.expect)(this.logout).toBeVisible({ timeout: 60000 });
|
|
69
|
-
await this.logout.click({ timeout: 50000 });
|
|
70
|
-
}
|
|
71
|
-
async clickSkipCustomization() {
|
|
72
|
-
await (0, test_1.expect)(this.buttonSkipCustomization).toBeVisible({ timeout: 60000 });
|
|
73
|
-
await this.buttonSkipCustomization.click();
|
|
74
|
-
}
|
|
75
|
-
async clickCloseHelpCenter() {
|
|
76
|
-
await (0, test_1.expect)(this.buttonCloseHelpCentre).toBeVisible({ timeout: 60000 });
|
|
77
|
-
await this.buttonCloseHelpCentre.click();
|
|
78
|
-
}
|
|
79
|
-
async verifyCollaboratorName() {
|
|
80
|
-
await (0, test_1.expect)(this.collaboratorName).toBeVisible({ timeout: 60000 });
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.ModelerUserInvitePage = ModelerUserInvitePage;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OperateHomePage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly operateHeader: Locator;
|
|
5
|
-
readonly processesTab: Locator;
|
|
6
|
-
readonly informationDialog: Locator;
|
|
7
|
-
readonly editVariableButton: Locator;
|
|
8
|
-
readonly variableValueInput: Locator;
|
|
9
|
-
readonly saveVariableButton: Locator;
|
|
10
|
-
readonly editVariableSpinner: Locator;
|
|
11
|
-
readonly operateBanner: Locator;
|
|
12
|
-
constructor(page: Page);
|
|
13
|
-
clickProcessesTab(): Promise<void>;
|
|
14
|
-
closeInformationDialog(): Promise<void>;
|
|
15
|
-
clickEditVariableButton(variableName: string): Promise<void>;
|
|
16
|
-
clickVariableValueInput(): Promise<void>;
|
|
17
|
-
clearVariableValueInput(): Promise<void>;
|
|
18
|
-
fillVariableValueInput(value: string): Promise<void>;
|
|
19
|
-
clickSaveVariableButton(): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export { OperateHomePage };
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateHomePage = void 0;
|
|
4
|
-
class OperateHomePage {
|
|
5
|
-
page;
|
|
6
|
-
operateHeader;
|
|
7
|
-
processesTab;
|
|
8
|
-
informationDialog;
|
|
9
|
-
editVariableButton;
|
|
10
|
-
variableValueInput;
|
|
11
|
-
saveVariableButton;
|
|
12
|
-
editVariableSpinner;
|
|
13
|
-
operateBanner;
|
|
14
|
-
constructor(page) {
|
|
15
|
-
this.page = page;
|
|
16
|
-
this.operateHeader = page.getByRole('link', { name: 'Camunda Operate' });
|
|
17
|
-
this.processesTab = page.getByRole('link', { name: 'Processes' });
|
|
18
|
-
this.informationDialog = page.getByRole('button', {
|
|
19
|
-
name: 'Close this dialog',
|
|
20
|
-
});
|
|
21
|
-
this.editVariableButton = page.getByTestId('edit-variable-button');
|
|
22
|
-
this.variableValueInput = page.getByTestId('edit-variable-value');
|
|
23
|
-
this.saveVariableButton = page.getByLabel('Save variable');
|
|
24
|
-
this.editVariableSpinner = page
|
|
25
|
-
.getByTestId('variable-operation-spinner')
|
|
26
|
-
.locator('circle')
|
|
27
|
-
.nth(1);
|
|
28
|
-
this.operateBanner = page.getByRole('link', { name: 'Camunda logo Operate' });
|
|
29
|
-
}
|
|
30
|
-
async clickProcessesTab() {
|
|
31
|
-
await this.processesTab.click();
|
|
32
|
-
}
|
|
33
|
-
async closeInformationDialog() {
|
|
34
|
-
await this.informationDialog.click();
|
|
35
|
-
}
|
|
36
|
-
async clickEditVariableButton(variableName) {
|
|
37
|
-
const editVariableButton = 'Edit variable ' + variableName;
|
|
38
|
-
await this.page.getByLabel(editVariableButton).click({ timeout: 60000 });
|
|
39
|
-
}
|
|
40
|
-
async clickVariableValueInput() {
|
|
41
|
-
await this.variableValueInput.click();
|
|
42
|
-
}
|
|
43
|
-
async clearVariableValueInput() {
|
|
44
|
-
await this.variableValueInput.clear();
|
|
45
|
-
}
|
|
46
|
-
async fillVariableValueInput(value) {
|
|
47
|
-
await this.variableValueInput.fill(value);
|
|
48
|
-
}
|
|
49
|
-
async clickSaveVariableButton() {
|
|
50
|
-
await this.saveVariableButton.click();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.OperateHomePage = OperateHomePage;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OperateProcessInstancePage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly diagram: Locator;
|
|
5
|
-
readonly completedIcon: Locator;
|
|
6
|
-
readonly diagramSpinner: Locator;
|
|
7
|
-
readonly activeIcon: Locator;
|
|
8
|
-
readonly incidentIcon: Locator;
|
|
9
|
-
constructor(page: Page);
|
|
10
|
-
connectorResultVariableName(name: string): Promise<Locator>;
|
|
11
|
-
connectorResultVariableValue(variableName: string): Promise<Locator>;
|
|
12
|
-
reload(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export { OperateProcessInstancePage };
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateProcessInstancePage = void 0;
|
|
4
|
-
class OperateProcessInstancePage {
|
|
5
|
-
page;
|
|
6
|
-
diagram;
|
|
7
|
-
completedIcon;
|
|
8
|
-
diagramSpinner;
|
|
9
|
-
activeIcon;
|
|
10
|
-
incidentIcon;
|
|
11
|
-
constructor(page) {
|
|
12
|
-
this.page = page;
|
|
13
|
-
this.diagram = page.getByTestId('diagram');
|
|
14
|
-
this.completedIcon = page
|
|
15
|
-
.getByTestId('instance-header')
|
|
16
|
-
.getByTestId('COMPLETED-icon');
|
|
17
|
-
this.diagramSpinner = page.getByTestId('diagram-spinner');
|
|
18
|
-
this.activeIcon = page
|
|
19
|
-
.getByTestId('instance-header')
|
|
20
|
-
.getByTestId('ACTIVE-icon');
|
|
21
|
-
this.incidentIcon = page
|
|
22
|
-
.getByTestId('instance-header')
|
|
23
|
-
.getByTestId('INCIDENT-icon');
|
|
24
|
-
}
|
|
25
|
-
async connectorResultVariableName(name) {
|
|
26
|
-
return await this.page.getByTestId(name);
|
|
27
|
-
}
|
|
28
|
-
async connectorResultVariableValue(variableName) {
|
|
29
|
-
return await this.page.getByTestId(variableName).locator('td').last();
|
|
30
|
-
}
|
|
31
|
-
async reload() {
|
|
32
|
-
await this.page.reload();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.OperateProcessInstancePage = OperateProcessInstancePage;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OperateProcessesPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly processResultCount: Locator;
|
|
5
|
-
readonly processActiveCheckbox: Locator;
|
|
6
|
-
readonly processCompletedCheckbox: Locator;
|
|
7
|
-
readonly processRunningInstancesCheckbox: Locator;
|
|
8
|
-
readonly processIncidentsCheckbox: Locator;
|
|
9
|
-
readonly processPageHeading: Locator;
|
|
10
|
-
readonly noMatchingInstancesMessage: Locator;
|
|
11
|
-
readonly processFinishedInstancesCheckbox: Locator;
|
|
12
|
-
constructor(page: Page);
|
|
13
|
-
clickProcessActiveCheckbox(): Promise<void>;
|
|
14
|
-
reload(): Promise<void>;
|
|
15
|
-
assertProcessNameNotVisible(processName: string): Promise<void>;
|
|
16
|
-
clickProcessCompletedCheckbox(): Promise<void>;
|
|
17
|
-
clickProcessIncidentsCheckbox(): Promise<void>;
|
|
18
|
-
clickRunningProcessInstancesCheckbox(): Promise<void>;
|
|
19
|
-
clickFinishedProcessInstancesCheckbox(): Promise<void>;
|
|
20
|
-
clickProcessInstanceLink(processName: string): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
export { OperateProcessesPage };
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateProcessesPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
class OperateProcessesPage {
|
|
6
|
-
page;
|
|
7
|
-
processResultCount;
|
|
8
|
-
processActiveCheckbox;
|
|
9
|
-
processCompletedCheckbox;
|
|
10
|
-
processRunningInstancesCheckbox;
|
|
11
|
-
processIncidentsCheckbox;
|
|
12
|
-
processPageHeading;
|
|
13
|
-
noMatchingInstancesMessage;
|
|
14
|
-
processFinishedInstancesCheckbox;
|
|
15
|
-
constructor(page) {
|
|
16
|
-
this.page = page;
|
|
17
|
-
this.processResultCount = page.getByTestId('result-count');
|
|
18
|
-
this.processActiveCheckbox = page
|
|
19
|
-
.locator('label')
|
|
20
|
-
.filter({ hasText: 'Active' });
|
|
21
|
-
this.processCompletedCheckbox = page
|
|
22
|
-
.locator('label')
|
|
23
|
-
.filter({ hasText: 'Completed' });
|
|
24
|
-
this.processRunningInstancesCheckbox = page
|
|
25
|
-
.locator('label')
|
|
26
|
-
.filter({ hasText: 'Running Instances' });
|
|
27
|
-
this.processIncidentsCheckbox = page
|
|
28
|
-
.locator('label')
|
|
29
|
-
.filter({ hasText: 'Incidents' });
|
|
30
|
-
this.processPageHeading = page
|
|
31
|
-
.getByTestId('expanded-panel')
|
|
32
|
-
.getByRole('heading', { name: 'Process' });
|
|
33
|
-
this.noMatchingInstancesMessage = page.getByText('There are no Instances matching this filter set');
|
|
34
|
-
this.processFinishedInstancesCheckbox = page
|
|
35
|
-
.getByTestId('filter-finished-instances')
|
|
36
|
-
.getByRole('checkbox');
|
|
37
|
-
}
|
|
38
|
-
async clickProcessActiveCheckbox() {
|
|
39
|
-
await this.processActiveCheckbox.click({ timeout: 30000 });
|
|
40
|
-
}
|
|
41
|
-
async reload() {
|
|
42
|
-
await this.page.reload();
|
|
43
|
-
}
|
|
44
|
-
async assertProcessNameNotVisible(processName) {
|
|
45
|
-
await (0, test_1.expect)(this.page.getByRole('row', { name: processName })).not.toBeVisible({ timeout: 60000 });
|
|
46
|
-
}
|
|
47
|
-
async clickProcessCompletedCheckbox() {
|
|
48
|
-
await this.processCompletedCheckbox.click({ timeout: 30000 });
|
|
49
|
-
}
|
|
50
|
-
async clickProcessIncidentsCheckbox() {
|
|
51
|
-
await this.processIncidentsCheckbox.click({ timeout: 30000 });
|
|
52
|
-
}
|
|
53
|
-
async clickRunningProcessInstancesCheckbox() {
|
|
54
|
-
await this.processRunningInstancesCheckbox.click({ timeout: 30000 });
|
|
55
|
-
}
|
|
56
|
-
async clickFinishedProcessInstancesCheckbox() {
|
|
57
|
-
await this.processFinishedInstancesCheckbox.click({ timeout: 30000 });
|
|
58
|
-
}
|
|
59
|
-
async clickProcessInstanceLink(processName) {
|
|
60
|
-
const maxRetries = 3;
|
|
61
|
-
for (let retries = 0; retries < maxRetries; retries++) {
|
|
62
|
-
try {
|
|
63
|
-
if (retries === 0) {
|
|
64
|
-
await this.page
|
|
65
|
-
.locator('td:right-of(:text("' + processName + '"))')
|
|
66
|
-
.first()
|
|
67
|
-
.click({ timeout: 60000 });
|
|
68
|
-
}
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error(`Click attempt ${retries + 1} failed: ${error}`);
|
|
73
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
74
|
-
await this.page.reload();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
throw new Error(`Failed to click the link after ${maxRetries} attempts.`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
exports.OperateProcessesPage = OperateProcessesPage;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OptimizeCollectionsPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly collectionsPageHeader: Locator;
|
|
5
|
-
readonly createNewButton: Locator;
|
|
6
|
-
readonly reportOption: Locator;
|
|
7
|
-
readonly modalCloseButton: Locator;
|
|
8
|
-
readonly processReport: Locator;
|
|
9
|
-
readonly collectionsLink: Locator;
|
|
10
|
-
constructor(page: Page);
|
|
11
|
-
clickCreateNewButton(): Promise<void>;
|
|
12
|
-
clickReportOption(): Promise<void>;
|
|
13
|
-
clickMostRecentProcessReport(reportName: string): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
export { OptimizeCollectionsPage };
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptimizeCollectionsPage = void 0;
|
|
4
|
-
class OptimizeCollectionsPage {
|
|
5
|
-
page;
|
|
6
|
-
collectionsPageHeader;
|
|
7
|
-
createNewButton;
|
|
8
|
-
reportOption;
|
|
9
|
-
modalCloseButton;
|
|
10
|
-
processReport;
|
|
11
|
-
collectionsLink;
|
|
12
|
-
constructor(page) {
|
|
13
|
-
this.page = page;
|
|
14
|
-
this.collectionsPageHeader = page.getByRole('heading', {
|
|
15
|
-
name: 'Collections, Dashboards, and Reports',
|
|
16
|
-
});
|
|
17
|
-
this.createNewButton = page.getByRole('button', {
|
|
18
|
-
name: 'Create new',
|
|
19
|
-
exact: true,
|
|
20
|
-
});
|
|
21
|
-
this.reportOption = page.getByText('Report', { exact: true });
|
|
22
|
-
this.modalCloseButton = page.getByText('Close', { exact: true });
|
|
23
|
-
this.processReport = page.getByText('Process Report').first();
|
|
24
|
-
this.collectionsLink = page.getByRole('link', { name: 'Collections' });
|
|
25
|
-
}
|
|
26
|
-
async clickCreateNewButton() {
|
|
27
|
-
try {
|
|
28
|
-
await this.modalCloseButton.click({ timeout: 60000 });
|
|
29
|
-
await this.collectionsLink.click({ timeout: 60000 });
|
|
30
|
-
await this.createNewButton.click({ timeout: 60000 });
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
await this.collectionsLink.click({ timeout: 90000 });
|
|
34
|
-
await this.createNewButton.click({ timeout: 60000 });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async clickReportOption() {
|
|
38
|
-
await this.reportOption.click();
|
|
39
|
-
}
|
|
40
|
-
async clickMostRecentProcessReport(reportName) {
|
|
41
|
-
await this.page.getByText(reportName).click({ timeout: 60000 });
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.OptimizeCollectionsPage = OptimizeCollectionsPage;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Page } from '@playwright/test';
|
|
2
|
-
declare class OptimizeDashboardPage {
|
|
3
|
-
private page;
|
|
4
|
-
constructor(page: Page);
|
|
5
|
-
processLinkAssertion(processName: string, maxRetries: number): Promise<void>;
|
|
6
|
-
processOwnerNameAssertion(processName: string): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
export { OptimizeDashboardPage };
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptimizeDashboardPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
class OptimizeDashboardPage {
|
|
6
|
-
page;
|
|
7
|
-
constructor(page) {
|
|
8
|
-
this.page = page;
|
|
9
|
-
}
|
|
10
|
-
async processLinkAssertion(processName, maxRetries) {
|
|
11
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
12
|
-
try {
|
|
13
|
-
await this.page.reload();
|
|
14
|
-
await (0, test_1.expect)(this.page.getByRole('link', { name: processName })).toBeVisible({ timeout: 70000 });
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
catch (error) {
|
|
18
|
-
if (attempt < maxRetries - 1) {
|
|
19
|
-
console.warn(`Attempt ${attempt + 1} failed for asserting process link in Optimize. Retrying...`);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
throw new Error(`Process link in Optimize assertion failed after ${maxRetries} attempts`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async processOwnerNameAssertion(processName) {
|
|
28
|
-
const maxRetries = 5;
|
|
29
|
-
const retryDelay = 60000;
|
|
30
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
31
|
-
try {
|
|
32
|
-
await this.page.reload();
|
|
33
|
-
await (0, test_1.expect)(this.page.getByRole('link', { name: 'Process ' + processName })).toContainText('QA Camunda', { timeout: 60000 });
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
if (attempt < maxRetries - 1) {
|
|
38
|
-
console.warn(`Attempt ${attempt + 1} failed for asserting owner name in Optimize.. Retrying...`);
|
|
39
|
-
await new Promise((resolve) => setTimeout(resolve, retryDelay));
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
throw new Error(`Owner name assertion failed after ${maxRetries} attempts`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
exports.OptimizeDashboardPage = OptimizeDashboardPage;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OptimizeHomePage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly collectionsLink: Locator;
|
|
5
|
-
readonly dashboardLink: Locator;
|
|
6
|
-
readonly modalCloseButton: Locator;
|
|
7
|
-
readonly optimizeBanner: Locator;
|
|
8
|
-
constructor(page: Page);
|
|
9
|
-
clickCollectionsLink(): Promise<void>;
|
|
10
|
-
clickDashboardLink(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
export { OptimizeHomePage };
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptimizeHomePage = void 0;
|
|
4
|
-
class OptimizeHomePage {
|
|
5
|
-
page;
|
|
6
|
-
collectionsLink;
|
|
7
|
-
dashboardLink;
|
|
8
|
-
modalCloseButton;
|
|
9
|
-
optimizeBanner;
|
|
10
|
-
constructor(page) {
|
|
11
|
-
this.page = page;
|
|
12
|
-
this.collectionsLink = page.getByRole('link', { name: 'Collections' });
|
|
13
|
-
this.dashboardLink = page.getByRole('link', { name: 'Dashboard' });
|
|
14
|
-
this.modalCloseButton = page.getByText('Close', { exact: true }).first();
|
|
15
|
-
this.optimizeBanner = page.getByRole('link', {
|
|
16
|
-
name: 'Camunda logo Optimize',
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
async clickCollectionsLink() {
|
|
20
|
-
await this.collectionsLink.click({ timeout: 60000 });
|
|
21
|
-
}
|
|
22
|
-
async clickDashboardLink() {
|
|
23
|
-
try {
|
|
24
|
-
await this.modalCloseButton.click({ timeout: 30000 });
|
|
25
|
-
await this.dashboardLink.click({ timeout: 60000 });
|
|
26
|
-
}
|
|
27
|
-
catch (error) {
|
|
28
|
-
await this.dashboardLink.click({ timeout: 60000 });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.OptimizeHomePage = OptimizeHomePage;
|