@camunda/e2e-test-suite 0.0.714 → 0.0.715
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/.github/c8_versions.json +0 -3
- package/README.md +0 -6
- package/dist/utils/clusterVersions.d.ts +0 -1
- package/dist/utils/clusterVersions.js +0 -1
- package/package.json +1 -1
- package/dist/fixtures/8.6.d.ts +0 -63
- package/dist/fixtures/8.6.js +0 -162
- package/dist/fixtures/SM-8.6.d.ts +0 -63
- package/dist/fixtures/SM-8.6.js +0 -149
- package/dist/fixtures/c8Run-8.6.d.ts +0 -20
- package/dist/fixtures/c8Run-8.6.js +0 -56
- package/dist/pages/8.6/AppsPage.d.ts +0 -33
- package/dist/pages/8.6/AppsPage.js +0 -337
- package/dist/pages/8.6/ClientCredentialsDetailsPage.d.ts +0 -12
- package/dist/pages/8.6/ClientCredentialsDetailsPage.js +0 -36
- package/dist/pages/8.6/ClusterDetailsPage.d.ts +0 -75
- package/dist/pages/8.6/ClusterDetailsPage.js +0 -443
- package/dist/pages/8.6/ClusterPage.d.ts +0 -59
- package/dist/pages/8.6/ClusterPage.js +0 -320
- package/dist/pages/8.6/ClusterSecretsPage.d.ts +0 -28
- package/dist/pages/8.6/ClusterSecretsPage.js +0 -134
- package/dist/pages/8.6/ConnectorMarketplacePage.d.ts +0 -19
- package/dist/pages/8.6/ConnectorMarketplacePage.js +0 -60
- package/dist/pages/8.6/ConnectorSettingsPage.d.ts +0 -38
- package/dist/pages/8.6/ConnectorSettingsPage.js +0 -133
- package/dist/pages/8.6/ConnectorTemplatePage.d.ts +0 -11
- package/dist/pages/8.6/ConnectorTemplatePage.js +0 -34
- package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +0 -87
- package/dist/pages/8.6/ConsoleOrganizationPage.js +0 -495
- package/dist/pages/8.6/FormJsPage.d.ts +0 -30
- package/dist/pages/8.6/FormJsPage.js +0 -112
- package/dist/pages/8.6/HomePage.d.ts +0 -27
- package/dist/pages/8.6/HomePage.js +0 -101
- package/dist/pages/8.6/LoginPage.d.ts +0 -30
- package/dist/pages/8.6/LoginPage.js +0 -85
- package/dist/pages/8.6/ModelerCreatePage.d.ts +0 -211
- package/dist/pages/8.6/ModelerCreatePage.js +0 -1125
- package/dist/pages/8.6/ModelerHomePage.d.ts +0 -48
- package/dist/pages/8.6/ModelerHomePage.js +0 -213
- package/dist/pages/8.6/ModelerUserInvitePage.d.ts +0 -28
- package/dist/pages/8.6/ModelerUserInvitePage.js +0 -106
- package/dist/pages/8.6/OperateHomePage.d.ts +0 -21
- package/dist/pages/8.6/OperateHomePage.js +0 -57
- package/dist/pages/8.6/OperateProcessInstancePage.d.ts +0 -17
- package/dist/pages/8.6/OperateProcessInstancePage.js +0 -58
- package/dist/pages/8.6/OperateProcessesPage.d.ts +0 -21
- package/dist/pages/8.6/OperateProcessesPage.js +0 -77
- package/dist/pages/8.6/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/8.6/OptimizeCollectionsPage.js +0 -44
- package/dist/pages/8.6/OptimizeDashboardPage.d.ts +0 -11
- package/dist/pages/8.6/OptimizeDashboardPage.js +0 -65
- package/dist/pages/8.6/OptimizeHomePage.d.ts +0 -12
- package/dist/pages/8.6/OptimizeHomePage.js +0 -32
- package/dist/pages/8.6/OptimizeReportPage.d.ts +0 -48
- package/dist/pages/8.6/OptimizeReportPage.js +0 -163
- package/dist/pages/8.6/PlayPage.d.ts +0 -14
- package/dist/pages/8.6/PlayPage.js +0 -66
- package/dist/pages/8.6/SettingsPage.d.ts +0 -10
- package/dist/pages/8.6/SettingsPage.js +0 -43
- package/dist/pages/8.6/SignUpPage.d.ts +0 -43
- package/dist/pages/8.6/SignUpPage.js +0 -136
- package/dist/pages/8.6/TaskDetailsPage.d.ts +0 -66
- package/dist/pages/8.6/TaskDetailsPage.js +0 -214
- package/dist/pages/8.6/TaskPanelPage.d.ts +0 -18
- package/dist/pages/8.6/TaskPanelPage.js +0 -54
- package/dist/pages/8.6/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/8.6/TaskProcessesPage.js +0 -35
- package/dist/pages/8.6/UtilitiesPage.d.ts +0 -38
- package/dist/pages/8.6/UtilitiesPage.js +0 -328
- package/dist/pages/SM-8.6/ConnectorMarketplacePage.d.ts +0 -16
- package/dist/pages/SM-8.6/ConnectorMarketplacePage.js +0 -48
- package/dist/pages/SM-8.6/ConnectorSettingsPage.d.ts +0 -28
- package/dist/pages/SM-8.6/ConnectorSettingsPage.js +0 -82
- package/dist/pages/SM-8.6/ConnectorTemplatePage.d.ts +0 -11
- package/dist/pages/SM-8.6/ConnectorTemplatePage.js +0 -34
- package/dist/pages/SM-8.6/ConsoleHomePage.d.ts +0 -9
- package/dist/pages/SM-8.6/ConsoleHomePage.js +0 -22
- package/dist/pages/SM-8.6/ConsoleOrganizationPage.d.ts +0 -22
- package/dist/pages/SM-8.6/ConsoleOrganizationPage.js +0 -68
- package/dist/pages/SM-8.6/FormJsPage.d.ts +0 -13
- package/dist/pages/SM-8.6/FormJsPage.js +0 -30
- package/dist/pages/SM-8.6/HomePage.d.ts +0 -20
- package/dist/pages/SM-8.6/HomePage.js +0 -49
- package/dist/pages/SM-8.6/IdentityPage.d.ts +0 -67
- package/dist/pages/SM-8.6/IdentityPage.js +0 -266
- package/dist/pages/SM-8.6/IdentityTenantPage.d.ts +0 -50
- package/dist/pages/SM-8.6/IdentityTenantPage.js +0 -196
- package/dist/pages/SM-8.6/IdentityUsersPage.d.ts +0 -90
- package/dist/pages/SM-8.6/IdentityUsersPage.js +0 -505
- package/dist/pages/SM-8.6/KeycloakAdminPage.d.ts +0 -15
- package/dist/pages/SM-8.6/KeycloakAdminPage.js +0 -56
- package/dist/pages/SM-8.6/KeycloakLoginPage.d.ts +0 -11
- package/dist/pages/SM-8.6/KeycloakLoginPage.js +0 -25
- package/dist/pages/SM-8.6/KeycloakUtils.d.ts +0 -15
- package/dist/pages/SM-8.6/KeycloakUtils.js +0 -58
- package/dist/pages/SM-8.6/LoginPage.d.ts +0 -22
- package/dist/pages/SM-8.6/LoginPage.js +0 -123
- package/dist/pages/SM-8.6/ModelerCreatePage.d.ts +0 -167
- package/dist/pages/SM-8.6/ModelerCreatePage.js +0 -852
- package/dist/pages/SM-8.6/ModelerHomePage.d.ts +0 -41
- package/dist/pages/SM-8.6/ModelerHomePage.js +0 -150
- package/dist/pages/SM-8.6/NavigationPage.d.ts +0 -42
- package/dist/pages/SM-8.6/NavigationPage.js +0 -119
- package/dist/pages/SM-8.6/OperateHomePage.d.ts +0 -23
- package/dist/pages/SM-8.6/OperateHomePage.js +0 -65
- package/dist/pages/SM-8.6/OperateProcessInstancePage.d.ts +0 -22
- package/dist/pages/SM-8.6/OperateProcessInstancePage.js +0 -139
- package/dist/pages/SM-8.6/OperateProcessesPage.d.ts +0 -33
- package/dist/pages/SM-8.6/OperateProcessesPage.js +0 -166
- package/dist/pages/SM-8.6/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/SM-8.6/OptimizeCollectionsPage.js +0 -44
- package/dist/pages/SM-8.6/OptimizeDashboardPage.d.ts +0 -14
- package/dist/pages/SM-8.6/OptimizeDashboardPage.js +0 -56
- package/dist/pages/SM-8.6/OptimizeHomePage.d.ts +0 -19
- package/dist/pages/SM-8.6/OptimizeHomePage.js +0 -62
- package/dist/pages/SM-8.6/OptimizeReportPage.d.ts +0 -50
- package/dist/pages/SM-8.6/OptimizeReportPage.js +0 -162
- package/dist/pages/SM-8.6/PlayPage.d.ts +0 -19
- package/dist/pages/SM-8.6/PlayPage.js +0 -103
- package/dist/pages/SM-8.6/SettingsPage.d.ts +0 -10
- package/dist/pages/SM-8.6/SettingsPage.js +0 -20
- package/dist/pages/SM-8.6/TaskDetailsPage.d.ts +0 -64
- package/dist/pages/SM-8.6/TaskDetailsPage.js +0 -240
- package/dist/pages/SM-8.6/TaskPanelPage.d.ts +0 -22
- package/dist/pages/SM-8.6/TaskPanelPage.js +0 -68
- package/dist/pages/SM-8.6/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/SM-8.6/TaskProcessesPage.js +0 -31
- package/dist/pages/SM-8.6/UtlitiesPage.d.ts +0 -21
- package/dist/pages/SM-8.6/UtlitiesPage.js +0 -207
- package/dist/pages/SM-8.6/optimizeReportUtils.d.ts +0 -6
- package/dist/pages/SM-8.6/optimizeReportUtils.js +0 -42
- package/dist/pages/c8Run-8.6/OperateHomePage.d.ts +0 -20
- package/dist/pages/c8Run-8.6/OperateHomePage.js +0 -52
- package/dist/pages/c8Run-8.6/OperateLoginPage.d.ts +0 -14
- package/dist/pages/c8Run-8.6/OperateLoginPage.js +0 -37
- package/dist/pages/c8Run-8.6/OperateProcessInstancePage.d.ts +0 -17
- package/dist/pages/c8Run-8.6/OperateProcessInstancePage.js +0 -76
- package/dist/pages/c8Run-8.6/OperateProcessesPage.d.ts +0 -20
- package/dist/pages/c8Run-8.6/OperateProcessesPage.js +0 -84
- package/dist/pages/c8Run-8.6/TaskDetailsPage.d.ts +0 -65
- package/dist/pages/c8Run-8.6/TaskDetailsPage.js +0 -219
- package/dist/pages/c8Run-8.6/TaskListLoginPage.d.ts +0 -14
- package/dist/pages/c8Run-8.6/TaskListLoginPage.js +0 -37
- package/dist/pages/c8Run-8.6/TaskPanelPage.d.ts +0 -23
- package/dist/pages/c8Run-8.6/TaskPanelPage.js +0 -76
- package/dist/pages/c8Run-8.6/UtilitiesPage.d.ts +0 -6
- package/dist/pages/c8Run-8.6/UtilitiesPage.js +0 -45
- package/dist/tests/8.6/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/connectors-user-flows.spec.js +0 -435
- package/dist/tests/8.6/console-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/console-user-flows.spec.js +0 -193
- package/dist/tests/8.6/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/hto-user-flows.spec.js +0 -365
- package/dist/tests/8.6/login.spec.d.ts +0 -1
- package/dist/tests/8.6/login.spec.js +0 -27
- package/dist/tests/8.6/navigation.spec.d.ts +0 -1
- package/dist/tests/8.6/navigation.spec.js +0 -57
- package/dist/tests/8.6/operate-access-flow.spec.d.ts +0 -1
- package/dist/tests/8.6/operate-access-flow.spec.js +0 -57
- package/dist/tests/8.6/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/optimize-user-flows.spec.js +0 -231
- package/dist/tests/8.6/play.spec.d.ts +0 -1
- package/dist/tests/8.6/play.spec.js +0 -94
- package/dist/tests/8.6/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/rba-enabled-user-flows.spec.js +0 -288
- package/dist/tests/8.6/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/8.6/smoke-tests.spec.js +0 -188
- package/dist/tests/8.6/test-setup.spec.d.ts +0 -1
- package/dist/tests/8.6/test-setup.spec.js +0 -68
- package/dist/tests/8.6/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.6/web-modeler-user-flows.spec.js +0 -692
- package/dist/tests/SM-8.6/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/connectors-user-flows.spec.js +0 -247
- package/dist/tests/SM-8.6/console-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/console-user-flows.spec.js +0 -55
- package/dist/tests/SM-8.6/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/hto-user-flows.spec.js +0 -393
- package/dist/tests/SM-8.6/license-key-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/license-key-user-flows.spec.js +0 -462
- package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.js +0 -500
- package/dist/tests/SM-8.6/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/optimize-user-flows.spec.js +0 -186
- package/dist/tests/SM-8.6/play.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/play.spec.js +0 -87
- package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.js +0 -242
- package/dist/tests/SM-8.6/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/smoke-tests.spec.js +0 -158
- package/dist/tests/SM-8.6/test-setup.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/test-setup.spec.js +0 -134
- package/dist/tests/SM-8.6/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.6/web-modeler-user-flows.spec.js +0 -126
- package/dist/tests/c8Run-8.6/api-tests.spec.d.ts +0 -1
- package/dist/tests/c8Run-8.6/api-tests.spec.js +0 -67
- package/dist/tests/c8Run-8.6/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/c8Run-8.6/connectors-user-flows.spec.js +0 -119
- package/dist/tests/c8Run-8.6/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/c8Run-8.6/hto-user-flows.spec.js +0 -199
- package/dist/tests/c8Run-8.6/login.spec.d.ts +0 -1
- package/dist/tests/c8Run-8.6/login.spec.js +0 -22
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class ModelerHomePage {
|
|
3
|
-
private page;
|
|
4
|
-
private defaultFolderName;
|
|
5
|
-
readonly modelerPageBanner: Locator;
|
|
6
|
-
readonly createNewProjectButton: Locator;
|
|
7
|
-
readonly projectNameInput: Locator;
|
|
8
|
-
readonly chooseBpmnTemplateButton: Locator;
|
|
9
|
-
readonly diagramTypeDropdown: Locator;
|
|
10
|
-
readonly bpmnTemplateOption: Locator;
|
|
11
|
-
readonly formTemplateOption: Locator;
|
|
12
|
-
readonly projectBreadcrumb: Locator;
|
|
13
|
-
readonly openOrganizationsButton: Locator;
|
|
14
|
-
readonly manageButton: Locator;
|
|
15
|
-
readonly rows: Locator;
|
|
16
|
-
readonly crossComponentProjectFolder: Locator;
|
|
17
|
-
readonly homeBreadcrumb: Locator;
|
|
18
|
-
readonly formNameInput: Locator;
|
|
19
|
-
readonly uploadFilesButton: Locator;
|
|
20
|
-
readonly messageBanner: Locator;
|
|
21
|
-
readonly closeButton: Locator;
|
|
22
|
-
readonly cancelButton: Locator;
|
|
23
|
-
readonly optionsButton: Locator;
|
|
24
|
-
readonly dialog: Locator;
|
|
25
|
-
readonly formNameBreadcrumb: (formName: string) => Locator;
|
|
26
|
-
constructor(page: Page);
|
|
27
|
-
clickCreateNewProjectButton(): Promise<void>;
|
|
28
|
-
enterNewProjectName(name: string): Promise<void>;
|
|
29
|
-
clickChooseBpmnTemplateButton(): Promise<void>;
|
|
30
|
-
clickProcessDiagram(name: string): Promise<void>;
|
|
31
|
-
clickHomeBreadcrumb(): Promise<void>;
|
|
32
|
-
enterFormName(name: string): Promise<void>;
|
|
33
|
-
reload(): Promise<void>;
|
|
34
|
-
clickDiagramTypeDropdown(): Promise<void>;
|
|
35
|
-
clickBpmnTemplateOption(): Promise<void>;
|
|
36
|
-
clickFormOption(): Promise<void>;
|
|
37
|
-
clickProjectBreadcrumb(): Promise<void>;
|
|
38
|
-
clickOpenOrganizationsButton(): Promise<void>;
|
|
39
|
-
clickOptionsButton(): Promise<void>;
|
|
40
|
-
clickCrossComponentProjectFolder(): Promise<void>;
|
|
41
|
-
createForm(formName: string): Promise<void>;
|
|
42
|
-
createCrossComponentProjectFolder(): Promise<void>;
|
|
43
|
-
clickManageButton(retries?: number): Promise<void>;
|
|
44
|
-
clickUploadFilesButton(): Promise<void>;
|
|
45
|
-
clickMessageBanner(): Promise<void>;
|
|
46
|
-
assertFormBreadcrumbVisible(formName: string): Promise<void>;
|
|
47
|
-
}
|
|
48
|
-
export { ModelerHomePage };
|
|
@@ -1,213 +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
|
-
const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
|
|
7
|
-
class ModelerHomePage {
|
|
8
|
-
page;
|
|
9
|
-
defaultFolderName = 'Cross Component Test Project';
|
|
10
|
-
modelerPageBanner;
|
|
11
|
-
createNewProjectButton;
|
|
12
|
-
projectNameInput;
|
|
13
|
-
chooseBpmnTemplateButton;
|
|
14
|
-
diagramTypeDropdown;
|
|
15
|
-
bpmnTemplateOption;
|
|
16
|
-
formTemplateOption;
|
|
17
|
-
projectBreadcrumb;
|
|
18
|
-
openOrganizationsButton;
|
|
19
|
-
manageButton;
|
|
20
|
-
rows;
|
|
21
|
-
crossComponentProjectFolder;
|
|
22
|
-
homeBreadcrumb;
|
|
23
|
-
formNameInput;
|
|
24
|
-
uploadFilesButton;
|
|
25
|
-
messageBanner;
|
|
26
|
-
closeButton;
|
|
27
|
-
cancelButton;
|
|
28
|
-
optionsButton;
|
|
29
|
-
dialog;
|
|
30
|
-
formNameBreadcrumb;
|
|
31
|
-
constructor(page) {
|
|
32
|
-
this.page = page;
|
|
33
|
-
this.modelerPageBanner = page.getByRole('banner', {
|
|
34
|
-
name: 'Camunda Modeler',
|
|
35
|
-
});
|
|
36
|
-
this.formNameInput = page.locator('[data-test="editable-input"]');
|
|
37
|
-
this.createNewProjectButton = page.getByRole('button', {
|
|
38
|
-
name: 'New project',
|
|
39
|
-
});
|
|
40
|
-
this.projectNameInput = page.locator('[data-test="editable-input"]');
|
|
41
|
-
this.chooseBpmnTemplateButton = page.getByRole('button', {
|
|
42
|
-
name: 'Choose BPMN template',
|
|
43
|
-
});
|
|
44
|
-
this.diagramTypeDropdown = page.locator('[data-test="diagram-dropdown"]');
|
|
45
|
-
this.bpmnTemplateOption = page
|
|
46
|
-
.locator('[data-test="create-bpmn-diagram"]')
|
|
47
|
-
.getByText('BPMN Diagram');
|
|
48
|
-
this.formTemplateOption = page
|
|
49
|
-
.locator('[data-test="create-form"]')
|
|
50
|
-
.getByText('Form');
|
|
51
|
-
this.projectBreadcrumb = page.locator('[data-test="breadcrumb-project"]');
|
|
52
|
-
this.openOrganizationsButton = page.getByLabel('Open Organizations');
|
|
53
|
-
this.manageButton = page.getByRole('menuitem', {
|
|
54
|
-
name: 'Manage organization',
|
|
55
|
-
});
|
|
56
|
-
this.crossComponentProjectFolder = page
|
|
57
|
-
.getByText(this.defaultFolderName, { exact: true })
|
|
58
|
-
.first();
|
|
59
|
-
this.rows = page.getByRole('row');
|
|
60
|
-
this.homeBreadcrumb = page.locator('[data-test="breadcrumb-home"]');
|
|
61
|
-
this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
|
|
62
|
-
this.messageBanner = page.locator('[data-test="close-top-banner"]');
|
|
63
|
-
this.closeButton = page.getByRole('button', { name: 'Got it - Dismiss' });
|
|
64
|
-
this.cancelButton = page.getByRole('button', { name: 'Cancel' });
|
|
65
|
-
this.optionsButton = page.getByRole('button', { name: 'Options' });
|
|
66
|
-
this.dialog = page.getByRole('dialog');
|
|
67
|
-
this.formNameBreadcrumb = (formName) => page.locator('button[data-test="breadcrumb-form"]', {
|
|
68
|
-
hasText: formName,
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
async clickCreateNewProjectButton() {
|
|
72
|
-
await this.createNewProjectButton.click({ timeout: 90000 });
|
|
73
|
-
}
|
|
74
|
-
async enterNewProjectName(name) {
|
|
75
|
-
await this.projectNameInput.click({ timeout: 60000 });
|
|
76
|
-
await this.projectNameInput.fill(name);
|
|
77
|
-
await this.projectNameInput.press('Enter');
|
|
78
|
-
}
|
|
79
|
-
async clickChooseBpmnTemplateButton() {
|
|
80
|
-
await this.chooseBpmnTemplateButton.click();
|
|
81
|
-
}
|
|
82
|
-
async clickProcessDiagram(name) {
|
|
83
|
-
const process = this.rows.filter({ hasText: name }).getByTitle(name).first();
|
|
84
|
-
await (0, test_1.expect)(process).toBeVisible({ timeout: 90000 });
|
|
85
|
-
await process.click();
|
|
86
|
-
}
|
|
87
|
-
async clickHomeBreadcrumb() {
|
|
88
|
-
try {
|
|
89
|
-
await this.homeBreadcrumb.click();
|
|
90
|
-
}
|
|
91
|
-
catch (error) {
|
|
92
|
-
await this.page.getByText('Home', { exact: true }).first().click();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
async enterFormName(name) {
|
|
96
|
-
await this.formNameInput.click({ timeout: 60000 });
|
|
97
|
-
await this.formNameInput.fill(name);
|
|
98
|
-
await this.formNameInput.press('Enter');
|
|
99
|
-
await (0, sleep_1.sleep)(200);
|
|
100
|
-
}
|
|
101
|
-
async reload() {
|
|
102
|
-
await this.page.reload();
|
|
103
|
-
}
|
|
104
|
-
async clickDiagramTypeDropdown() {
|
|
105
|
-
await this.diagramTypeDropdown.click({ timeout: 120000 });
|
|
106
|
-
}
|
|
107
|
-
async clickBpmnTemplateOption() {
|
|
108
|
-
await this.bpmnTemplateOption.click({ timeout: 120000 });
|
|
109
|
-
}
|
|
110
|
-
async clickFormOption() {
|
|
111
|
-
await this.formTemplateOption.click();
|
|
112
|
-
}
|
|
113
|
-
async clickProjectBreadcrumb() {
|
|
114
|
-
await this.projectBreadcrumb.click({ timeout: 60000 });
|
|
115
|
-
}
|
|
116
|
-
async clickOpenOrganizationsButton() {
|
|
117
|
-
await this.openOrganizationsButton.click({ timeout: 60000 });
|
|
118
|
-
}
|
|
119
|
-
async clickOptionsButton() {
|
|
120
|
-
await this.optionsButton.click({ timeout: 60000 });
|
|
121
|
-
}
|
|
122
|
-
async clickCrossComponentProjectFolder() {
|
|
123
|
-
await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.crossComponentProjectFolder, {
|
|
124
|
-
visibilityTimeout: 60000,
|
|
125
|
-
totalTimeout: 180000,
|
|
126
|
-
maxRetries: 5,
|
|
127
|
-
preAction: async () => {
|
|
128
|
-
// A Carbon modal (`.cds--modal.is-visible`) sometimes covers the
|
|
129
|
-
// project folder and intercepts pointer events; clickMessageBanner
|
|
130
|
-
// only handles a single banner/close button so it doesn't dismiss
|
|
131
|
-
// the modal. Escape it explicitly first — same pattern 8.7 already
|
|
132
|
-
// uses for the same symptom.
|
|
133
|
-
try {
|
|
134
|
-
const blockingModal = this.page.locator('.cds--modal.is-visible');
|
|
135
|
-
if ((await blockingModal.count()) > 0) {
|
|
136
|
-
await this.page.keyboard.press('Escape');
|
|
137
|
-
await (0, sleep_1.sleep)(1000);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
// No blocking modal to dismiss
|
|
142
|
-
}
|
|
143
|
-
await this.clickMessageBanner();
|
|
144
|
-
},
|
|
145
|
-
postAction: async () => {
|
|
146
|
-
await this.page.reload();
|
|
147
|
-
await this.page.waitForLoadState('domcontentloaded');
|
|
148
|
-
},
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
async createForm(formName) {
|
|
152
|
-
await this.clickDiagramTypeDropdown();
|
|
153
|
-
await this.clickFormOption();
|
|
154
|
-
await this.enterFormName(formName);
|
|
155
|
-
await (0, sleep_1.sleep)(10000);
|
|
156
|
-
}
|
|
157
|
-
async createCrossComponentProjectFolder() {
|
|
158
|
-
await (0, sleep_1.sleep)(15000);
|
|
159
|
-
await this.clickMessageBanner();
|
|
160
|
-
if (await this.crossComponentProjectFolder.isVisible()) {
|
|
161
|
-
console.log('Cross Component Project folder already exists. Clicking into it');
|
|
162
|
-
await this.clickCrossComponentProjectFolder();
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
await this.clickCreateNewProjectButton();
|
|
166
|
-
await this.enterNewProjectName(this.defaultFolderName);
|
|
167
|
-
}
|
|
168
|
-
async clickManageButton(retries = 3) {
|
|
169
|
-
await this.optionsButton.click({ timeout: 30000 });
|
|
170
|
-
for (let i = 0; i < retries; i++) {
|
|
171
|
-
try {
|
|
172
|
-
await (0, sleep_1.sleep)(5000);
|
|
173
|
-
if (await this.manageButton.isVisible({ timeout: 30000 })) {
|
|
174
|
-
await this.manageButton.click({ timeout: 10000 });
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
await this.clickOpenOrganizationsButton();
|
|
178
|
-
await this.optionsButton.click({ timeout: 30000 });
|
|
179
|
-
await (0, test_1.expect)(this.manageButton).toBeVisible({ timeout: 30000 });
|
|
180
|
-
await this.manageButton.click({ timeout: 30000 });
|
|
181
|
-
}
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
catch (error) {
|
|
185
|
-
await (0, sleep_1.sleep)(10000);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
throw new Error(`Failed to click manage button after ${retries} retries`);
|
|
189
|
-
}
|
|
190
|
-
async clickUploadFilesButton() {
|
|
191
|
-
await this.uploadFilesButton.click({ timeout: 60000 });
|
|
192
|
-
}
|
|
193
|
-
async clickMessageBanner() {
|
|
194
|
-
try {
|
|
195
|
-
const button = this.messageBanner
|
|
196
|
-
.or(this.closeButton)
|
|
197
|
-
.or(this.cancelButton)
|
|
198
|
-
.first();
|
|
199
|
-
await (0, test_1.expect)(button).toBeVisible({ timeout: 15000 });
|
|
200
|
-
await button.click();
|
|
201
|
-
await (0, test_1.expect)(this.dialog).not.toBeVisible();
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
console.log('No banner or close button found to click');
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
async assertFormBreadcrumbVisible(formName) {
|
|
208
|
-
await (0, test_1.expect)(this.formNameBreadcrumb(formName)).toBeVisible({
|
|
209
|
-
timeout: 120000,
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
exports.ModelerHomePage = ModelerHomePage;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class ModelerUserInvitePage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly buttonAddUser: Locator;
|
|
5
|
-
readonly inputFieldUserEmailAddress: Locator;
|
|
6
|
-
readonly buttonSendInvitation: Locator;
|
|
7
|
-
readonly pendingInviteText: Locator;
|
|
8
|
-
readonly settings: Locator;
|
|
9
|
-
readonly logout: Locator;
|
|
10
|
-
readonly buttonSkipCustomization: Locator;
|
|
11
|
-
readonly buttonCloseHelpCentre: Locator;
|
|
12
|
-
readonly collaboratorName: Locator;
|
|
13
|
-
readonly collaboratorEmail: (email: string) => 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(email: string): Promise<void>;
|
|
21
|
-
fillNewUserWithRetry(email: string): Promise<void>;
|
|
22
|
-
clickSettings(): Promise<void>;
|
|
23
|
-
clickLogout(): Promise<void>;
|
|
24
|
-
clickSkipCustomization(): Promise<void>;
|
|
25
|
-
clickCloseHelpCenter(): Promise<void>;
|
|
26
|
-
verifyCollaboratorName(): Promise<void>;
|
|
27
|
-
}
|
|
28
|
-
export { ModelerUserInvitePage };
|
|
@@ -1,106 +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
|
-
buttonAddUser;
|
|
9
|
-
inputFieldUserEmailAddress;
|
|
10
|
-
buttonSendInvitation;
|
|
11
|
-
pendingInviteText;
|
|
12
|
-
settings;
|
|
13
|
-
logout;
|
|
14
|
-
buttonSkipCustomization;
|
|
15
|
-
buttonCloseHelpCentre;
|
|
16
|
-
collaboratorName;
|
|
17
|
-
collaboratorEmail;
|
|
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
|
-
this.collaboratorEmail = (email) => this.page.locator('[data-test="chip"]').filter({ hasText: `${email}` });
|
|
32
|
-
}
|
|
33
|
-
async clickAddUser() {
|
|
34
|
-
await (0, test_1.expect)(this.buttonAddUser).toBeVisible({ timeout: 60000 });
|
|
35
|
-
await this.buttonAddUser.click({ timeout: 30000 });
|
|
36
|
-
}
|
|
37
|
-
async clickUserEmailInput() {
|
|
38
|
-
await (0, test_1.expect)(this.inputFieldUserEmailAddress).toBeVisible({
|
|
39
|
-
timeout: 60000,
|
|
40
|
-
});
|
|
41
|
-
await this.inputFieldUserEmailAddress.click();
|
|
42
|
-
}
|
|
43
|
-
async fillUserEmailInput(emailAddress) {
|
|
44
|
-
await this.inputFieldUserEmailAddress.fill(emailAddress);
|
|
45
|
-
await (0, test_1.expect)(this.inputFieldUserEmailAddress).toHaveValue(emailAddress);
|
|
46
|
-
await this.inputFieldUserEmailAddress.press('Enter');
|
|
47
|
-
}
|
|
48
|
-
async clickSendInviteButton() {
|
|
49
|
-
await (0, test_1.expect)(this.buttonSendInvitation).toBeVisible({ timeout: 60000 });
|
|
50
|
-
await this.buttonSendInvitation.click();
|
|
51
|
-
}
|
|
52
|
-
async checkPendingInviteText(email) {
|
|
53
|
-
await (0, test_1.expect)(this.page.getByRole('row').filter({ hasText: `${email}` })).toContainText('pending', {
|
|
54
|
-
timeout: 120000,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
async inviteNewUser(email) {
|
|
58
|
-
await this.clickAddUser();
|
|
59
|
-
await this.clickUserEmailInput();
|
|
60
|
-
await this.fillUserEmailInput(email);
|
|
61
|
-
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
62
|
-
await sleep(8000);
|
|
63
|
-
await this.clickSendInviteButton();
|
|
64
|
-
}
|
|
65
|
-
async fillNewUserWithRetry(email) {
|
|
66
|
-
const maxRetries = 3;
|
|
67
|
-
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
68
|
-
try {
|
|
69
|
-
await this.clickUserEmailInput();
|
|
70
|
-
await this.fillUserEmailInput(email);
|
|
71
|
-
await (0, test_1.expect)(this.collaboratorEmail(email).first()).toBeVisible({
|
|
72
|
-
timeout: 20000,
|
|
73
|
-
});
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
console.log(`Attempt ${attempt}: Error filling email input:${email}`, error);
|
|
78
|
-
}
|
|
79
|
-
if (attempt < maxRetries) {
|
|
80
|
-
await this.inputFieldUserEmailAddress.clear();
|
|
81
|
-
await (0, sleep_1.sleep)(1000);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
throw new Error(`Failed to filling email input:${email} after ${maxRetries} attempts`);
|
|
85
|
-
}
|
|
86
|
-
async clickSettings() {
|
|
87
|
-
await (0, test_1.expect)(this.settings).toBeVisible({ timeout: 60000 });
|
|
88
|
-
await this.settings.click({ timeout: 90000 });
|
|
89
|
-
}
|
|
90
|
-
async clickLogout() {
|
|
91
|
-
await (0, test_1.expect)(this.logout).toBeVisible({ timeout: 60000 });
|
|
92
|
-
await this.logout.click({ timeout: 50000 });
|
|
93
|
-
}
|
|
94
|
-
async clickSkipCustomization() {
|
|
95
|
-
await (0, test_1.expect)(this.buttonSkipCustomization).toBeVisible({ timeout: 60000 });
|
|
96
|
-
await this.buttonSkipCustomization.click();
|
|
97
|
-
}
|
|
98
|
-
async clickCloseHelpCenter() {
|
|
99
|
-
await (0, test_1.expect)(this.buttonCloseHelpCentre).toBeVisible({ timeout: 60000 });
|
|
100
|
-
await this.buttonCloseHelpCentre.click();
|
|
101
|
-
}
|
|
102
|
-
async verifyCollaboratorName() {
|
|
103
|
-
await (0, test_1.expect)(this.collaboratorName).toBeVisible({ timeout: 60000 });
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
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,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OperateHomePage = void 0;
|
|
4
|
-
const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
|
|
5
|
-
class OperateHomePage {
|
|
6
|
-
page;
|
|
7
|
-
operateHeader;
|
|
8
|
-
processesTab;
|
|
9
|
-
informationDialog;
|
|
10
|
-
editVariableButton;
|
|
11
|
-
variableValueInput;
|
|
12
|
-
saveVariableButton;
|
|
13
|
-
editVariableSpinner;
|
|
14
|
-
operateBanner;
|
|
15
|
-
constructor(page) {
|
|
16
|
-
this.page = page;
|
|
17
|
-
this.operateHeader = page.getByRole('link', { name: 'Camunda Operate' });
|
|
18
|
-
this.processesTab = page.getByRole('link', {
|
|
19
|
-
name: 'Processes',
|
|
20
|
-
exact: true,
|
|
21
|
-
});
|
|
22
|
-
this.informationDialog = page.getByRole('button', {
|
|
23
|
-
name: 'Close this dialog',
|
|
24
|
-
});
|
|
25
|
-
this.editVariableButton = page.getByTestId('edit-variable-button');
|
|
26
|
-
this.variableValueInput = page.getByTestId('edit-variable-value');
|
|
27
|
-
this.saveVariableButton = page.getByLabel('Save variable');
|
|
28
|
-
this.editVariableSpinner = page
|
|
29
|
-
.getByTestId('variable-operation-spinner')
|
|
30
|
-
.locator('circle')
|
|
31
|
-
.nth(1);
|
|
32
|
-
this.operateBanner = page.getByRole('link', { name: 'Camunda logo Operate' });
|
|
33
|
-
}
|
|
34
|
-
async clickProcessesTab() {
|
|
35
|
-
await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.processesTab);
|
|
36
|
-
}
|
|
37
|
-
async closeInformationDialog() {
|
|
38
|
-
await this.informationDialog.click();
|
|
39
|
-
}
|
|
40
|
-
async clickEditVariableButton(variableName) {
|
|
41
|
-
const editVariableButton = 'Edit variable ' + variableName;
|
|
42
|
-
await this.page.getByLabel(editVariableButton).click();
|
|
43
|
-
}
|
|
44
|
-
async clickVariableValueInput() {
|
|
45
|
-
await this.variableValueInput.click();
|
|
46
|
-
}
|
|
47
|
-
async clearVariableValueInput() {
|
|
48
|
-
await this.variableValueInput.clear();
|
|
49
|
-
}
|
|
50
|
-
async fillVariableValueInput(value) {
|
|
51
|
-
await this.variableValueInput.fill(value);
|
|
52
|
-
}
|
|
53
|
-
async clickSaveVariableButton() {
|
|
54
|
-
await this.saveVariableButton.click();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
exports.OperateHomePage = OperateHomePage;
|
|
@@ -1,17 +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
|
-
readonly connectorResultVariableName: (name: string) => Locator;
|
|
10
|
-
readonly variablesList: Locator;
|
|
11
|
-
readonly messageVariable: Locator;
|
|
12
|
-
constructor(page: Page);
|
|
13
|
-
connectorResultVariableValue(variableName: string): Promise<Locator>;
|
|
14
|
-
reload(): Promise<void>;
|
|
15
|
-
assertProcessCompleteStatusWithRetry(timeout?: number, maxRetries?: number): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
export { OperateProcessInstancePage };
|
|
@@ -1,58 +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
|
-
class OperateProcessInstancePage {
|
|
6
|
-
page;
|
|
7
|
-
diagram;
|
|
8
|
-
completedIcon;
|
|
9
|
-
diagramSpinner;
|
|
10
|
-
activeIcon;
|
|
11
|
-
incidentIcon;
|
|
12
|
-
connectorResultVariableName;
|
|
13
|
-
variablesList;
|
|
14
|
-
messageVariable;
|
|
15
|
-
constructor(page) {
|
|
16
|
-
this.page = page;
|
|
17
|
-
this.diagram = page.getByTestId('diagram');
|
|
18
|
-
this.completedIcon = page
|
|
19
|
-
.getByTestId('instance-header')
|
|
20
|
-
.getByTestId('COMPLETED-icon');
|
|
21
|
-
this.diagramSpinner = page.getByTestId('diagram-spinner');
|
|
22
|
-
this.activeIcon = page
|
|
23
|
-
.getByTestId('instance-header')
|
|
24
|
-
.getByTestId('ACTIVE-icon');
|
|
25
|
-
this.incidentIcon = page
|
|
26
|
-
.getByTestId('instance-header')
|
|
27
|
-
.getByTestId('INCIDENT-icon');
|
|
28
|
-
this.connectorResultVariableName = (name) => page.getByTestId('variable-' + name);
|
|
29
|
-
this.variablesList = page.getByTestId('variables-list');
|
|
30
|
-
this.messageVariable = page.getByTestId('variable-message');
|
|
31
|
-
}
|
|
32
|
-
async connectorResultVariableValue(variableName) {
|
|
33
|
-
return await this.page.getByTestId(variableName).locator('td').last();
|
|
34
|
-
}
|
|
35
|
-
async reload() {
|
|
36
|
-
await this.page.reload();
|
|
37
|
-
}
|
|
38
|
-
async assertProcessCompleteStatusWithRetry(timeout = 60000, maxRetries = 10) {
|
|
39
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
40
|
-
try {
|
|
41
|
-
await this.page.reload();
|
|
42
|
-
await (0, test_1.expect)(this.completedIcon).toBeVisible({
|
|
43
|
-
timeout: timeout,
|
|
44
|
-
});
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
if (attempt < maxRetries - 1) {
|
|
49
|
-
console.warn(`Process complete status attempt ${attempt + 1} failed. Retrying...`);
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts`);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.OperateProcessInstancePage = OperateProcessInstancePage;
|
|
@@ -1,21 +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
|
-
clickProcessCompletedCheckbox(): Promise<void>;
|
|
15
|
-
clickProcessIncidentsCheckbox(): Promise<void>;
|
|
16
|
-
clickRunningProcessInstancesCheckbox(): Promise<void>;
|
|
17
|
-
clickFinishedProcessInstancesCheckbox(): Promise<void>;
|
|
18
|
-
reload(): Promise<void>;
|
|
19
|
-
clickProcessInstanceLink(processName: string): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
export { OperateProcessesPage };
|
|
@@ -1,77 +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
|
-
.getByText('Process', { exact: true });
|
|
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();
|
|
40
|
-
}
|
|
41
|
-
async clickProcessCompletedCheckbox() {
|
|
42
|
-
await this.processCompletedCheckbox.click({ timeout: 30000 });
|
|
43
|
-
}
|
|
44
|
-
async clickProcessIncidentsCheckbox() {
|
|
45
|
-
await this.processIncidentsCheckbox.click();
|
|
46
|
-
}
|
|
47
|
-
async clickRunningProcessInstancesCheckbox() {
|
|
48
|
-
await this.processRunningInstancesCheckbox.click();
|
|
49
|
-
}
|
|
50
|
-
async clickFinishedProcessInstancesCheckbox() {
|
|
51
|
-
await this.processFinishedInstancesCheckbox.click();
|
|
52
|
-
}
|
|
53
|
-
async reload() {
|
|
54
|
-
await this.page.reload();
|
|
55
|
-
}
|
|
56
|
-
async clickProcessInstanceLink(processName) {
|
|
57
|
-
const maxRetries = 3;
|
|
58
|
-
for (let retries = 0; retries < maxRetries; retries++) {
|
|
59
|
-
try {
|
|
60
|
-
const process = this.page
|
|
61
|
-
.locator('td:right-of(:text("' + processName + '"))')
|
|
62
|
-
.first();
|
|
63
|
-
await (0, test_1.expect)(process).toBeVisible({ timeout: 60000 });
|
|
64
|
-
await process.click({ timeout: 60000 });
|
|
65
|
-
await (0, test_1.expect)(this.page.getByText('Instance History').first()).toBeVisible();
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
console.error(`Click attempt ${retries + 1} failed: ${error}`);
|
|
70
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
71
|
-
await this.page.reload();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
throw new Error(`Failed to click the link after ${maxRetries} attempts.`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
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 };
|