@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,139 +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
|
-
crossComponentProjectFolder;
|
|
20
|
-
homeBreadcrumb;
|
|
21
|
-
formNameInput;
|
|
22
|
-
rows;
|
|
23
|
-
constructor(page) {
|
|
24
|
-
this.page = page;
|
|
25
|
-
this.modelerPageBanner = page
|
|
26
|
-
.locator('a')
|
|
27
|
-
.filter({ hasText: 'Camunda logoModeler' });
|
|
28
|
-
this.createNewProjectButton = page.getByRole('button', {
|
|
29
|
-
name: 'New project',
|
|
30
|
-
});
|
|
31
|
-
this.projectNameInput = page.locator('[data-test="editable-input"]');
|
|
32
|
-
this.chooseBpmnTemplateButton = page.getByRole('button', {
|
|
33
|
-
name: 'Choose BPMN template',
|
|
34
|
-
});
|
|
35
|
-
this.diagramTypeDropdown = page.locator('[data-test="diagram-dropdown"]');
|
|
36
|
-
this.bpmnTemplateOption = page
|
|
37
|
-
.locator('[data-test="create-bpmn-diagram"]')
|
|
38
|
-
.getByText('BPMN Diagram');
|
|
39
|
-
this.formTemplateOption = page
|
|
40
|
-
.locator('[data-test="create-form"]')
|
|
41
|
-
.getByText('Form');
|
|
42
|
-
this.projectBreadcrumb = page.locator('[data-test="breadcrumb-project"]');
|
|
43
|
-
this.openOrganizationsButton = page.getByLabel('Open Organizations');
|
|
44
|
-
this.manageButton = page.getByRole('button', { name: 'Manage' });
|
|
45
|
-
this.crossComponentProjectFolder = page
|
|
46
|
-
.getByTitle(this.defaultFolderName, {
|
|
47
|
-
exact: true,
|
|
48
|
-
})
|
|
49
|
-
.first();
|
|
50
|
-
this.homeBreadcrumb = page.locator('[data-test="breadcrumb-home"]');
|
|
51
|
-
this.formNameInput = page.locator('[data-test="editable-input"]');
|
|
52
|
-
this.rows = page.getByRole('row');
|
|
53
|
-
}
|
|
54
|
-
async clickCreateNewProjectButton() {
|
|
55
|
-
await this.createNewProjectButton.click({ timeout: 60000 });
|
|
56
|
-
}
|
|
57
|
-
async enterNewProjectName(name) {
|
|
58
|
-
await this.projectNameInput.click({ timeout: 60000 });
|
|
59
|
-
await this.projectNameInput.fill(name);
|
|
60
|
-
await this.projectNameInput.press('Enter');
|
|
61
|
-
}
|
|
62
|
-
async createCrossComponentProjectFolder() {
|
|
63
|
-
await (0, sleep_1.sleep)(10000);
|
|
64
|
-
if (await this.crossComponentProjectFolder.isVisible()) {
|
|
65
|
-
console.log('Cross Component Project folder already exists. Clicking into it');
|
|
66
|
-
await this.clickCrossComponentProjectFolder();
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
await this.clickCreateNewProjectButton();
|
|
70
|
-
await this.enterNewProjectName(this.defaultFolderName);
|
|
71
|
-
await (0, sleep_1.sleep)(5000);
|
|
72
|
-
}
|
|
73
|
-
async clickCrossComponentProjectFolder() {
|
|
74
|
-
let attempts = 0;
|
|
75
|
-
const maxAttempts = 3;
|
|
76
|
-
const timeout = 60000;
|
|
77
|
-
while (attempts < maxAttempts) {
|
|
78
|
-
try {
|
|
79
|
-
await (0, test_1.expect)(this.crossComponentProjectFolder).toBeVisible({ timeout });
|
|
80
|
-
await this.crossComponentProjectFolder.click();
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
attempts++;
|
|
85
|
-
if (attempts < maxAttempts) {
|
|
86
|
-
console.log(`Attempt ${attempts} failed. Reloading page and retrying...`);
|
|
87
|
-
await this.page.reload();
|
|
88
|
-
await (0, sleep_1.sleep)(10000);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
throw new Error('Failed to click crossComponentProjectFolder after 3 attempts.');
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
async clickProcessDiagram(name) {
|
|
97
|
-
const process = this.rows.filter({ hasText: name }).getByTitle(name).first();
|
|
98
|
-
await (0, test_1.expect)(process).toBeVisible({ timeout: 90000 });
|
|
99
|
-
await process.click();
|
|
100
|
-
}
|
|
101
|
-
async clickHomeBreadcrumb() {
|
|
102
|
-
try {
|
|
103
|
-
await this.homeBreadcrumb.click();
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
await this.page.getByText('Home', { exact: true }).first().click();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
async clickChooseBpmnTemplateButton() {
|
|
110
|
-
await this.chooseBpmnTemplateButton.click();
|
|
111
|
-
}
|
|
112
|
-
async clickDiagramTypeDropdown() {
|
|
113
|
-
await (0, test_1.expect)(this.diagramTypeDropdown).toBeVisible({
|
|
114
|
-
timeout: 60000,
|
|
115
|
-
});
|
|
116
|
-
await this.diagramTypeDropdown.click();
|
|
117
|
-
}
|
|
118
|
-
async clickBpmnTemplateOption() {
|
|
119
|
-
await this.bpmnTemplateOption.click();
|
|
120
|
-
}
|
|
121
|
-
async clickFormOption() {
|
|
122
|
-
await this.formTemplateOption.click();
|
|
123
|
-
}
|
|
124
|
-
async enterFormName(name) {
|
|
125
|
-
await this.formNameInput.click({ timeout: 60000 });
|
|
126
|
-
await this.formNameInput.fill(name);
|
|
127
|
-
await this.formNameInput.press('Enter');
|
|
128
|
-
}
|
|
129
|
-
async clickProjectBreadcrumb() {
|
|
130
|
-
await this.projectBreadcrumb.click({ timeout: 60000 });
|
|
131
|
-
}
|
|
132
|
-
async clickOpenOrganizationsButton() {
|
|
133
|
-
await this.openOrganizationsButton.click({ timeout: 30000 });
|
|
134
|
-
}
|
|
135
|
-
async clickManageButton() {
|
|
136
|
-
await this.manageButton.click({ timeout: 30000 });
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
exports.ModelerHomePage = ModelerHomePage;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Locator, Page } from '@playwright/test';
|
|
2
|
-
type GoToOptions = {
|
|
3
|
-
username?: string;
|
|
4
|
-
loginPassword?: string;
|
|
5
|
-
sleepTimeout?: number;
|
|
6
|
-
checkBanner?: boolean;
|
|
7
|
-
};
|
|
8
|
-
export declare class NavigationPage {
|
|
9
|
-
private page;
|
|
10
|
-
readonly modelerPageBanner: Locator;
|
|
11
|
-
readonly operatePageBanner: Locator;
|
|
12
|
-
readonly tasklistPageBanner: Locator;
|
|
13
|
-
readonly optimizePageBanner: Locator;
|
|
14
|
-
readonly identityPageBanner: Locator;
|
|
15
|
-
readonly consolePageBanner: Locator;
|
|
16
|
-
constructor(page: Page);
|
|
17
|
-
private resolveBaseUrl;
|
|
18
|
-
goTo(url: string, banner: Locator, { username, loginPassword, sleepTimeout, checkBanner, }?: GoToOptions, maxRetries?: number): Promise<void>;
|
|
19
|
-
goToModeler(options?: GoToOptions): Promise<void>;
|
|
20
|
-
goToTasklist(options?: GoToOptions): Promise<void>;
|
|
21
|
-
goToOperate(options?: GoToOptions): Promise<void>;
|
|
22
|
-
goToOptimize(options?: GoToOptions): Promise<void>;
|
|
23
|
-
goToIdentity(options?: GoToOptions): Promise<void>;
|
|
24
|
-
goToConsole(options?: GoToOptions): Promise<void>;
|
|
25
|
-
}
|
|
26
|
-
export {};
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NavigationPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const LoginPage_1 = require("./LoginPage");
|
|
6
|
-
const randomSleep_1 = require("../../utils/randomSleep");
|
|
7
|
-
const sleep_1 = require("../../utils/sleep");
|
|
8
|
-
class NavigationPage {
|
|
9
|
-
page;
|
|
10
|
-
modelerPageBanner;
|
|
11
|
-
operatePageBanner;
|
|
12
|
-
tasklistPageBanner;
|
|
13
|
-
optimizePageBanner;
|
|
14
|
-
identityPageBanner;
|
|
15
|
-
consolePageBanner;
|
|
16
|
-
constructor(page) {
|
|
17
|
-
this.page = page;
|
|
18
|
-
this.operatePageBanner = page.getByRole('link', {
|
|
19
|
-
name: 'Camunda logo Operate',
|
|
20
|
-
});
|
|
21
|
-
this.modelerPageBanner = page
|
|
22
|
-
.locator('a')
|
|
23
|
-
.filter({ hasText: 'Camunda logoModeler' });
|
|
24
|
-
this.tasklistPageBanner = page.getByRole('link', {
|
|
25
|
-
name: 'Camunda logo Tasklist',
|
|
26
|
-
});
|
|
27
|
-
this.optimizePageBanner = page.getByRole('link', {
|
|
28
|
-
name: 'Camunda logo Optimize',
|
|
29
|
-
});
|
|
30
|
-
this.identityPageBanner = page.getByRole('link', {
|
|
31
|
-
name: 'Camunda Identity',
|
|
32
|
-
});
|
|
33
|
-
this.consolePageBanner = page.getByRole('link', {
|
|
34
|
-
name: 'Camunda logo Console',
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
resolveBaseUrl() {
|
|
38
|
-
if (typeof process.env.PLAYWRIGHT_BASE_URL === 'string') {
|
|
39
|
-
return process.env.PLAYWRIGHT_BASE_URL;
|
|
40
|
-
}
|
|
41
|
-
if (process.env.MINOR_VERSION?.includes('SM')) {
|
|
42
|
-
return ('https://gke-' + process.env.BASE_URL + '.ci.distro.ultrawombat.com');
|
|
43
|
-
}
|
|
44
|
-
throw new Error('Base URL environment variables are not properly set.');
|
|
45
|
-
}
|
|
46
|
-
async goTo(url, banner, { username = 'demo', loginPassword = process.env
|
|
47
|
-
.DISTRO_QA_E2E_TESTS_IDENTITY_FIRSTUSER_PASSWORD, sleepTimeout, checkBanner = true, } = {}, maxRetries = 3) {
|
|
48
|
-
const baseUrl = this.resolveBaseUrl();
|
|
49
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
50
|
-
try {
|
|
51
|
-
if (sleepTimeout) {
|
|
52
|
-
await (0, sleep_1.sleep)(sleepTimeout);
|
|
53
|
-
}
|
|
54
|
-
const finalUrl = url.startsWith('http') ? url : `${baseUrl}${url}`;
|
|
55
|
-
await this.page.context().clearCookies();
|
|
56
|
-
await this.page.goto(finalUrl, { timeout: 60000 });
|
|
57
|
-
await this.page.waitForLoadState('load').catch(() => { });
|
|
58
|
-
const loginPage = new LoginPage_1.LoginPage(this.page);
|
|
59
|
-
await loginPage.login(username, loginPassword);
|
|
60
|
-
if (checkBanner) {
|
|
61
|
-
await (0, test_1.expect)(banner).toBeVisible({ timeout: 120000 });
|
|
62
|
-
}
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
if (attempt < maxRetries - 1) {
|
|
67
|
-
await (0, randomSleep_1.randomSleep)(15000, 30000);
|
|
68
|
-
if (!this.page.isClosed()) {
|
|
69
|
-
await this.page.waitForLoadState('load').catch(() => { });
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
throw new Error(`Login (${url}) failed after ${maxRetries} attempts: ${error}`);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
async goToModeler(options) {
|
|
79
|
-
await this.goTo('/modeler', this.modelerPageBanner, options);
|
|
80
|
-
}
|
|
81
|
-
async goToTasklist(options) {
|
|
82
|
-
await this.goTo('/tasklist', this.tasklistPageBanner, options);
|
|
83
|
-
}
|
|
84
|
-
async goToOperate(options) {
|
|
85
|
-
await this.goTo('/operate', this.operatePageBanner, options);
|
|
86
|
-
}
|
|
87
|
-
async goToOptimize(options) {
|
|
88
|
-
await this.goTo('/optimize', this.optimizePageBanner, options);
|
|
89
|
-
}
|
|
90
|
-
async goToIdentity(options) {
|
|
91
|
-
await this.goTo('/identity', this.identityPageBanner, options);
|
|
92
|
-
}
|
|
93
|
-
async goToConsole(options) {
|
|
94
|
-
await this.goTo('/', this.consolePageBanner, options);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
exports.NavigationPage = NavigationPage;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OperateHomePage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly operateBanner: 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
|
-
constructor(page: Page);
|
|
12
|
-
clickProcessesTab(): Promise<void>;
|
|
13
|
-
closeInformationDialog(): Promise<void>;
|
|
14
|
-
clickEditVariableButton(variableName: string): Promise<void>;
|
|
15
|
-
clickVariableValueInput(): Promise<void>;
|
|
16
|
-
clearVariableValueInput(): Promise<void>;
|
|
17
|
-
fillVariableValueInput(value: string): Promise<void>;
|
|
18
|
-
clickSaveVariableButton(): Promise<void>;
|
|
19
|
-
openProcess(processName: string): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export { OperateHomePage };
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateHomePage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
class OperateHomePage {
|
|
6
|
-
page;
|
|
7
|
-
operateBanner;
|
|
8
|
-
processesTab;
|
|
9
|
-
informationDialog;
|
|
10
|
-
editVariableButton;
|
|
11
|
-
variableValueInput;
|
|
12
|
-
saveVariableButton;
|
|
13
|
-
editVariableSpinner;
|
|
14
|
-
constructor(page) {
|
|
15
|
-
this.page = page;
|
|
16
|
-
this.operateBanner = page.getByRole('link', { name: 'Camunda logo 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
|
-
}
|
|
29
|
-
async clickProcessesTab() {
|
|
30
|
-
try {
|
|
31
|
-
await (0, test_1.expect)(this.processesTab).toBeVisible({ timeout: 120000 });
|
|
32
|
-
await this.processesTab.click({ timeout: 120000 });
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
await this.page.reload();
|
|
36
|
-
await (0, test_1.expect)(this.processesTab).toBeVisible({ timeout: 120000 });
|
|
37
|
-
await this.processesTab.click({ timeout: 120000 });
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async closeInformationDialog() {
|
|
41
|
-
await this.informationDialog.click();
|
|
42
|
-
}
|
|
43
|
-
async clickEditVariableButton(variableName) {
|
|
44
|
-
const editVariableButton = 'Edit variable ' + variableName;
|
|
45
|
-
await this.page.getByLabel(editVariableButton).click();
|
|
46
|
-
}
|
|
47
|
-
async clickVariableValueInput() {
|
|
48
|
-
await this.variableValueInput.click();
|
|
49
|
-
}
|
|
50
|
-
async clearVariableValueInput() {
|
|
51
|
-
await this.variableValueInput.clear();
|
|
52
|
-
}
|
|
53
|
-
async fillVariableValueInput(value) {
|
|
54
|
-
await this.variableValueInput.fill(value);
|
|
55
|
-
}
|
|
56
|
-
async clickSaveVariableButton() {
|
|
57
|
-
await this.saveVariableButton.click();
|
|
58
|
-
}
|
|
59
|
-
async openProcess(processName) {
|
|
60
|
-
await this.page.getByText(processName).click();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
exports.OperateHomePage = OperateHomePage;
|
|
@@ -1,23 +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 taskActiveIcon: Locator;
|
|
9
|
-
readonly processActiveCheckbox: Locator;
|
|
10
|
-
readonly processCompletedCheckbox: Locator;
|
|
11
|
-
readonly tenantComboBox: Locator;
|
|
12
|
-
constructor(page: Page);
|
|
13
|
-
connectorResultVariableName(name: string): Promise<Locator>;
|
|
14
|
-
connectorResultVariableValue(variableName: string): Promise<Locator>;
|
|
15
|
-
completedIconAssertion(): Promise<void>;
|
|
16
|
-
activeIconAssertion(): Promise<void>;
|
|
17
|
-
taskActiveIconAssertion(count: number): Promise<void>;
|
|
18
|
-
tenantNameAssertion(name: string): Promise<void>;
|
|
19
|
-
clickProcessActiveCheckbox(): Promise<void>;
|
|
20
|
-
clickProcessCompletedCheckbox(): Promise<void>;
|
|
21
|
-
selectTenant(tenantName: string): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export { OperateProcessInstancePage };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateProcessInstancePage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
class OperateProcessInstancePage {
|
|
7
|
-
page;
|
|
8
|
-
diagram;
|
|
9
|
-
completedIcon;
|
|
10
|
-
diagramSpinner;
|
|
11
|
-
activeIcon;
|
|
12
|
-
taskActiveIcon;
|
|
13
|
-
processActiveCheckbox;
|
|
14
|
-
processCompletedCheckbox;
|
|
15
|
-
tenantComboBox;
|
|
16
|
-
constructor(page) {
|
|
17
|
-
this.page = page;
|
|
18
|
-
this.diagram = page.getByTestId('diagram');
|
|
19
|
-
this.completedIcon = page
|
|
20
|
-
.getByTestId('instance-header')
|
|
21
|
-
.getByTestId('COMPLETED-icon');
|
|
22
|
-
this.diagramSpinner = page.getByTestId('diagram-spinner');
|
|
23
|
-
this.activeIcon = page
|
|
24
|
-
.getByTestId('instance-header')
|
|
25
|
-
.getByTestId('ACTIVE-icon');
|
|
26
|
-
this.taskActiveIcon = page.getByTestId('state-overlay');
|
|
27
|
-
this.processActiveCheckbox = page
|
|
28
|
-
.locator('label')
|
|
29
|
-
.filter({ hasText: 'Active' });
|
|
30
|
-
this.processCompletedCheckbox = page
|
|
31
|
-
.locator('label')
|
|
32
|
-
.filter({ hasText: 'Completed' });
|
|
33
|
-
this.tenantComboBox = page.getByRole('combobox', { name: 'Tenant' });
|
|
34
|
-
}
|
|
35
|
-
async connectorResultVariableName(name) {
|
|
36
|
-
return this.page.getByTestId(name);
|
|
37
|
-
}
|
|
38
|
-
async connectorResultVariableValue(variableName) {
|
|
39
|
-
return this.page.getByTestId(variableName).locator('td').last();
|
|
40
|
-
}
|
|
41
|
-
async completedIconAssertion() {
|
|
42
|
-
for (let attempt = 1; attempt <= 5; attempt++) {
|
|
43
|
-
try {
|
|
44
|
-
await (0, test_1.expect)(this.completedIcon).toBeVisible({ timeout: 60000 });
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
if (attempt === 5) {
|
|
49
|
-
throw e;
|
|
50
|
-
}
|
|
51
|
-
await this.page.reload();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
async activeIconAssertion() {
|
|
56
|
-
for (let attempt = 1; attempt <= 5; attempt++) {
|
|
57
|
-
try {
|
|
58
|
-
await (0, test_1.expect)(this.activeIcon).toBeVisible({ timeout: 60000 });
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
catch (e) {
|
|
62
|
-
if (attempt === 5) {
|
|
63
|
-
throw e;
|
|
64
|
-
}
|
|
65
|
-
await this.page.reload();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
async taskActiveIconAssertion(count) {
|
|
70
|
-
let retryCount = 0;
|
|
71
|
-
const maxRetries = 3;
|
|
72
|
-
while (retryCount < maxRetries) {
|
|
73
|
-
try {
|
|
74
|
-
await (0, test_1.expect)(await this.taskActiveIcon.count()).toEqual(count);
|
|
75
|
-
return; // Exit the function if the expectation is met
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
// If the active icon is found, reload the page and try again
|
|
79
|
-
retryCount++;
|
|
80
|
-
console.log(`Attempt ${retryCount} failed. Retrying...`);
|
|
81
|
-
await this.page.reload();
|
|
82
|
-
await (0, sleep_1.sleep)(10000);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
throw new Error(`Active icon count is not matching after ${maxRetries} attempts.`);
|
|
86
|
-
}
|
|
87
|
-
async tenantNameAssertion(name) {
|
|
88
|
-
await (0, test_1.expect)(this.page.getByRole('cell', { name: name, exact: true })).toBeVisible({ timeout: 60000 });
|
|
89
|
-
}
|
|
90
|
-
async clickProcessActiveCheckbox() {
|
|
91
|
-
if (!(await this.processActiveCheckbox.isChecked({ timeout: 60000 }))) {
|
|
92
|
-
await this.processActiveCheckbox.click({ timeout: 120000 });
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async clickProcessCompletedCheckbox() {
|
|
96
|
-
if (!(await this.processCompletedCheckbox.isChecked({ timeout: 60000 }))) {
|
|
97
|
-
await this.processCompletedCheckbox.click({ timeout: 120000 });
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
async selectTenant(tenantName) {
|
|
101
|
-
await this.tenantComboBox.click();
|
|
102
|
-
await this.page.getByTestId('expanded-panel').getByText(tenantName).click();
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
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
|
-
readonly tenantComboBox: Locator;
|
|
13
|
-
constructor(page: Page);
|
|
14
|
-
clickProcessActiveCheckbox(): Promise<void>;
|
|
15
|
-
clickProcessCompletedCheckbox(): Promise<void>;
|
|
16
|
-
clickProcessIncidentsCheckbox(): Promise<void>;
|
|
17
|
-
clickRunningProcessInstancesCheckbox(): Promise<void>;
|
|
18
|
-
clickFinishedProcessInstancesCheckbox(): Promise<void>;
|
|
19
|
-
clickProcessInstanceLink(processName: string): Promise<void>;
|
|
20
|
-
selectTenant(tenantName: string): Promise<void>;
|
|
21
|
-
}
|
|
22
|
-
export { OperateProcessesPage };
|
|
@@ -1,90 +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
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
class OperateProcessesPage {
|
|
7
|
-
page;
|
|
8
|
-
processResultCount;
|
|
9
|
-
processActiveCheckbox;
|
|
10
|
-
processCompletedCheckbox;
|
|
11
|
-
processRunningInstancesCheckbox;
|
|
12
|
-
processIncidentsCheckbox;
|
|
13
|
-
processPageHeading;
|
|
14
|
-
noMatchingInstancesMessage;
|
|
15
|
-
processFinishedInstancesCheckbox;
|
|
16
|
-
tenantComboBox;
|
|
17
|
-
constructor(page) {
|
|
18
|
-
this.page = page;
|
|
19
|
-
this.processResultCount = page.getByTestId('result-count');
|
|
20
|
-
this.processActiveCheckbox = page
|
|
21
|
-
.locator('label')
|
|
22
|
-
.filter({ hasText: 'Active' });
|
|
23
|
-
this.processCompletedCheckbox = page
|
|
24
|
-
.locator('label')
|
|
25
|
-
.filter({ hasText: 'Completed' });
|
|
26
|
-
this.processRunningInstancesCheckbox = page
|
|
27
|
-
.locator('label')
|
|
28
|
-
.filter({ hasText: 'Running Instances' });
|
|
29
|
-
this.processIncidentsCheckbox = page
|
|
30
|
-
.locator('label')
|
|
31
|
-
.filter({ hasText: 'Incidents' });
|
|
32
|
-
this.processPageHeading = page
|
|
33
|
-
.getByTestId('expanded-panel')
|
|
34
|
-
.getByRole('heading', { name: 'Process' });
|
|
35
|
-
this.noMatchingInstancesMessage = page.getByText('There are no Instances matching this filter set');
|
|
36
|
-
this.processFinishedInstancesCheckbox = page
|
|
37
|
-
.getByTestId('filter-finished-instances')
|
|
38
|
-
.getByRole('checkbox');
|
|
39
|
-
this.tenantComboBox = page.getByRole('combobox', { name: 'Tenant' });
|
|
40
|
-
}
|
|
41
|
-
async clickProcessActiveCheckbox() {
|
|
42
|
-
await this.processActiveCheckbox.click();
|
|
43
|
-
}
|
|
44
|
-
async clickProcessCompletedCheckbox() {
|
|
45
|
-
if (!(await this.processCompletedCheckbox.isChecked({ timeout: 60000 }))) {
|
|
46
|
-
await this.processCompletedCheckbox.click({ timeout: 120000 });
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async clickProcessIncidentsCheckbox() {
|
|
50
|
-
await this.processIncidentsCheckbox.click({ timeout: 90000 });
|
|
51
|
-
}
|
|
52
|
-
async clickRunningProcessInstancesCheckbox() {
|
|
53
|
-
await this.processRunningInstancesCheckbox.click({ timeout: 90000 });
|
|
54
|
-
}
|
|
55
|
-
async clickFinishedProcessInstancesCheckbox() {
|
|
56
|
-
await this.processFinishedInstancesCheckbox.click({ timeout: 90000 });
|
|
57
|
-
}
|
|
58
|
-
async clickProcessInstanceLink(processName) {
|
|
59
|
-
let retryCount = 0;
|
|
60
|
-
const maxRetries = 10;
|
|
61
|
-
while (retryCount < maxRetries) {
|
|
62
|
-
try {
|
|
63
|
-
const process = this.page
|
|
64
|
-
.locator(`td:right-of(:text("${processName}"))`)
|
|
65
|
-
.first();
|
|
66
|
-
await (0, test_1.expect)(process).toBeVisible({ timeout: 60000 });
|
|
67
|
-
await process.click({ timeout: 60000 });
|
|
68
|
-
await (0, test_1.expect)(this.page.getByText('Instance History').first()).toBeVisible({ timeout: 30000 });
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
retryCount++;
|
|
73
|
-
console.log(`Attempt ${retryCount} failed.`);
|
|
74
|
-
console.log('Ensuring Active checkbox is checked...');
|
|
75
|
-
await this.clickProcessActiveCheckbox();
|
|
76
|
-
console.log('Ensuring Completed checkbox is checked...');
|
|
77
|
-
await this.clickProcessCompletedCheckbox();
|
|
78
|
-
console.log('Reloading page and retrying...');
|
|
79
|
-
await this.page.reload();
|
|
80
|
-
await (0, sleep_1.sleep)(60000);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
throw new Error(`Failed to click on process instance link after ${maxRetries} attempts.`);
|
|
84
|
-
}
|
|
85
|
-
async selectTenant(tenantName) {
|
|
86
|
-
await this.tenantComboBox.click();
|
|
87
|
-
await this.page.getByText(tenantName).click();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
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,50 +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: 90000 });
|
|
31
|
-
}
|
|
32
|
-
catch (error) {
|
|
33
|
-
await this.collectionsLink.click({ timeout: 60000 });
|
|
34
|
-
await this.createNewButton.click({ timeout: 90000 });
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
async clickReportOption() {
|
|
38
|
-
await this.reportOption.click();
|
|
39
|
-
}
|
|
40
|
-
async clickMostRecentProcessReport(reportName) {
|
|
41
|
-
try {
|
|
42
|
-
await this.page.getByText(reportName).click({ timeout: 120000 });
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
await this.collectionsLink.click({ timeout: 60000 });
|
|
46
|
-
await this.page.getByText(reportName).click({ timeout: 120000 });
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.OptimizeCollectionsPage = OptimizeCollectionsPage;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class OptimizeDashboardPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly filterTable: Locator;
|
|
5
|
-
readonly filterTableSearch: Locator;
|
|
6
|
-
constructor(page: Page);
|
|
7
|
-
clickFilterTable(): Promise<void>;
|
|
8
|
-
fillFilterTable(processName: string): Promise<void>;
|
|
9
|
-
processOwnerNameAssertion(processName: string): Promise<void>;
|
|
10
|
-
processAssertion(processName: string, { timeout, not }?: {
|
|
11
|
-
timeout?: number;
|
|
12
|
-
not?: boolean;
|
|
13
|
-
}): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
export { OptimizeDashboardPage };
|