@camunda/e2e-test-suite 0.0.713 → 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/pages/8.8/ClusterDetailsPage.js +5 -2
- package/dist/pages/8.8/ModelerCreatePage.js +10 -14
- 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,1125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ModelerCreatePage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
const randomSleep_1 = require("../../utils/randomSleep");
|
|
7
|
-
const ConnectorMarketplacePage_1 = require("../8.6/ConnectorMarketplacePage");
|
|
8
|
-
class ModelerCreatePage {
|
|
9
|
-
page;
|
|
10
|
-
generalPanel;
|
|
11
|
-
idInput;
|
|
12
|
-
startEventElement;
|
|
13
|
-
appendTaskButton;
|
|
14
|
-
appendGatewayButton;
|
|
15
|
-
changeTypeButton;
|
|
16
|
-
userTaskOption;
|
|
17
|
-
parallelGatewayOption;
|
|
18
|
-
appendEndEventButton;
|
|
19
|
-
startInstanceMainButton;
|
|
20
|
-
startInstanceSubButton;
|
|
21
|
-
viewProcessInstanceLink;
|
|
22
|
-
nameInput;
|
|
23
|
-
diagramBreadcrumb;
|
|
24
|
-
renameDiagramNameButton;
|
|
25
|
-
diagramNameInput;
|
|
26
|
-
variableInput;
|
|
27
|
-
embedFormButton;
|
|
28
|
-
embedButton;
|
|
29
|
-
newForm;
|
|
30
|
-
deployMainButton;
|
|
31
|
-
deployMenuItem;
|
|
32
|
-
additionalActionsButton;
|
|
33
|
-
deploySubButton;
|
|
34
|
-
cancelButton;
|
|
35
|
-
restConnectorOption;
|
|
36
|
-
webhookMessageStartEventConnectorOption;
|
|
37
|
-
webhookTab;
|
|
38
|
-
webhookIsActiveButton;
|
|
39
|
-
copyWebhookUrlToClipboardButton;
|
|
40
|
-
createTask;
|
|
41
|
-
createEndEvent;
|
|
42
|
-
canvas;
|
|
43
|
-
endEventCanvas;
|
|
44
|
-
connectToOtherElementButton;
|
|
45
|
-
firstPlacedElement;
|
|
46
|
-
secondPlacedElement;
|
|
47
|
-
firstPlacedGateway;
|
|
48
|
-
secondPlacedGateway;
|
|
49
|
-
appendElementButton;
|
|
50
|
-
marketPlaceButton;
|
|
51
|
-
publicHolidayConnectorOption;
|
|
52
|
-
publicHolidayYearOption;
|
|
53
|
-
publicHolidayCountryCodeOption;
|
|
54
|
-
implementationSection;
|
|
55
|
-
implementationOptions;
|
|
56
|
-
assignmentSection;
|
|
57
|
-
priorityInput;
|
|
58
|
-
firstElement;
|
|
59
|
-
secondElement;
|
|
60
|
-
thirdElement;
|
|
61
|
-
payloadNameInput;
|
|
62
|
-
payloadNumberInput;
|
|
63
|
-
payloadCheckboxInput;
|
|
64
|
-
payloadDateInput;
|
|
65
|
-
form;
|
|
66
|
-
formPropertySection;
|
|
67
|
-
formLinkingTypeDropdown;
|
|
68
|
-
formLinkTypeOptions;
|
|
69
|
-
addFormJsonConfigurationInput;
|
|
70
|
-
intermediateBoundaryEvent;
|
|
71
|
-
intermediateWebhookConnectorOption;
|
|
72
|
-
correlationKeyProcessInput;
|
|
73
|
-
correlationKeyPayloadInput;
|
|
74
|
-
closeButton;
|
|
75
|
-
rbaEnabledDeployedDialog;
|
|
76
|
-
viewProcessLink;
|
|
77
|
-
assigneeInput;
|
|
78
|
-
candidateGroupsInput;
|
|
79
|
-
candidateUsersInput;
|
|
80
|
-
serviceTaskOption;
|
|
81
|
-
taskDefinitionPanel;
|
|
82
|
-
jobTypeInput;
|
|
83
|
-
playTab;
|
|
84
|
-
continueToPlayButton;
|
|
85
|
-
deployAndRunDialog;
|
|
86
|
-
deployDiagramDialog;
|
|
87
|
-
timerEventOption;
|
|
88
|
-
timerEventSettings;
|
|
89
|
-
timerType;
|
|
90
|
-
timerValue;
|
|
91
|
-
eighthPlacedElement;
|
|
92
|
-
processIdSecondLocator;
|
|
93
|
-
backupDeployButton;
|
|
94
|
-
publicationSection;
|
|
95
|
-
publicAccessToggle;
|
|
96
|
-
publicationTab;
|
|
97
|
-
copyPublicLinkButton;
|
|
98
|
-
formLinkedSuccessMessage;
|
|
99
|
-
diagramNameBreadcrumb;
|
|
100
|
-
dialog;
|
|
101
|
-
constructor(page) {
|
|
102
|
-
this.page = page;
|
|
103
|
-
this.generalPanel = page.locator('[data-group-id="group-general"]');
|
|
104
|
-
this.idInput = page.getByLabel('ID', { exact: true });
|
|
105
|
-
this.startEventElement = page.locator('.djs-hit').first();
|
|
106
|
-
this.appendElementButton = page
|
|
107
|
-
.locator('[class="djs-create-pad open djs-append-create-pad"]')
|
|
108
|
-
.first();
|
|
109
|
-
this.appendTaskButton = page.getByTitle('Append task');
|
|
110
|
-
this.appendGatewayButton = page.getByTitle('append gateway');
|
|
111
|
-
this.changeTypeButton = page.getByLabel('Change element');
|
|
112
|
-
this.userTaskOption = page
|
|
113
|
-
.getByRole('listitem', { name: 'User task' })
|
|
114
|
-
.locator('span')
|
|
115
|
-
.first();
|
|
116
|
-
this.parallelGatewayOption = page.getByText('parallel gateway');
|
|
117
|
-
this.appendEndEventButton = page.getByTitle('Append end event');
|
|
118
|
-
this.deployAndRunDialog = page.getByRole('dialog', {
|
|
119
|
-
name: 'Deploy & run diagram',
|
|
120
|
-
});
|
|
121
|
-
this.startInstanceMainButton = page.getByRole('button', {
|
|
122
|
-
name: 'Deploy & run',
|
|
123
|
-
});
|
|
124
|
-
this.additionalActionsButton = page.getByRole('button', {
|
|
125
|
-
name: 'Additional actions',
|
|
126
|
-
});
|
|
127
|
-
this.startInstanceSubButton = this.deployAndRunDialog
|
|
128
|
-
.getByRole('button', { name: 'Deploy & run' })
|
|
129
|
-
.last();
|
|
130
|
-
this.viewProcessInstanceLink = page.getByRole('button', {
|
|
131
|
-
name: 'View process instance',
|
|
132
|
-
});
|
|
133
|
-
this.viewProcessLink = page.getByRole('button', {
|
|
134
|
-
name: 'View process in Operate',
|
|
135
|
-
});
|
|
136
|
-
this.nameInput = page.getByLabel('Name', { exact: true });
|
|
137
|
-
this.diagramBreadcrumb = page.locator('[data-test="breadcrumb-diagram"]');
|
|
138
|
-
this.renameDiagramNameButton = page.getByText('Rename');
|
|
139
|
-
this.diagramNameInput = page.locator('[data-test="editable-input"]');
|
|
140
|
-
this.variableInput = page.locator('textarea#variables-json');
|
|
141
|
-
this.embedFormButton = page.getByRole('button', { name: 'Link form' });
|
|
142
|
-
this.embedButton = page.locator('[data-test="confirm-move"]');
|
|
143
|
-
this.newForm = page
|
|
144
|
-
.locator('[data-test="item-New form"]')
|
|
145
|
-
.getByText('New form');
|
|
146
|
-
this.deployMainButton = page.locator('[data-test="deploy-button"]');
|
|
147
|
-
this.deployMenuItem = page.getByRole('menuitem', {
|
|
148
|
-
name: 'Deploy',
|
|
149
|
-
});
|
|
150
|
-
this.backupDeployButton = page.getByRole('button', {
|
|
151
|
-
name: 'Deploy',
|
|
152
|
-
});
|
|
153
|
-
this.deploySubButton = page.locator('[data-test="deploy-action"]');
|
|
154
|
-
this.cancelButton = page.getByRole('button', { name: 'Cancel' });
|
|
155
|
-
this.restConnectorOption = page.getByRole('listitem', {
|
|
156
|
-
name: 'REST Outbound Connector',
|
|
157
|
-
exact: true,
|
|
158
|
-
});
|
|
159
|
-
this.webhookMessageStartEventConnectorOption = page.getByRole('listitem', {
|
|
160
|
-
name: 'Webhook Message Start Event Connector',
|
|
161
|
-
exact: true,
|
|
162
|
-
});
|
|
163
|
-
this.webhookTab = page.getByRole('tab', { name: 'Webhook' });
|
|
164
|
-
this.webhookIsActiveButton = page.getByRole('button', {
|
|
165
|
-
name: 'Webhook is active in Test',
|
|
166
|
-
});
|
|
167
|
-
this.copyWebhookUrlToClipboardButton = page.getByRole('textbox', {
|
|
168
|
-
name: 'Copy to clipboard',
|
|
169
|
-
});
|
|
170
|
-
this.createTask = page.getByTitle('Create task');
|
|
171
|
-
this.createEndEvent = page.getByTitle('Create end event');
|
|
172
|
-
this.canvas = page.locator('rect').nth(1);
|
|
173
|
-
this.endEventCanvas = page.locator('[class="bjs-container"]');
|
|
174
|
-
this.connectToOtherElementButton = page
|
|
175
|
-
.getByLabel('Connect to other element')
|
|
176
|
-
.locator('path');
|
|
177
|
-
this.firstPlacedElement = page.locator('g:nth-child(2) > .djs-element > .djs-hit');
|
|
178
|
-
this.firstPlacedGateway = page
|
|
179
|
-
.locator('[data-element-id*="Gateway"]')
|
|
180
|
-
.first();
|
|
181
|
-
this.secondPlacedElement = page
|
|
182
|
-
.locator('[class= "djs-element djs-shape"]')
|
|
183
|
-
.last();
|
|
184
|
-
this.secondPlacedGateway = page
|
|
185
|
-
.locator('[data-element-id*="Gateway"]')
|
|
186
|
-
.last();
|
|
187
|
-
this.marketPlaceButton = page.getByTitle('Browse Marketplace for more Connectors');
|
|
188
|
-
this.publicHolidayConnectorOption = page
|
|
189
|
-
.locator('[data-test="modeler"]')
|
|
190
|
-
.getByText('Worldwide Public Holiday');
|
|
191
|
-
this.publicHolidayYearOption = page.getByLabel('Year');
|
|
192
|
-
this.publicHolidayCountryCodeOption = page.getByLabel('Countrycode');
|
|
193
|
-
this.implementationSection = page.locator('[data-group-id="group-userTaskImplementation"]');
|
|
194
|
-
this.implementationOptions = page.locator('#bio-properties-panel-userTaskImplementation');
|
|
195
|
-
this.firstElement = page.locator('[class="djs-element djs-shape"]').nth(0);
|
|
196
|
-
this.secondElement = page.locator('[class="djs-element djs-shape"]').nth(1);
|
|
197
|
-
this.thirdElement = page.locator('[class="djs-element djs-shape"]').nth(2);
|
|
198
|
-
this.assignmentSection = page.locator('[data-group-id="group-assignmentDefinition"]');
|
|
199
|
-
this.form = page.locator('[class="fjs-container"]');
|
|
200
|
-
this.priorityInput = page.getByRole('textbox', { name: 'priority' });
|
|
201
|
-
this.payloadNameInput = page.getByLabel('Full Name');
|
|
202
|
-
this.payloadDateInput = page.getByLabel('Date of Birth');
|
|
203
|
-
this.payloadCheckboxInput = this.form.getByLabel('Agree');
|
|
204
|
-
this.payloadNumberInput = this.form.getByLabel('Count');
|
|
205
|
-
this.formPropertySection = page.locator('[data-group-id="group-form"]');
|
|
206
|
-
this.formLinkingTypeDropdown = page.getByLabel('Type');
|
|
207
|
-
this.formLinkTypeOptions = page.locator('#bio-properties-panel-formType');
|
|
208
|
-
this.addFormJsonConfigurationInput = page.getByLabel('Form JSON configuration');
|
|
209
|
-
this.intermediateBoundaryEvent = page.getByTitle('Append intermediate/boundary');
|
|
210
|
-
this.intermediateWebhookConnectorOption = page.getByRole('listitem', {
|
|
211
|
-
name: 'Webhook Intermediate Event',
|
|
212
|
-
});
|
|
213
|
-
this.correlationKeyPayloadInput = page.getByLabel('Correlation key (payload)');
|
|
214
|
-
this.correlationKeyProcessInput = page.getByLabel('Correlation key (process)');
|
|
215
|
-
this.serviceTaskOption = page.getByRole('listitem', { name: 'Service Task' });
|
|
216
|
-
this.taskDefinitionPanel = page.locator('[data-group-id="group-taskDefinition"]');
|
|
217
|
-
this.jobTypeInput = page.getByRole('textbox', { name: /job type/i });
|
|
218
|
-
this.playTab = page.getByRole('tab', {
|
|
219
|
-
name: 'Play',
|
|
220
|
-
});
|
|
221
|
-
this.closeButton = page.getByRole('button', { name: 'Close' });
|
|
222
|
-
this.rbaEnabledDeployedDialog = page.getByRole('dialog', {
|
|
223
|
-
name: 'Process successfully deployed',
|
|
224
|
-
});
|
|
225
|
-
this.assignmentSection = page.locator('[data-group-id="group-assignmentDefinition"]');
|
|
226
|
-
this.assigneeInput = page.getByRole('textbox', { name: 'assignee' });
|
|
227
|
-
this.candidateGroupsInput = page.getByRole('textbox', {
|
|
228
|
-
name: 'candidate groups',
|
|
229
|
-
});
|
|
230
|
-
this.candidateUsersInput = page.getByRole('textbox', {
|
|
231
|
-
name: 'candidate users',
|
|
232
|
-
});
|
|
233
|
-
this.appendGatewayButton = page.getByTitle('append gateway');
|
|
234
|
-
this.parallelGatewayOption = page.getByText('parallel gateway');
|
|
235
|
-
this.firstPlacedGateway = page
|
|
236
|
-
.locator('[data-element-id*="Gateway"]')
|
|
237
|
-
.first();
|
|
238
|
-
this.secondPlacedGateway = page
|
|
239
|
-
.locator('[data-element-id*="Gateway"]')
|
|
240
|
-
.last();
|
|
241
|
-
this.continueToPlayButton = page.getByRole('button', { name: 'Continue' });
|
|
242
|
-
this.assigneeInput = page.getByRole('textbox', { name: 'assignee' });
|
|
243
|
-
this.candidateGroupsInput = page.getByRole('textbox', {
|
|
244
|
-
name: 'candidate groups',
|
|
245
|
-
});
|
|
246
|
-
this.deployDiagramDialog = page.getByRole('dialog', {
|
|
247
|
-
name: 'Deploy diagram',
|
|
248
|
-
});
|
|
249
|
-
this.timerEventOption = page.getByRole('listitem', {
|
|
250
|
-
name: 'Timer intermediate catch event',
|
|
251
|
-
exact: true,
|
|
252
|
-
});
|
|
253
|
-
this.timerEventSettings = page.getByText(/^Timer$/).first();
|
|
254
|
-
this.timerType = page.getByLabel('Type');
|
|
255
|
-
this.timerValue = page.getByLabel('Value');
|
|
256
|
-
this.eighthPlacedElement = page
|
|
257
|
-
.locator('g:nth-child(8) > .djs-element > .djs-hit')
|
|
258
|
-
.first();
|
|
259
|
-
this.processIdSecondLocator = page.getByLabel('Process ID');
|
|
260
|
-
this.publicationSection = page.locator('[data-group-id="group-process-publication"]');
|
|
261
|
-
this.publicAccessToggle = page.getByRole('switch', {
|
|
262
|
-
name: 'Toggle public access',
|
|
263
|
-
});
|
|
264
|
-
this.publicationTab = page.getByRole('tab', { name: 'Publication' });
|
|
265
|
-
this.copyPublicLinkButton = page.getByRole('button', {
|
|
266
|
-
name: 'Copy to clipboard',
|
|
267
|
-
});
|
|
268
|
-
this.formLinkedSuccessMessage = page
|
|
269
|
-
.locator('.cds--toast-notification__subtitle')
|
|
270
|
-
.getByText('Form has been successfully linked.');
|
|
271
|
-
this.diagramNameBreadcrumb = (diagramName) => page.locator('button[data-test="breadcrumb-diagram"]', {
|
|
272
|
-
hasText: diagramName,
|
|
273
|
-
});
|
|
274
|
-
this.dialog = page.getByRole('dialog');
|
|
275
|
-
}
|
|
276
|
-
async clickEditDiagramNameButton() {
|
|
277
|
-
await this.renameDiagramNameButton.click({ timeout: 10000 });
|
|
278
|
-
}
|
|
279
|
-
async modelJobWorkerDiagram(processName, embedFrom = false) {
|
|
280
|
-
await (0, test_1.expect)(this.generalPanel).toBeVisible({
|
|
281
|
-
timeout: 120000,
|
|
282
|
-
});
|
|
283
|
-
await this.enterDiagramName(processName);
|
|
284
|
-
await (0, sleep_1.sleep)(10000);
|
|
285
|
-
await this.clickAppendElementButton();
|
|
286
|
-
await this.clickAppendTaskButton();
|
|
287
|
-
await this.clickChangeTypeButton();
|
|
288
|
-
await this.clickUserTaskOption();
|
|
289
|
-
await this.chooseImplementationOption('jobWorker');
|
|
290
|
-
await (0, sleep_1.sleep)(3000);
|
|
291
|
-
if (embedFrom) {
|
|
292
|
-
await this.chooseFormLinkingTypeOption('Camunda Form (embedded)');
|
|
293
|
-
}
|
|
294
|
-
await this.clickAppendElementButton();
|
|
295
|
-
await this.clickAppendEndEventButton();
|
|
296
|
-
await (0, sleep_1.sleep)(20000);
|
|
297
|
-
}
|
|
298
|
-
async assertProcessInstanceLinkWithRetry(clusterName) {
|
|
299
|
-
const maxRetries = 3;
|
|
300
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
301
|
-
try {
|
|
302
|
-
await (0, test_1.expect)(this.viewProcessInstanceLink).toBeVisible({
|
|
303
|
-
timeout: 30000,
|
|
304
|
-
});
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
catch (error) {
|
|
308
|
-
if (attempt < maxRetries - 1) {
|
|
309
|
-
console.warn(`View process instance status attempt ${attempt + 1} failed. Retrying...`);
|
|
310
|
-
await this.page.reload();
|
|
311
|
-
await (0, randomSleep_1.randomSleep)(10000, 30000);
|
|
312
|
-
await this.runProcessInstance(clusterName);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts` + error);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
async modelCamundaUserTaskDiagram(processName, processId = '', formName = '') {
|
|
321
|
-
await (0, test_1.expect)(this.generalPanel).toBeVisible({
|
|
322
|
-
timeout: 180000,
|
|
323
|
-
});
|
|
324
|
-
await (0, sleep_1.sleep)(1000);
|
|
325
|
-
await this.enterDiagramName(processName);
|
|
326
|
-
await (0, sleep_1.sleep)(10000);
|
|
327
|
-
if (processId.length > 0) {
|
|
328
|
-
await this.clickStartEventElement();
|
|
329
|
-
await this.clickGeneralPropertiesPanel();
|
|
330
|
-
await this.clickIdInput();
|
|
331
|
-
await this.fillIdInput(processId);
|
|
332
|
-
await this.clickNameInput();
|
|
333
|
-
await this.fillNameInput(processName);
|
|
334
|
-
await this.clickStartEventElement();
|
|
335
|
-
}
|
|
336
|
-
await this.clickAppendElementButton();
|
|
337
|
-
await this.clickAppendTaskButton();
|
|
338
|
-
await this.clickChangeTypeButton();
|
|
339
|
-
await this.clickUserTaskOption();
|
|
340
|
-
await this.assertImplementationOption('zeebeUserTask');
|
|
341
|
-
if (formName.length > 0) {
|
|
342
|
-
await this.clickEmbedFormButton();
|
|
343
|
-
await this.clickForm(formName);
|
|
344
|
-
await this.clickEmbedButton();
|
|
345
|
-
}
|
|
346
|
-
await this.clickAppendElementButton();
|
|
347
|
-
await this.clickAppendEndEventButton();
|
|
348
|
-
await this.clickCanvas();
|
|
349
|
-
await this.assertThreeElementsVisible();
|
|
350
|
-
await (0, sleep_1.sleep)(20000);
|
|
351
|
-
}
|
|
352
|
-
async clickCandidateUsersInput() {
|
|
353
|
-
await this.candidateUsersInput.click({ timeout: 60000 });
|
|
354
|
-
}
|
|
355
|
-
async clickSecondDeployButton() {
|
|
356
|
-
await this.backupDeployButton.click({ timeout: 60000 });
|
|
357
|
-
}
|
|
358
|
-
async fillCandidateUsersInput(candidateUser) {
|
|
359
|
-
await this.candidateUsersInput.fill(candidateUser, { timeout: 60000 });
|
|
360
|
-
}
|
|
361
|
-
async selectUserTask(userTask) {
|
|
362
|
-
await this.page.locator(`g[data-element-id="${userTask}"]`).click();
|
|
363
|
-
}
|
|
364
|
-
async clickAssigneeInput() {
|
|
365
|
-
await this.assigneeInput.click({ timeout: 60000 });
|
|
366
|
-
}
|
|
367
|
-
async fillAssigneeInput(name) {
|
|
368
|
-
await this.assigneeInput.fill(name, { timeout: 60000 });
|
|
369
|
-
await this.page.waitForTimeout(1000);
|
|
370
|
-
}
|
|
371
|
-
async clickUserTask(id) {
|
|
372
|
-
const priorityUserTask = this.page.locator(`[data-element-id="${id}"]`);
|
|
373
|
-
await priorityUserTask.click({ timeout: 60000 });
|
|
374
|
-
}
|
|
375
|
-
async clickForm(name) {
|
|
376
|
-
await this.page
|
|
377
|
-
.locator(`[data-test="item-${name}"]`)
|
|
378
|
-
.getByText(name)
|
|
379
|
-
.click({ timeout: 90000 });
|
|
380
|
-
}
|
|
381
|
-
async clickGeneralPropertiesPanel() {
|
|
382
|
-
const isExpanded = (await this.generalPanel
|
|
383
|
-
.locator('.bio-properties-panel-group-header.open')
|
|
384
|
-
.count()) > 0;
|
|
385
|
-
if (!isExpanded) {
|
|
386
|
-
await this.generalPanel.click({ timeout: 60000 });
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
async expandAssignmentSection() {
|
|
390
|
-
const isExpanded = (await this.assignmentSection
|
|
391
|
-
.locator('[data-group-id="group-assignmentDefinition"] .bio-properties-panel-group-header.open')
|
|
392
|
-
.count()) > 0;
|
|
393
|
-
if (!isExpanded) {
|
|
394
|
-
await this.assignmentSection.click({ timeout: 60000 });
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
async clickIdInput() {
|
|
398
|
-
try {
|
|
399
|
-
await this.idInput.click();
|
|
400
|
-
}
|
|
401
|
-
catch {
|
|
402
|
-
await this.processIdSecondLocator.click();
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
async fillIdInput(id) {
|
|
406
|
-
try {
|
|
407
|
-
await this.idInput.fill(id);
|
|
408
|
-
}
|
|
409
|
-
catch {
|
|
410
|
-
await this.processIdSecondLocator.fill(id);
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
async clickPriorityInput() {
|
|
414
|
-
const isExpanded = (await this.assignmentSection
|
|
415
|
-
.locator('.bio-properties-panel-group-header empty open')
|
|
416
|
-
.count()) > 0;
|
|
417
|
-
if (!isExpanded) {
|
|
418
|
-
await this.assignmentSection.click();
|
|
419
|
-
}
|
|
420
|
-
await this.priorityInput.click({ timeout: 30000 });
|
|
421
|
-
}
|
|
422
|
-
async clickCloseButton() {
|
|
423
|
-
await this.closeButton.click({ timeout: 60000 });
|
|
424
|
-
}
|
|
425
|
-
async clickAdditionalActionsButton() {
|
|
426
|
-
await (0, test_1.expect)(this.additionalActionsButton).toBeVisible({ timeout: 20000 });
|
|
427
|
-
await this.additionalActionsButton.click({ timeout: 60000 });
|
|
428
|
-
}
|
|
429
|
-
async clickDeployMenuItem() {
|
|
430
|
-
await (0, test_1.expect)(this.deployMenuItem).toBeVisible({ timeout: 20000 });
|
|
431
|
-
await this.deployMenuItem.click({ timeout: 60000 });
|
|
432
|
-
}
|
|
433
|
-
async deployDiagram(clusterName) {
|
|
434
|
-
await this.clickDeployButtonWithRetry();
|
|
435
|
-
await (0, test_1.expect)(this.deployDiagramDialog).toBeVisible({
|
|
436
|
-
timeout: 30000,
|
|
437
|
-
});
|
|
438
|
-
//Select the correct cluster if multiple exist
|
|
439
|
-
const cluster = this.deployDiagramDialog.getByText(clusterName);
|
|
440
|
-
await (0, test_1.expect)(cluster).toBeVisible({
|
|
441
|
-
timeout: 30000,
|
|
442
|
-
});
|
|
443
|
-
await cluster.click();
|
|
444
|
-
await (0, test_1.expect)(this.deployDiagramDialog
|
|
445
|
-
.locator('label')
|
|
446
|
-
.filter({
|
|
447
|
-
hasText: clusterName,
|
|
448
|
-
})
|
|
449
|
-
.getByRole('switch')).toBeChecked({ timeout: 30000 });
|
|
450
|
-
//Check healthy status of the selected cluster
|
|
451
|
-
const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
|
|
452
|
-
await (0, test_1.expect)(this.deployDiagramDialog).toHaveText(regex, {
|
|
453
|
-
timeout: 120000,
|
|
454
|
-
});
|
|
455
|
-
await (0, test_1.expect)(this.deploySubButton).toBeVisible({
|
|
456
|
-
timeout: 120000,
|
|
457
|
-
});
|
|
458
|
-
await this.clickDeploySubButtonWithRetry();
|
|
459
|
-
await (0, test_1.expect)(this.viewProcessLink).toBeVisible({
|
|
460
|
-
timeout: 180000,
|
|
461
|
-
});
|
|
462
|
-
await (0, test_1.expect)(this.viewProcessLink).toBeHidden({
|
|
463
|
-
timeout: 120000,
|
|
464
|
-
});
|
|
465
|
-
}
|
|
466
|
-
async runProcessInstance(clusterName, variables = '', formVariables = {}, textToVisible = '') {
|
|
467
|
-
const maxRetries = 3;
|
|
468
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
469
|
-
try {
|
|
470
|
-
await (0, test_1.expect)(this.startInstanceMainButton).toBeVisible({
|
|
471
|
-
timeout: 60000,
|
|
472
|
-
});
|
|
473
|
-
await this.clickStartInstanceMainButton();
|
|
474
|
-
await (0, test_1.expect)(this.deployAndRunDialog).toBeVisible({
|
|
475
|
-
timeout: 30000,
|
|
476
|
-
});
|
|
477
|
-
//Select the correct cluster if multiple exist
|
|
478
|
-
const cluster = this.deployAndRunDialog.getByText(clusterName);
|
|
479
|
-
await (0, test_1.expect)(cluster).toBeVisible({
|
|
480
|
-
timeout: 30000,
|
|
481
|
-
});
|
|
482
|
-
await cluster.click();
|
|
483
|
-
await (0, test_1.expect)(this.deployAndRunDialog
|
|
484
|
-
.locator('label')
|
|
485
|
-
.filter({
|
|
486
|
-
hasText: clusterName,
|
|
487
|
-
})
|
|
488
|
-
.getByRole('switch')).toBeChecked({ timeout: 30000 });
|
|
489
|
-
//Check healthy status of the selected cluster
|
|
490
|
-
const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
|
|
491
|
-
await (0, test_1.expect)(this.deployAndRunDialog).toHaveText(regex, {
|
|
492
|
-
timeout: 120000,
|
|
493
|
-
});
|
|
494
|
-
if (variables.length > 0) {
|
|
495
|
-
await (0, test_1.expect)(this.variableInput).toBeVisible({
|
|
496
|
-
timeout: 60000,
|
|
497
|
-
});
|
|
498
|
-
await this.clickVariableInput();
|
|
499
|
-
await this.fillVariableInput(variables);
|
|
500
|
-
}
|
|
501
|
-
if (Object.keys(formVariables).length > 0) {
|
|
502
|
-
if ('formName' in formVariables && formVariables['formName']) {
|
|
503
|
-
await this.fillStartFormName(formVariables['formName']);
|
|
504
|
-
}
|
|
505
|
-
if ('checkbox' in formVariables &&
|
|
506
|
-
formVariables['checkbox'] == 'true') {
|
|
507
|
-
await this.checkStartFormCheckbox();
|
|
508
|
-
}
|
|
509
|
-
if ('startDate' in formVariables && formVariables['startDate']) {
|
|
510
|
-
await this.fillStartFormDate(formVariables['startDate']);
|
|
511
|
-
}
|
|
512
|
-
if ('startNumber' in formVariables && formVariables['startNumber']) {
|
|
513
|
-
await this.fillStartFormNumber(formVariables['startNumber']);
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
if (textToVisible.length > 0) {
|
|
517
|
-
await (0, test_1.expect)(this.deployAndRunDialog.getByText(textToVisible)).toBeVisible({
|
|
518
|
-
timeout: 30000,
|
|
519
|
-
});
|
|
520
|
-
}
|
|
521
|
-
await this.clickStartInstanceSubButton();
|
|
522
|
-
return;
|
|
523
|
-
}
|
|
524
|
-
catch (error) {
|
|
525
|
-
if (attempt < maxRetries - 1) {
|
|
526
|
-
console.warn(`Attempt ${attempt + 1} failed for running process. Retrying...`);
|
|
527
|
-
await this.page.reload();
|
|
528
|
-
await (0, randomSleep_1.randomSleep)(10000, 30000);
|
|
529
|
-
}
|
|
530
|
-
else {
|
|
531
|
-
console.error(error);
|
|
532
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts`);
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
async fillPriorityInput(priority) {
|
|
538
|
-
await this.priorityInput.fill(priority, { timeout: 60000 });
|
|
539
|
-
await (0, test_1.expect)(this.page
|
|
540
|
-
.getByText('Must be an expression, or an integer between 0 and 100')
|
|
541
|
-
.first()).not.toBeVisible({ timeout: 30000 });
|
|
542
|
-
await this.page.waitForTimeout(1000);
|
|
543
|
-
}
|
|
544
|
-
async clickStartEventElement() {
|
|
545
|
-
await (0, test_1.expect)(this.startEventElement).toBeVisible({ timeout: 15000 });
|
|
546
|
-
await this.startEventElement.click();
|
|
547
|
-
}
|
|
548
|
-
async clickAppendTaskButton() {
|
|
549
|
-
await (0, test_1.expect)(this.appendTaskButton).toBeVisible({ timeout: 15000 });
|
|
550
|
-
await this.appendTaskButton.click();
|
|
551
|
-
}
|
|
552
|
-
async clickAppendGatewayButton() {
|
|
553
|
-
await (0, test_1.expect)(this.appendTaskButton).toBeVisible({ timeout: 15000 });
|
|
554
|
-
await this.appendGatewayButton.click();
|
|
555
|
-
}
|
|
556
|
-
async clickChangeTypeButton() {
|
|
557
|
-
await (0, test_1.expect)(this.changeTypeButton).toBeVisible({ timeout: 15000 });
|
|
558
|
-
await this.changeTypeButton.click();
|
|
559
|
-
}
|
|
560
|
-
async clickUserTaskOption() {
|
|
561
|
-
await (0, test_1.expect)(this.userTaskOption).toBeVisible({ timeout: 15000 });
|
|
562
|
-
await this.userTaskOption.click();
|
|
563
|
-
}
|
|
564
|
-
async assertImplementationOption(implementationType) {
|
|
565
|
-
await this.expandImplementationOptionIfNecessary();
|
|
566
|
-
(0, test_1.expect)(await this.implementationOptions.inputValue()).toEqual(implementationType);
|
|
567
|
-
}
|
|
568
|
-
async expandImplementationOptionIfNecessary() {
|
|
569
|
-
const isExpanded = (await this.implementationSection
|
|
570
|
-
.locator('.bio-properties-panel-group-header empty open')
|
|
571
|
-
.count()) > 0;
|
|
572
|
-
if (!isExpanded) {
|
|
573
|
-
await this.implementationSection.click();
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
async clickParallelGatewayOption() {
|
|
577
|
-
await this.parallelGatewayOption.click({ timeout: 90000 });
|
|
578
|
-
}
|
|
579
|
-
async clickAppendEndEventButton(parentElement) {
|
|
580
|
-
try {
|
|
581
|
-
await this.appendEndEventButton.click({ timeout: 120000 });
|
|
582
|
-
}
|
|
583
|
-
catch (error) {
|
|
584
|
-
await this.page.reload();
|
|
585
|
-
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
586
|
-
await sleep(10000);
|
|
587
|
-
if (parentElement == undefined) {
|
|
588
|
-
await this.clickSecondPlacedElement();
|
|
589
|
-
}
|
|
590
|
-
else if (parentElement == 'parallelGateway') {
|
|
591
|
-
await this.clickSecondPlacedGateway();
|
|
592
|
-
}
|
|
593
|
-
await this.appendElementButton.hover();
|
|
594
|
-
await this.appendEndEventButton.click({ timeout: 120000 });
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
async addParallelUserTasks(numberOfTasks, taskName) {
|
|
598
|
-
try {
|
|
599
|
-
await this.clickAppendElementButton();
|
|
600
|
-
}
|
|
601
|
-
catch (error) {
|
|
602
|
-
await this.page.reload();
|
|
603
|
-
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
604
|
-
await sleep(10000);
|
|
605
|
-
await this.clickFirstPlacedElement();
|
|
606
|
-
await this.appendElementButton.hover();
|
|
607
|
-
}
|
|
608
|
-
await this.clickAppendGatewayButton();
|
|
609
|
-
await this.clickChangeTypeButton();
|
|
610
|
-
await this.clickParallelGatewayOption();
|
|
611
|
-
await this.clickAppendElementButton();
|
|
612
|
-
await this.clickAppendTaskButton();
|
|
613
|
-
await this.clickChangeTypeButton();
|
|
614
|
-
await this.clickUserTaskOption();
|
|
615
|
-
await this.assertImplementationOption('zeebeUserTask');
|
|
616
|
-
await this.clickGeneralPropertiesPanel();
|
|
617
|
-
await this.clickNameInput();
|
|
618
|
-
await this.fillNameInput(taskName + '1');
|
|
619
|
-
await this.clickIdInput();
|
|
620
|
-
await this.fillIdInput(taskName + '1');
|
|
621
|
-
await this.clickAppendElementButton();
|
|
622
|
-
await this.clickAppendGatewayButton();
|
|
623
|
-
await this.clickChangeTypeButton();
|
|
624
|
-
await this.clickParallelGatewayOption();
|
|
625
|
-
for (let i = 2; i <= numberOfTasks; i++) {
|
|
626
|
-
await this.clickFirstPlacedGateway();
|
|
627
|
-
await this.clickAppendElementButton();
|
|
628
|
-
await this.clickAppendTaskButton();
|
|
629
|
-
await this.clickChangeTypeButton();
|
|
630
|
-
await this.clickUserTaskOption();
|
|
631
|
-
await this.assertImplementationOption('zeebeUserTask');
|
|
632
|
-
await this.clickNameInput();
|
|
633
|
-
await this.fillNameInput(taskName + i);
|
|
634
|
-
await this.clickIdInput();
|
|
635
|
-
await this.fillIdInput(taskName + i);
|
|
636
|
-
await this.clickConnectToOtherElementButton();
|
|
637
|
-
await this.clickSecondPlacedGateway();
|
|
638
|
-
await this.clickCanvas();
|
|
639
|
-
}
|
|
640
|
-
await this.clickSecondPlacedGateway();
|
|
641
|
-
}
|
|
642
|
-
async clickStartInstanceMainButton() {
|
|
643
|
-
await this.startInstanceMainButton.click({ timeout: 90000 });
|
|
644
|
-
}
|
|
645
|
-
async clickStartInstanceSubButton() {
|
|
646
|
-
await this.startInstanceSubButton.click({ timeout: 90000 });
|
|
647
|
-
}
|
|
648
|
-
async clickViewProcessInstanceLink() {
|
|
649
|
-
await this.viewProcessInstanceLink.click({ timeout: 180000 });
|
|
650
|
-
}
|
|
651
|
-
async clickNameInput() {
|
|
652
|
-
await this.nameInput.click({ timeout: 60000 });
|
|
653
|
-
}
|
|
654
|
-
async fillNameInput(name) {
|
|
655
|
-
await this.nameInput.fill(name, { timeout: 60000 });
|
|
656
|
-
}
|
|
657
|
-
async setPriority(taskName, priority, numberOfTasks) {
|
|
658
|
-
for (let i = 1; i <= numberOfTasks; i++) {
|
|
659
|
-
const userTaskId = taskName + i;
|
|
660
|
-
const priorityUserTask = this.page.locator(`[data-element-id="${userTaskId}"]`);
|
|
661
|
-
await priorityUserTask.click({ timeout: 60000 });
|
|
662
|
-
await this.expandAssignmentSection();
|
|
663
|
-
await this.clickPriorityInput();
|
|
664
|
-
await this.fillPriorityInput(priority.toString());
|
|
665
|
-
await (0, sleep_1.sleep)(5000);
|
|
666
|
-
await this.clickCanvas();
|
|
667
|
-
priority += 25;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
async clickDiagramBreadcrumb() {
|
|
671
|
-
await this.diagramBreadcrumb.click({ timeout: 10000 });
|
|
672
|
-
}
|
|
673
|
-
async clickRenameDiagramNameButton() {
|
|
674
|
-
await (0, test_1.expect)(this.renameDiagramNameButton).toBeVisible({ timeout: 30000 });
|
|
675
|
-
await this.renameDiagramNameButton.click({ timeout: 30000 });
|
|
676
|
-
}
|
|
677
|
-
async assertThreeElementsVisible() {
|
|
678
|
-
await (0, test_1.expect)(this.firstElement).toBeVisible({ timeout: 30000 });
|
|
679
|
-
await (0, test_1.expect)(this.secondElement).toBeVisible({ timeout: 30000 });
|
|
680
|
-
await (0, test_1.expect)(this.thirdElement).toBeVisible({ timeout: 30000 });
|
|
681
|
-
}
|
|
682
|
-
async enterDiagramName(name) {
|
|
683
|
-
await this.diagramNameInput.fill(name, { timeout: 90000 });
|
|
684
|
-
await this.diagramNameInput.press('Enter', { timeout: 90000 });
|
|
685
|
-
}
|
|
686
|
-
async clickVariableInput() {
|
|
687
|
-
await this.variableInput.click({ timeout: 60000 });
|
|
688
|
-
}
|
|
689
|
-
async fillVariableInput(variable) {
|
|
690
|
-
await this.variableInput.fill(variable);
|
|
691
|
-
}
|
|
692
|
-
async clickEmbedFormButton() {
|
|
693
|
-
await this.embedFormButton.click({ timeout: 60000 });
|
|
694
|
-
}
|
|
695
|
-
async clickEmbedButton() {
|
|
696
|
-
await this.embedButton.click({ timeout: 60000 });
|
|
697
|
-
}
|
|
698
|
-
async clickNewForm() {
|
|
699
|
-
await this.newForm.click({ timeout: 120000 });
|
|
700
|
-
}
|
|
701
|
-
async clickDeployMainButton() {
|
|
702
|
-
await this.deployMainButton.click({ timeout: 120000, force: true });
|
|
703
|
-
}
|
|
704
|
-
async clickDeploySubButton() {
|
|
705
|
-
await this.deploySubButton.click({ timeout: 120000, force: true });
|
|
706
|
-
}
|
|
707
|
-
async clickCancelButton() {
|
|
708
|
-
await this.cancelButton.click({ timeout: 60000 });
|
|
709
|
-
}
|
|
710
|
-
async clickRestConnectorOption() {
|
|
711
|
-
await this.restConnectorOption.click({ timeout: 60000 });
|
|
712
|
-
}
|
|
713
|
-
async clickWebhookMessageStartEventConnectorOption() {
|
|
714
|
-
await this.webhookMessageStartEventConnectorOption.click({ timeout: 60000 });
|
|
715
|
-
}
|
|
716
|
-
async clickWebhookTab() {
|
|
717
|
-
await this.webhookTab.click({ timeout: 120000 });
|
|
718
|
-
}
|
|
719
|
-
async clickWebhookIsActiveButton() {
|
|
720
|
-
await this.webhookIsActiveButton.click({ timeout: 60000 });
|
|
721
|
-
}
|
|
722
|
-
async clickDeployButton() {
|
|
723
|
-
try {
|
|
724
|
-
await this.clickAdditionalActionsButton();
|
|
725
|
-
await this.clickDeployMenuItem();
|
|
726
|
-
return;
|
|
727
|
-
}
|
|
728
|
-
catch (error) {
|
|
729
|
-
await (0, test_1.expect)(this.deployMainButton).toBeVisible({
|
|
730
|
-
timeout: 30000,
|
|
731
|
-
});
|
|
732
|
-
await this.deployMainButton.click({ timeout: 30000, force: true });
|
|
733
|
-
}
|
|
734
|
-
}
|
|
735
|
-
async clickDeployButtonWithRetry(retries = 3) {
|
|
736
|
-
for (let i = 0; i < retries; i++) {
|
|
737
|
-
try {
|
|
738
|
-
await this.clickDeployButton();
|
|
739
|
-
return;
|
|
740
|
-
}
|
|
741
|
-
catch (error) {
|
|
742
|
-
console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
|
|
743
|
-
// Refresh the page
|
|
744
|
-
await this.page.reload();
|
|
745
|
-
await (0, sleep_1.sleep)(10000);
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
throw new Error(`Failed to click deploy button after ${retries} retries`);
|
|
749
|
-
}
|
|
750
|
-
async clickDeploySubButtonWithRetry(retries = 3) {
|
|
751
|
-
for (let i = 0; i < retries; i++) {
|
|
752
|
-
try {
|
|
753
|
-
await this.deploySubButton.click({ timeout: 120000, force: true });
|
|
754
|
-
return;
|
|
755
|
-
}
|
|
756
|
-
catch (error) {
|
|
757
|
-
console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
|
|
758
|
-
await this.page.reload();
|
|
759
|
-
await (0, sleep_1.sleep)(10000);
|
|
760
|
-
await this.clickDeployButtonWithRetry();
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
throw new Error(`Failed to click deploy button after ${retries} retries`);
|
|
764
|
-
}
|
|
765
|
-
async clickCreateTask() {
|
|
766
|
-
await this.createTask.click({ timeout: 60000 });
|
|
767
|
-
}
|
|
768
|
-
async clickCreateEndEvent() {
|
|
769
|
-
await this.createEndEvent.click({ timeout: 60000 });
|
|
770
|
-
}
|
|
771
|
-
async clickCanvas() {
|
|
772
|
-
await this.canvas.click({ timeout: 60000 });
|
|
773
|
-
}
|
|
774
|
-
async clickEndEventCanvas() {
|
|
775
|
-
await this.endEventCanvas.click({ timeout: 60000 });
|
|
776
|
-
}
|
|
777
|
-
async clickConnectToOtherElementButton() {
|
|
778
|
-
await this.connectToOtherElementButton.click({ timeout: 60000 });
|
|
779
|
-
}
|
|
780
|
-
async clickFirstPlacedElement() {
|
|
781
|
-
await this.firstPlacedElement.click({ timeout: 90000 });
|
|
782
|
-
}
|
|
783
|
-
async clickSecondPlacedElement() {
|
|
784
|
-
await this.secondPlacedElement.click({ timeout: 12000 });
|
|
785
|
-
}
|
|
786
|
-
async clickSecondElement() {
|
|
787
|
-
await this.secondElement.click({ timeout: 12000 });
|
|
788
|
-
}
|
|
789
|
-
async clickSecondPlacedGateway() {
|
|
790
|
-
try {
|
|
791
|
-
await this.secondPlacedGateway.click({ timeout: 60000 });
|
|
792
|
-
await this.appendElementButton.isVisible({ timeout: 60000 });
|
|
793
|
-
}
|
|
794
|
-
catch (error) {
|
|
795
|
-
await this.page.reload();
|
|
796
|
-
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
797
|
-
await sleep(10000);
|
|
798
|
-
await this.secondPlacedGateway.click({ timeout: 60000 });
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
async clickFirstPlacedGateway() {
|
|
802
|
-
try {
|
|
803
|
-
await this.firstPlacedGateway.click({ timeout: 60000 });
|
|
804
|
-
await this.appendElementButton.isVisible({ timeout: 60000 });
|
|
805
|
-
}
|
|
806
|
-
catch (error) {
|
|
807
|
-
await this.page.reload();
|
|
808
|
-
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
809
|
-
await sleep(10000);
|
|
810
|
-
await this.firstPlacedGateway.click({ timeout: 60000 });
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
async clickAppendElementButton() {
|
|
814
|
-
for (let attempt = 1; attempt <= 4; attempt++) {
|
|
815
|
-
try {
|
|
816
|
-
await (0, sleep_1.sleep)(10000);
|
|
817
|
-
await this.appendElementButton.hover({ timeout: 60000, force: true });
|
|
818
|
-
return; // Exit loop if successful
|
|
819
|
-
}
|
|
820
|
-
catch (error) {
|
|
821
|
-
if (attempt === 4)
|
|
822
|
-
throw error; // Rethrow after 3 failed attempts
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
async clickMarketPlaceButton() {
|
|
827
|
-
const maxRetries = 3;
|
|
828
|
-
for (let retries = 0; retries < maxRetries; retries++) {
|
|
829
|
-
try {
|
|
830
|
-
if (retries === 0) {
|
|
831
|
-
await this.marketPlaceButton.click({ timeout: 30000 });
|
|
832
|
-
}
|
|
833
|
-
else {
|
|
834
|
-
await this.changeTypeButton.click({ force: true, timeout: 30000 });
|
|
835
|
-
await this.marketPlaceButton.click({ timeout: 30000 });
|
|
836
|
-
}
|
|
837
|
-
return;
|
|
838
|
-
}
|
|
839
|
-
catch (error) {
|
|
840
|
-
console.error(`Click attempt ${retries + 1} failed: ${error}`);
|
|
841
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
842
|
-
}
|
|
843
|
-
}
|
|
844
|
-
throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
|
|
845
|
-
}
|
|
846
|
-
async clickPublicHolidayConnectorOption() {
|
|
847
|
-
const maxRetries = 4;
|
|
848
|
-
for (let retries = 0; retries < maxRetries; retries++) {
|
|
849
|
-
try {
|
|
850
|
-
if (retries <= 2) {
|
|
851
|
-
await this.publicHolidayConnectorOption.click({ timeout: 60000 });
|
|
852
|
-
}
|
|
853
|
-
else {
|
|
854
|
-
await this.clickMarketPlaceButton();
|
|
855
|
-
const connectorMarketplacePage = new ConnectorMarketplacePage_1.ConnectorMarketplacePage(this.page);
|
|
856
|
-
await connectorMarketplacePage.clickSearchForConnectorTextbox();
|
|
857
|
-
await connectorMarketplacePage.fillSearchForConnectorTextbox('Public Holiday Connector');
|
|
858
|
-
await (0, sleep_1.sleep)(10000);
|
|
859
|
-
await connectorMarketplacePage.downloadConnectorToProject();
|
|
860
|
-
await this.publicHolidayConnectorOption.click({ timeout: 120000 });
|
|
861
|
-
}
|
|
862
|
-
return;
|
|
863
|
-
}
|
|
864
|
-
catch (error) {
|
|
865
|
-
console.error(`Click attempt ${retries + 1} failed: ${error}`);
|
|
866
|
-
await this.page.reload();
|
|
867
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
868
|
-
await this.clickCanvas();
|
|
869
|
-
await this.secondElement.click({ timeout: 60000 });
|
|
870
|
-
await this.clickChangeTypeButton();
|
|
871
|
-
}
|
|
872
|
-
}
|
|
873
|
-
throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
|
|
874
|
-
}
|
|
875
|
-
async clickPublicHolidayYearOption() {
|
|
876
|
-
await this.publicHolidayYearOption.click({ timeout: 60000 });
|
|
877
|
-
}
|
|
878
|
-
async fillPublicHolidayYearOption(year) {
|
|
879
|
-
await this.publicHolidayYearOption.fill(year);
|
|
880
|
-
}
|
|
881
|
-
async clickPublicHolidayCountryCodeOption() {
|
|
882
|
-
await this.publicHolidayCountryCodeOption.click({ timeout: 60000 });
|
|
883
|
-
}
|
|
884
|
-
async fillPublicHolidayCountryCodeOption(countryCode) {
|
|
885
|
-
await this.publicHolidayCountryCodeOption.fill(countryCode);
|
|
886
|
-
}
|
|
887
|
-
async chooseImplementationOption(implementationType) {
|
|
888
|
-
const isExpanded = (await this.implementationSection
|
|
889
|
-
.locator('.bio-properties-panel-group-header.empty.open')
|
|
890
|
-
.count()) > 0;
|
|
891
|
-
if (!isExpanded) {
|
|
892
|
-
await this.implementationSection.click();
|
|
893
|
-
}
|
|
894
|
-
await this.implementationOptions.selectOption(implementationType);
|
|
895
|
-
await this.assertImplementationOption(implementationType);
|
|
896
|
-
}
|
|
897
|
-
async fillStartFormName(name) {
|
|
898
|
-
await this.payloadNameInput.fill(name);
|
|
899
|
-
}
|
|
900
|
-
async fillStartFormDate(date) {
|
|
901
|
-
await this.payloadDateInput.click();
|
|
902
|
-
await this.payloadDateInput.fill(date);
|
|
903
|
-
await this.payloadDateInput.press('Enter');
|
|
904
|
-
}
|
|
905
|
-
async checkStartFormCheckbox() {
|
|
906
|
-
await this.payloadCheckboxInput.check();
|
|
907
|
-
}
|
|
908
|
-
async fillStartFormNumber(number) {
|
|
909
|
-
await this.payloadNumberInput.fill(number);
|
|
910
|
-
}
|
|
911
|
-
async chooseFormLinkingTypeOption(formLinkType) {
|
|
912
|
-
await this.formPropertySection.click();
|
|
913
|
-
const jsonConfig = JSON.stringify({
|
|
914
|
-
executionPlatform: 'Camunda Cloud',
|
|
915
|
-
executionPlatformVersion: '8.6.0',
|
|
916
|
-
exporter: {
|
|
917
|
-
name: 'Camunda Web Modeler',
|
|
918
|
-
version: 'ca7603f',
|
|
919
|
-
},
|
|
920
|
-
schemaVersion: 17,
|
|
921
|
-
id: 'Form_0ex0ayi',
|
|
922
|
-
components: [
|
|
923
|
-
{
|
|
924
|
-
label: 'Full Name',
|
|
925
|
-
type: 'textfield',
|
|
926
|
-
id: 'Textfield_0',
|
|
927
|
-
validate: {
|
|
928
|
-
minLength: 2,
|
|
929
|
-
required: true,
|
|
930
|
-
},
|
|
931
|
-
key: 'fullName',
|
|
932
|
-
},
|
|
933
|
-
],
|
|
934
|
-
generated: true,
|
|
935
|
-
type: 'default',
|
|
936
|
-
});
|
|
937
|
-
await this.formLinkTypeOptions.selectOption(formLinkType);
|
|
938
|
-
await this.addFormJsonConfigurationInput.click();
|
|
939
|
-
await this.addFormJsonConfigurationInput.fill(jsonConfig);
|
|
940
|
-
}
|
|
941
|
-
async clickIntermediateBoundaryEvent() {
|
|
942
|
-
await this.intermediateBoundaryEvent.click({ timeout: 60000 });
|
|
943
|
-
}
|
|
944
|
-
async clickIntermediateWebhookConnectorOption() {
|
|
945
|
-
await this.intermediateWebhookConnectorOption.click({ timeout: 60000 });
|
|
946
|
-
}
|
|
947
|
-
async clickCorrelationKeyProcessInput() {
|
|
948
|
-
await this.correlationKeyProcessInput.click({ timeout: 60000 });
|
|
949
|
-
}
|
|
950
|
-
async fillCorrelationKeyProcessInput(correlationKeyProcess) {
|
|
951
|
-
await this.correlationKeyProcessInput.fill(correlationKeyProcess);
|
|
952
|
-
}
|
|
953
|
-
async clickCorrelationKeyPayloadInput() {
|
|
954
|
-
await this.correlationKeyPayloadInput.click({ timeout: 60000 });
|
|
955
|
-
}
|
|
956
|
-
async fillCorrelationKeyPayloadInput(correlationKeyPayload) {
|
|
957
|
-
await this.correlationKeyPayloadInput.fill(correlationKeyPayload);
|
|
958
|
-
}
|
|
959
|
-
async clickServiceTaskOption() {
|
|
960
|
-
const maxRetries = 3;
|
|
961
|
-
for (let retries = 0; retries < maxRetries; retries++) {
|
|
962
|
-
try {
|
|
963
|
-
if (retries === 0) {
|
|
964
|
-
await this.serviceTaskOption.click({ timeout: 30000, force: true });
|
|
965
|
-
}
|
|
966
|
-
else {
|
|
967
|
-
await this.changeTypeButton.click({ force: true, timeout: 30000 });
|
|
968
|
-
await this.serviceTaskOption.click({ timeout: 30000, force: true });
|
|
969
|
-
}
|
|
970
|
-
return;
|
|
971
|
-
}
|
|
972
|
-
catch (error) {
|
|
973
|
-
console.error(`Click attempt ${retries + 1} failed: ${error}`);
|
|
974
|
-
await new Promise((resolve) => setTimeout(resolve, 10000));
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
|
|
978
|
-
}
|
|
979
|
-
async clickTaskDefinitionPropertiesPanel() {
|
|
980
|
-
const isExpanded = (await this.taskDefinitionPanel
|
|
981
|
-
.locator('.bio-properties-panel-group-header empty open')
|
|
982
|
-
.count()) > 0;
|
|
983
|
-
if (!isExpanded) {
|
|
984
|
-
await this.taskDefinitionPanel.click();
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
async clickJobTypeInput() {
|
|
988
|
-
await this.jobTypeInput.click();
|
|
989
|
-
}
|
|
990
|
-
async fillJobTypeInput(name) {
|
|
991
|
-
await this.jobTypeInput.fill(name);
|
|
992
|
-
}
|
|
993
|
-
async switchToPlay() {
|
|
994
|
-
await this.playTab.click();
|
|
995
|
-
}
|
|
996
|
-
async completePlayConfiguration(clusterName) {
|
|
997
|
-
const timeout = 30000;
|
|
998
|
-
let attempts = 0;
|
|
999
|
-
const maxRetries = 2;
|
|
1000
|
-
while (attempts < maxRetries) {
|
|
1001
|
-
try {
|
|
1002
|
-
if (attempts > 0)
|
|
1003
|
-
await this.switchToPlay(); // Call switchToPlay on subsequent attempts
|
|
1004
|
-
await this.selectCluster(clusterName);
|
|
1005
|
-
await this.continueToPlayButton.click({ timeout });
|
|
1006
|
-
await (0, test_1.expect)(this.page.getByText('Play environment is ready')).toBeVisible({ timeout: 90000 });
|
|
1007
|
-
return; // Exit if successful
|
|
1008
|
-
}
|
|
1009
|
-
catch (error) {
|
|
1010
|
-
if (attempts >= maxRetries - 1)
|
|
1011
|
-
throw error;
|
|
1012
|
-
await this.page.reload();
|
|
1013
|
-
attempts++;
|
|
1014
|
-
}
|
|
1015
|
-
}
|
|
1016
|
-
}
|
|
1017
|
-
async selectCluster(clusterName) {
|
|
1018
|
-
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 30000 });
|
|
1019
|
-
const healthCheckTimeout = 30000;
|
|
1020
|
-
const healthyRegex = new RegExp(`${clusterName}.*?HealthydevManage`);
|
|
1021
|
-
const cluster = this.dialog.getByText(clusterName);
|
|
1022
|
-
await (0, test_1.expect)(cluster).toBeVisible({ timeout: 30000 });
|
|
1023
|
-
await cluster.click();
|
|
1024
|
-
await (0, test_1.expect)(this.dialog
|
|
1025
|
-
.locator('label')
|
|
1026
|
-
.filter({ hasText: clusterName })
|
|
1027
|
-
.getByRole('switch')).toBeChecked({ timeout: 30000 });
|
|
1028
|
-
await (0, test_1.expect)(this.dialog).toHaveText(healthyRegex, {
|
|
1029
|
-
timeout: healthCheckTimeout,
|
|
1030
|
-
});
|
|
1031
|
-
}
|
|
1032
|
-
async clickCandidateGroupsInput() {
|
|
1033
|
-
await this.candidateGroupsInput.click({ timeout: 60000 });
|
|
1034
|
-
}
|
|
1035
|
-
async fillCandidateGroupsInput(name) {
|
|
1036
|
-
await this.candidateGroupsInput.fill(name, { timeout: 60000 });
|
|
1037
|
-
await this.page.waitForTimeout(1000);
|
|
1038
|
-
}
|
|
1039
|
-
async clickTimerEventOption() {
|
|
1040
|
-
await this.timerEventOption.click();
|
|
1041
|
-
}
|
|
1042
|
-
async clickTimerEventSettings() {
|
|
1043
|
-
await this.timerEventSettings.click();
|
|
1044
|
-
}
|
|
1045
|
-
async selectTimerType(type) {
|
|
1046
|
-
await this.timerType.selectOption(type);
|
|
1047
|
-
}
|
|
1048
|
-
async clickTimerValue() {
|
|
1049
|
-
await this.timerValue.click();
|
|
1050
|
-
}
|
|
1051
|
-
async fillTimerValue(value) {
|
|
1052
|
-
await this.timerValue.fill(value);
|
|
1053
|
-
}
|
|
1054
|
-
async clickEighthPlacedElement() {
|
|
1055
|
-
await this.eighthPlacedElement.click();
|
|
1056
|
-
}
|
|
1057
|
-
async expandFormsSection() {
|
|
1058
|
-
const isExpanded = (await this.formPropertySection
|
|
1059
|
-
.locator('[data-group-id="group-form"] .bio-properties-panel-group-header.open')
|
|
1060
|
-
.count()) > 0;
|
|
1061
|
-
if (!isExpanded) {
|
|
1062
|
-
await this.formPropertySection.click({ timeout: 60000 });
|
|
1063
|
-
}
|
|
1064
|
-
}
|
|
1065
|
-
async linkFormToStartEvent(formName) {
|
|
1066
|
-
await this.startEventElement.click({ timeout: 90000 });
|
|
1067
|
-
await (0, sleep_1.sleep)(1000);
|
|
1068
|
-
await this.embedForm(formName);
|
|
1069
|
-
}
|
|
1070
|
-
async expandPublicationSection() {
|
|
1071
|
-
const isExpanded = (await this.publicationSection
|
|
1072
|
-
.locator('.bio-properties-panel-group-header.open')
|
|
1073
|
-
.count()) > 0;
|
|
1074
|
-
if (!isExpanded) {
|
|
1075
|
-
await this.publicationSection.click({ timeout: 60000 });
|
|
1076
|
-
}
|
|
1077
|
-
}
|
|
1078
|
-
async enablePublicAccessIfDisabled() {
|
|
1079
|
-
await this.expandPublicationSection();
|
|
1080
|
-
const isDisabled = (await this.publicAccessToggle.getAttribute('aria-checked')) === 'false';
|
|
1081
|
-
if (isDisabled) {
|
|
1082
|
-
await this.publicAccessToggle.focus();
|
|
1083
|
-
await this.page.waitForTimeout(500);
|
|
1084
|
-
await this.publicAccessToggle.press('Space');
|
|
1085
|
-
await this.page.waitForTimeout(2000);
|
|
1086
|
-
await (0, test_1.expect)(this.page.getByText('Public access enabled')).toBeVisible({
|
|
1087
|
-
timeout: 60000,
|
|
1088
|
-
});
|
|
1089
|
-
console.log('Public access toggle enabled successfully');
|
|
1090
|
-
}
|
|
1091
|
-
}
|
|
1092
|
-
async clickPublicationTab() {
|
|
1093
|
-
await this.publicationTab.click({ timeout: 60000 });
|
|
1094
|
-
}
|
|
1095
|
-
async clickCopyPublicLinkButton() {
|
|
1096
|
-
await this.copyPublicLinkButton.click({ timeout: 60000 });
|
|
1097
|
-
}
|
|
1098
|
-
async getPublicationLink() {
|
|
1099
|
-
await this.clickPublicationTab();
|
|
1100
|
-
await (0, test_1.expect)(this.copyPublicLinkButton).toBeVisible({ timeout: 60000 });
|
|
1101
|
-
await this.clickCopyPublicLinkButton();
|
|
1102
|
-
await (0, sleep_1.sleep)(1000);
|
|
1103
|
-
const context = this.page.context();
|
|
1104
|
-
await context.grantPermissions(['clipboard-read']);
|
|
1105
|
-
const clipboardText = await this.page.evaluate(async () => {
|
|
1106
|
-
return await navigator.clipboard.readText();
|
|
1107
|
-
});
|
|
1108
|
-
console.log('Captured public link:', clipboardText);
|
|
1109
|
-
return clipboardText;
|
|
1110
|
-
}
|
|
1111
|
-
async embedForm(formName) {
|
|
1112
|
-
await this.clickEmbedFormButton();
|
|
1113
|
-
await this.clickForm(formName);
|
|
1114
|
-
await this.clickEmbedButton();
|
|
1115
|
-
}
|
|
1116
|
-
async assertFormEmbedded() {
|
|
1117
|
-
await (0, test_1.expect)(this.formLinkedSuccessMessage).toBeVisible({ timeout: 15000 });
|
|
1118
|
-
}
|
|
1119
|
-
async assertDiagramNameSet(diagramName) {
|
|
1120
|
-
await (0, test_1.expect)(this.diagramNameBreadcrumb(diagramName)).toBeVisible({
|
|
1121
|
-
timeout: 60000,
|
|
1122
|
-
});
|
|
1123
|
-
}
|
|
1124
|
-
}
|
|
1125
|
-
exports.ModelerCreatePage = ModelerCreatePage;
|