@camunda/e2e-test-suite 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/pages/8.5/ModelerCreatePage.d.ts +1 -1
- package/dist/pages/8.5/ModelerCreatePage.js +15 -15
- package/dist/pages/8.6/ModelerCreatePage.d.ts +2 -1
- package/dist/pages/8.6/ModelerCreatePage.js +30 -16
- package/dist/pages/8.6/UtilitiesPage.d.ts +1 -3
- package/dist/pages/8.6/UtilitiesPage.js +5 -21
- package/dist/pages/8.7/ConsoleOrganizationPage.js +2 -1
- package/dist/pages/8.7/IdpCreatePage.d.ts +1 -1
- package/dist/pages/8.7/IdpCreatePage.js +16 -4
- package/dist/pages/8.7/ModelerCreatePage.d.ts +5 -5
- package/dist/pages/8.7/ModelerCreatePage.js +27 -30
- package/dist/pages/8.7/ModelerHomePage.d.ts +2 -0
- package/dist/pages/8.7/ModelerHomePage.js +26 -2
- package/dist/pages/8.8/ConsoleOrganizationPage.d.ts +9 -5
- package/dist/pages/8.8/ConsoleOrganizationPage.js +59 -16
- package/dist/pages/8.8/ModelerCreatePage.d.ts +5 -3
- package/dist/pages/8.8/ModelerCreatePage.js +35 -46
- package/dist/pages/8.8/OperateProcessesPage.js +1 -1
- package/dist/pages/8.8/UtilitiesPage.js +1 -1
- package/dist/pages/SM-8.5/ModelerCreatePage.js +1 -0
- package/dist/pages/SM-8.7/ClusterPage.js +1 -1
- package/dist/pages/SM-8.7/ModelerHomePage.js +1 -1
- package/dist/pages/SM-8.7/NavigationPage.js +1 -1
- package/dist/tests/8.6/connectors-user-flows.spec.js +3 -3
- package/dist/tests/8.6/web-modeler-user-flows.spec.js +3 -3
- package/dist/tests/8.7/hto-user-flows.spec.js +0 -3
- package/dist/tests/8.7/idp-user-flows.spec.js +1 -0
- package/dist/tests/8.7/web-modeler-user-flows.spec.js +2 -2
- package/dist/tests/8.8/aws-cluster-user-flows.spec.js +1 -1
- package/dist/tests/8.8/connectors-user-flows.spec.js +0 -2
- package/dist/tests/8.8/console-user-flows.spec.js +1 -3
- package/dist/tests/8.8/hto-user-flows.spec.js +4 -5
- package/dist/tests/8.8/rba-enabled-user-flows.spec.js +5 -3
- package/dist/tests/8.8/web-modeler-user-flows.spec.js +29 -39
- package/dist/tests/SM-8.5/mt-enabled-user-flows.spec.js +18 -0
- package/dist/tests/SM-8.7/mt-enabled-user-flows.spec.js +10 -3
- package/dist/tests/SM-8.8/optimize-user-flows.spec.js +7 -7
- package/package.json +1 -1
- package/dist/fixtures/8.4.d.ts +0 -57
- package/dist/fixtures/8.4.js +0 -150
- package/dist/fixtures/SM-8.4.d.ts +0 -55
- package/dist/fixtures/SM-8.4.js +0 -132
- package/dist/pages/8.4/AppsPage.d.ts +0 -33
- package/dist/pages/8.4/AppsPage.js +0 -333
- package/dist/pages/8.4/ClusterDetailsPage.d.ts +0 -59
- package/dist/pages/8.4/ClusterDetailsPage.js +0 -319
- package/dist/pages/8.4/ClusterPage.d.ts +0 -50
- package/dist/pages/8.4/ClusterPage.js +0 -334
- package/dist/pages/8.4/ClusterSecretsPage.d.ts +0 -21
- package/dist/pages/8.4/ClusterSecretsPage.js +0 -105
- package/dist/pages/8.4/ConnectorMarketplacePage.d.ts +0 -18
- package/dist/pages/8.4/ConnectorMarketplacePage.js +0 -59
- package/dist/pages/8.4/ConnectorSettingsPage.d.ts +0 -28
- package/dist/pages/8.4/ConnectorSettingsPage.js +0 -72
- package/dist/pages/8.4/ConnectorTemplatePage.d.ts +0 -11
- package/dist/pages/8.4/ConnectorTemplatePage.js +0 -34
- package/dist/pages/8.4/ConsoleOrganizationPage.d.ts +0 -69
- package/dist/pages/8.4/ConsoleOrganizationPage.js +0 -366
- package/dist/pages/8.4/FormJsPage.d.ts +0 -14
- package/dist/pages/8.4/FormJsPage.js +0 -44
- package/dist/pages/8.4/HomePage.d.ts +0 -27
- package/dist/pages/8.4/HomePage.js +0 -87
- package/dist/pages/8.4/LoginPage.d.ts +0 -30
- package/dist/pages/8.4/LoginPage.js +0 -83
- package/dist/pages/8.4/ModelerCreatePage.d.ts +0 -145
- package/dist/pages/8.4/ModelerCreatePage.js +0 -660
- package/dist/pages/8.4/ModelerHomePage.d.ts +0 -39
- package/dist/pages/8.4/ModelerHomePage.js +0 -153
- package/dist/pages/8.4/ModelerUserInvitePage.d.ts +0 -27
- package/dist/pages/8.4/ModelerUserInvitePage.js +0 -83
- package/dist/pages/8.4/OperateHomePage.d.ts +0 -21
- package/dist/pages/8.4/OperateHomePage.js +0 -53
- package/dist/pages/8.4/OperateProcessInstancePage.d.ts +0 -14
- package/dist/pages/8.4/OperateProcessInstancePage.js +0 -35
- package/dist/pages/8.4/OperateProcessesPage.d.ts +0 -22
- package/dist/pages/8.4/OperateProcessesPage.js +0 -80
- package/dist/pages/8.4/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/8.4/OptimizeCollectionsPage.js +0 -44
- package/dist/pages/8.4/OptimizeDashboardPage.d.ts +0 -8
- package/dist/pages/8.4/OptimizeDashboardPage.js +0 -48
- package/dist/pages/8.4/OptimizeHomePage.d.ts +0 -12
- package/dist/pages/8.4/OptimizeHomePage.js +0 -32
- package/dist/pages/8.4/OptimizeReportPage.d.ts +0 -49
- package/dist/pages/8.4/OptimizeReportPage.js +0 -160
- package/dist/pages/8.4/SettingsPage.d.ts +0 -10
- package/dist/pages/8.4/SettingsPage.js +0 -41
- package/dist/pages/8.4/SignUpPage.d.ts +0 -44
- package/dist/pages/8.4/SignUpPage.js +0 -137
- package/dist/pages/8.4/TaskDetailsPage.d.ts +0 -64
- package/dist/pages/8.4/TaskDetailsPage.js +0 -198
- package/dist/pages/8.4/TaskPanelPage.d.ts +0 -19
- package/dist/pages/8.4/TaskPanelPage.js +0 -61
- package/dist/pages/8.4/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/8.4/TaskProcessesPage.js +0 -31
- package/dist/pages/8.4/UtilitiesPage.d.ts +0 -33
- package/dist/pages/8.4/UtilitiesPage.js +0 -312
- package/dist/pages/SM-8.4/ConnectorMarketplacePage.d.ts +0 -16
- package/dist/pages/SM-8.4/ConnectorMarketplacePage.js +0 -48
- package/dist/pages/SM-8.4/ConnectorSettingsPage.d.ts +0 -28
- package/dist/pages/SM-8.4/ConnectorSettingsPage.js +0 -82
- package/dist/pages/SM-8.4/ConsoleHomePage.d.ts +0 -7
- package/dist/pages/SM-8.4/ConsoleHomePage.js +0 -14
- package/dist/pages/SM-8.4/ConsoleOrganizationPage.d.ts +0 -22
- package/dist/pages/SM-8.4/ConsoleOrganizationPage.js +0 -68
- package/dist/pages/SM-8.4/FormJsPage.d.ts +0 -13
- package/dist/pages/SM-8.4/FormJsPage.js +0 -30
- package/dist/pages/SM-8.4/HomePage.d.ts +0 -20
- package/dist/pages/SM-8.4/HomePage.js +0 -49
- package/dist/pages/SM-8.4/IdentityPage.d.ts +0 -56
- package/dist/pages/SM-8.4/IdentityPage.js +0 -219
- package/dist/pages/SM-8.4/IdentityTenantPage.d.ts +0 -46
- package/dist/pages/SM-8.4/IdentityTenantPage.js +0 -173
- package/dist/pages/SM-8.4/IdentityUsersPage.d.ts +0 -90
- package/dist/pages/SM-8.4/IdentityUsersPage.js +0 -505
- package/dist/pages/SM-8.4/LoginPage.d.ts +0 -16
- package/dist/pages/SM-8.4/LoginPage.js +0 -50
- package/dist/pages/SM-8.4/ModelerCreatePage.d.ts +0 -142
- package/dist/pages/SM-8.4/ModelerCreatePage.js +0 -648
- package/dist/pages/SM-8.4/ModelerHomePage.d.ts +0 -35
- package/dist/pages/SM-8.4/ModelerHomePage.js +0 -139
- package/dist/pages/SM-8.4/NavigationPage.d.ts +0 -26
- package/dist/pages/SM-8.4/NavigationPage.js +0 -97
- package/dist/pages/SM-8.4/OperateHomePage.d.ts +0 -21
- package/dist/pages/SM-8.4/OperateHomePage.js +0 -63
- package/dist/pages/SM-8.4/OperateProcessInstancePage.d.ts +0 -23
- package/dist/pages/SM-8.4/OperateProcessInstancePage.js +0 -105
- package/dist/pages/SM-8.4/OperateProcessesPage.d.ts +0 -22
- package/dist/pages/SM-8.4/OperateProcessesPage.js +0 -90
- package/dist/pages/SM-8.4/OptimizeCollectionsPage.d.ts +0 -15
- package/dist/pages/SM-8.4/OptimizeCollectionsPage.js +0 -50
- package/dist/pages/SM-8.4/OptimizeDashboardPage.d.ts +0 -15
- package/dist/pages/SM-8.4/OptimizeDashboardPage.js +0 -59
- package/dist/pages/SM-8.4/OptimizeHomePage.d.ts +0 -17
- package/dist/pages/SM-8.4/OptimizeHomePage.js +0 -56
- package/dist/pages/SM-8.4/OptimizeReportPage.d.ts +0 -48
- package/dist/pages/SM-8.4/OptimizeReportPage.js +0 -157
- package/dist/pages/SM-8.4/SettingsPage.d.ts +0 -10
- package/dist/pages/SM-8.4/SettingsPage.js +0 -20
- package/dist/pages/SM-8.4/TaskDetailsPage.d.ts +0 -61
- package/dist/pages/SM-8.4/TaskDetailsPage.js +0 -175
- package/dist/pages/SM-8.4/TaskPanelPage.d.ts +0 -22
- package/dist/pages/SM-8.4/TaskPanelPage.js +0 -77
- package/dist/pages/SM-8.4/TaskProcessesPage.d.ts +0 -11
- package/dist/pages/SM-8.4/TaskProcessesPage.js +0 -31
- package/dist/pages/SM-8.4/UtilitiesPage.d.ts +0 -19
- package/dist/pages/SM-8.4/UtilitiesPage.js +0 -175
- package/dist/tests/8.4/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/connectors-user-flows.spec.js +0 -407
- package/dist/tests/8.4/console-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/console-user-flows.spec.js +0 -192
- package/dist/tests/8.4/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/hto-user-flows.spec.js +0 -186
- package/dist/tests/8.4/login.spec.d.ts +0 -1
- package/dist/tests/8.4/login.spec.js +0 -27
- package/dist/tests/8.4/navigation.spec.d.ts +0 -1
- package/dist/tests/8.4/navigation.spec.js +0 -62
- package/dist/tests/8.4/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/optimize-user-flows.spec.js +0 -266
- package/dist/tests/8.4/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/rba-enabled-user-flows.spec.js +0 -306
- package/dist/tests/8.4/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/8.4/smoke-tests.spec.js +0 -174
- package/dist/tests/8.4/test-setup.spec.d.ts +0 -1
- package/dist/tests/8.4/test-setup.spec.js +0 -61
- package/dist/tests/8.4/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/8.4/web-modeler-user-flows.spec.js +0 -611
- package/dist/tests/SM-8.4/connectors-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/connectors-user-flows.spec.js +0 -224
- package/dist/tests/SM-8.4/hto-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/hto-user-flows.spec.js +0 -308
- package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.js +0 -537
- package/dist/tests/SM-8.4/optimize-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/optimize-user-flows.spec.js +0 -182
- package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.js +0 -250
- package/dist/tests/SM-8.4/smoke-tests.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/smoke-tests.spec.js +0 -148
- package/dist/tests/SM-8.4/test-setup.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/test-setup.spec.js +0 -105
- package/dist/tests/SM-8.4/web-modeler-user-flows.spec.d.ts +0 -1
- package/dist/tests/SM-8.4/web-modeler-user-flows.spec.js +0 -125
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskDetailsPage = void 0;
|
|
4
|
-
const sleep_1 = require("../../utils/sleep");
|
|
5
|
-
function cardinalToOrdinal(numberValue) {
|
|
6
|
-
const realOrderIndex = numberValue.toString();
|
|
7
|
-
if (['11', '12', '13'].includes(realOrderIndex.slice(-2))) {
|
|
8
|
-
return `${realOrderIndex}th`;
|
|
9
|
-
}
|
|
10
|
-
switch (realOrderIndex.slice(-1)) {
|
|
11
|
-
case '1':
|
|
12
|
-
return `${realOrderIndex}st`;
|
|
13
|
-
case '2':
|
|
14
|
-
return `${realOrderIndex}nd`;
|
|
15
|
-
case '3':
|
|
16
|
-
return `${realOrderIndex}rd`;
|
|
17
|
-
default:
|
|
18
|
-
return `${realOrderIndex}th`;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
class TaskDetailsPage {
|
|
22
|
-
page;
|
|
23
|
-
assignToMeButton;
|
|
24
|
-
completeButton;
|
|
25
|
-
unassignButton;
|
|
26
|
-
assignee;
|
|
27
|
-
completeTaskButton;
|
|
28
|
-
addVariableButton;
|
|
29
|
-
detailsPanel;
|
|
30
|
-
detailsHeader;
|
|
31
|
-
pendingTaskDescription;
|
|
32
|
-
pickATaskHeader;
|
|
33
|
-
emptyTaskMessage;
|
|
34
|
-
nameInput;
|
|
35
|
-
addressInput;
|
|
36
|
-
ageInput;
|
|
37
|
-
variablesTable;
|
|
38
|
-
nameColumnHeader;
|
|
39
|
-
valueColumnHeader;
|
|
40
|
-
form;
|
|
41
|
-
numberInput;
|
|
42
|
-
incrementButton;
|
|
43
|
-
decrementButton;
|
|
44
|
-
dateInput;
|
|
45
|
-
timeInput;
|
|
46
|
-
checkbox;
|
|
47
|
-
selectDropdown;
|
|
48
|
-
tagList;
|
|
49
|
-
detailsInfo;
|
|
50
|
-
textInput;
|
|
51
|
-
textBox;
|
|
52
|
-
assignedToMeText;
|
|
53
|
-
constructor(page) {
|
|
54
|
-
this.page = page;
|
|
55
|
-
this.assignToMeButton = page.getByRole('button', { name: 'Assign to me' });
|
|
56
|
-
this.completeButton = page.getByRole('button', { name: 'Complete' });
|
|
57
|
-
this.unassignButton = page.getByRole('button', { name: 'Unassign' });
|
|
58
|
-
this.assignee = page.getByTestId('assignee');
|
|
59
|
-
this.completeTaskButton = page.getByRole('button', { name: 'Complete Task' });
|
|
60
|
-
this.addVariableButton = page.getByRole('button', { name: 'Add Variable' });
|
|
61
|
-
this.detailsPanel = this.page.getByRole('complementary', {
|
|
62
|
-
name: 'Task details right panel',
|
|
63
|
-
});
|
|
64
|
-
this.detailsHeader = page.getByTitle('Task details header');
|
|
65
|
-
this.pendingTaskDescription = page.getByText('Pending task');
|
|
66
|
-
this.pickATaskHeader = page.getByRole('heading', {
|
|
67
|
-
name: 'Pick a task to work on',
|
|
68
|
-
});
|
|
69
|
-
this.emptyTaskMessage = page.getByRole('heading', {
|
|
70
|
-
name: /task has no variables/i,
|
|
71
|
-
});
|
|
72
|
-
this.nameInput = page.getByLabel('Full Name');
|
|
73
|
-
this.addressInput = page.getByLabel('Address*');
|
|
74
|
-
this.ageInput = page.getByLabel('Age');
|
|
75
|
-
this.variablesTable = page.getByTestId('variables-table');
|
|
76
|
-
this.nameColumnHeader = this.variablesTable.getByRole('columnheader', {
|
|
77
|
-
name: 'Name',
|
|
78
|
-
});
|
|
79
|
-
this.valueColumnHeader = this.variablesTable.getByRole('columnheader', {
|
|
80
|
-
name: 'Value',
|
|
81
|
-
});
|
|
82
|
-
this.form = page.getByTestId('embedded-form');
|
|
83
|
-
this.numberInput = this.form.getByLabel('Count');
|
|
84
|
-
this.incrementButton = page.getByRole('button', { name: 'Increment' });
|
|
85
|
-
this.decrementButton = page.getByRole('button', { name: 'Decrement' });
|
|
86
|
-
this.dateInput = page.getByPlaceholder('mm/dd/yyyy');
|
|
87
|
-
this.timeInput = page.getByPlaceholder('hh:mm ?m');
|
|
88
|
-
this.checkbox = this.form.getByLabel('Agree');
|
|
89
|
-
this.selectDropdown = this.form.getByText('Select').last();
|
|
90
|
-
this.tagList = page.getByPlaceholder('Search');
|
|
91
|
-
this.detailsInfo = page.getByTestId('details-info');
|
|
92
|
-
this.textInput = page.locator('[class="fjs-input"]');
|
|
93
|
-
this.textBox = this.page.getByLabel('Text Box');
|
|
94
|
-
this.assignedToMeText = page
|
|
95
|
-
.getByTestId('assignee')
|
|
96
|
-
.getByText('Assigned to me');
|
|
97
|
-
}
|
|
98
|
-
async clickAssignToMeButton() {
|
|
99
|
-
await this.assignToMeButton.click();
|
|
100
|
-
}
|
|
101
|
-
async clickUnassignButton() {
|
|
102
|
-
await this.unassignButton.click();
|
|
103
|
-
}
|
|
104
|
-
async clickCompleteTaskButton() {
|
|
105
|
-
await this.completeTaskButton.click();
|
|
106
|
-
}
|
|
107
|
-
async clickAddVariableButton() {
|
|
108
|
-
await this.addVariableButton.click();
|
|
109
|
-
}
|
|
110
|
-
async replaceExistingVariableValue(values) {
|
|
111
|
-
const { name, value } = values;
|
|
112
|
-
await this.page.getByTitle(name).clear();
|
|
113
|
-
await this.page.getByTitle(name).fill(value);
|
|
114
|
-
}
|
|
115
|
-
getNthVariableNameInput(nth) {
|
|
116
|
-
return this.page.getByRole('textbox', {
|
|
117
|
-
name: `${cardinalToOrdinal(nth)} variable name`,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
getNthVariableValueInput(nth) {
|
|
121
|
-
return this.page.getByRole('textbox', {
|
|
122
|
-
name: `${cardinalToOrdinal(nth)} variable value`,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
async addVariable(payload) {
|
|
126
|
-
const { name, value } = payload;
|
|
127
|
-
this.clickAddVariableButton();
|
|
128
|
-
await this.getNthVariableNameInput(1).fill(name);
|
|
129
|
-
await this.getNthVariableValueInput(1).fill(value);
|
|
130
|
-
}
|
|
131
|
-
async fillNumber(number) {
|
|
132
|
-
await this.numberInput.fill(number);
|
|
133
|
-
}
|
|
134
|
-
async clickIncrementButton() {
|
|
135
|
-
await this.incrementButton.click();
|
|
136
|
-
}
|
|
137
|
-
async clickDecrementButton() {
|
|
138
|
-
await this.decrementButton.click();
|
|
139
|
-
}
|
|
140
|
-
async fillDate(date) {
|
|
141
|
-
await this.dateInput.click();
|
|
142
|
-
await this.dateInput.fill(date);
|
|
143
|
-
await this.dateInput.press('Enter');
|
|
144
|
-
}
|
|
145
|
-
async enterTime(time) {
|
|
146
|
-
await this.timeInput.click();
|
|
147
|
-
await this.page.getByText(time).click();
|
|
148
|
-
}
|
|
149
|
-
async checkCheckbox() {
|
|
150
|
-
await this.checkbox.check();
|
|
151
|
-
}
|
|
152
|
-
async selectDropdownValue(value) {
|
|
153
|
-
await this.selectDropdown.click();
|
|
154
|
-
await this.page.getByText(value).click();
|
|
155
|
-
}
|
|
156
|
-
async clickRadioButton(radioBtnLabel) {
|
|
157
|
-
await this.page.getByText(radioBtnLabel).click();
|
|
158
|
-
}
|
|
159
|
-
async checkChecklistBox(label) {
|
|
160
|
-
await this.page.getByLabel(label).check();
|
|
161
|
-
}
|
|
162
|
-
async enterTwoValuesInTagList(value1, value2) {
|
|
163
|
-
await this.tagList.click();
|
|
164
|
-
await this.page.getByText(value1).click();
|
|
165
|
-
await this.page.getByText(value2, { exact: true }).click();
|
|
166
|
-
}
|
|
167
|
-
async clickTextInput() {
|
|
168
|
-
const maxRetries = 10;
|
|
169
|
-
let attempts = 0;
|
|
170
|
-
while (attempts < maxRetries) {
|
|
171
|
-
try {
|
|
172
|
-
await this.textInput.click({ timeout: 90000 });
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
catch (error) {
|
|
176
|
-
attempts += 1;
|
|
177
|
-
if (attempts < maxRetries) {
|
|
178
|
-
console.warn(`Attempt ${attempts} failed. Reloading page and retrying...`);
|
|
179
|
-
await (0, sleep_1.sleep)(10000);
|
|
180
|
-
await this.page.reload();
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
throw new Error(`Failed to click text input after ${maxRetries} attempts`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
async fillTextInput(value) {
|
|
189
|
-
await this.textInput.fill(value, { timeout: 60000 });
|
|
190
|
-
}
|
|
191
|
-
async fillTextBox(text) {
|
|
192
|
-
await this.textBox.fill(text);
|
|
193
|
-
}
|
|
194
|
-
async fillName(nameInput) {
|
|
195
|
-
await this.nameInput.fill(nameInput);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
exports.TaskDetailsPage = TaskDetailsPage;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class TaskPanelPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly availableTasks: Locator;
|
|
5
|
-
readonly filterOptions: Locator;
|
|
6
|
-
readonly filterComboBox: Locator;
|
|
7
|
-
readonly taskListPageBanner: Locator;
|
|
8
|
-
readonly processesPageTab: Locator;
|
|
9
|
-
readonly tasksTab: Locator;
|
|
10
|
-
constructor(page: Page);
|
|
11
|
-
openTask(name: string): Promise<void>;
|
|
12
|
-
filterBy(option: 'All open' | 'Unassigned' | 'Assigned to me' | 'Completed'): Promise<void>;
|
|
13
|
-
taskCount(name: string): Promise<number>;
|
|
14
|
-
clickTasksTab(): Promise<void>;
|
|
15
|
-
scrollToLastTask(name: string): Promise<void>;
|
|
16
|
-
scrollToFirstTask(name: string): Promise<void>;
|
|
17
|
-
clickProcessesTab(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
export { TaskPanelPage };
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskPanelPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
class TaskPanelPage {
|
|
7
|
-
page;
|
|
8
|
-
availableTasks;
|
|
9
|
-
filterOptions;
|
|
10
|
-
filterComboBox;
|
|
11
|
-
taskListPageBanner;
|
|
12
|
-
processesPageTab;
|
|
13
|
-
tasksTab;
|
|
14
|
-
constructor(page) {
|
|
15
|
-
this.page = page;
|
|
16
|
-
this.availableTasks = page.getByTitle('Available tasks');
|
|
17
|
-
this.filterOptions = page.getByText('Filter optionsAll openOpen menu');
|
|
18
|
-
this.filterComboBox = page.getByRole('combobox', { name: 'Filter options' });
|
|
19
|
-
this.taskListPageBanner = page.getByRole('link', {
|
|
20
|
-
name: 'Camunda logo Tasklist',
|
|
21
|
-
});
|
|
22
|
-
this.processesPageTab = page.getByRole('link', { name: 'Processes' });
|
|
23
|
-
this.tasksTab = page.getByRole('link', { name: 'Tasks' });
|
|
24
|
-
}
|
|
25
|
-
async openTask(name) {
|
|
26
|
-
await this.availableTasks
|
|
27
|
-
.getByText(name, { exact: true })
|
|
28
|
-
.nth(0)
|
|
29
|
-
.click({ timeout: 45000 });
|
|
30
|
-
}
|
|
31
|
-
async filterBy(option) {
|
|
32
|
-
try {
|
|
33
|
-
await this.filterOptions.click({ timeout: 60000 });
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
await this.filterComboBox.click({ timeout: 60000 });
|
|
37
|
-
}
|
|
38
|
-
await (0, test_1.expect)(this.page.getByRole('option', { name: option }).getByText(option)).toBeVisible({ timeout: 120000 });
|
|
39
|
-
await this.page
|
|
40
|
-
.getByRole('option', { name: option })
|
|
41
|
-
.getByText(option)
|
|
42
|
-
.click({ timeout: 120000 });
|
|
43
|
-
}
|
|
44
|
-
async taskCount(name) {
|
|
45
|
-
await (0, sleep_1.sleep)(20000);
|
|
46
|
-
return this.availableTasks.getByText(name, { exact: true }).count();
|
|
47
|
-
}
|
|
48
|
-
async clickTasksTab() {
|
|
49
|
-
await this.tasksTab.click();
|
|
50
|
-
}
|
|
51
|
-
async scrollToLastTask(name) {
|
|
52
|
-
await this.page.getByText(name).last().scrollIntoViewIfNeeded();
|
|
53
|
-
}
|
|
54
|
-
async scrollToFirstTask(name) {
|
|
55
|
-
await this.page.getByText(name).first().scrollIntoViewIfNeeded();
|
|
56
|
-
}
|
|
57
|
-
async clickProcessesTab() {
|
|
58
|
-
await this.processesPageTab.click();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.TaskPanelPage = TaskPanelPage;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class TaskProcessesPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly popupContinueButton: Locator;
|
|
5
|
-
readonly popup: Locator;
|
|
6
|
-
readonly processes: Locator;
|
|
7
|
-
constructor(page: Page);
|
|
8
|
-
clickpopupContinueButton(): Promise<void>;
|
|
9
|
-
startProcess(name: string): Promise<void>;
|
|
10
|
-
}
|
|
11
|
-
export { TaskProcessesPage };
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskProcessesPage = void 0;
|
|
4
|
-
class TaskProcessesPage {
|
|
5
|
-
page;
|
|
6
|
-
popupContinueButton;
|
|
7
|
-
popup;
|
|
8
|
-
processes;
|
|
9
|
-
constructor(page) {
|
|
10
|
-
this.page = page;
|
|
11
|
-
this.popupContinueButton = page.getByRole('button', { name: 'Continue' });
|
|
12
|
-
this.popup = page.getByLabel('Start your process on demand');
|
|
13
|
-
this.processes = page.locator('[data-testid="process-tile"]');
|
|
14
|
-
}
|
|
15
|
-
async clickpopupContinueButton() {
|
|
16
|
-
try {
|
|
17
|
-
await this.popupContinueButton.click({ timeout: 30000 });
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
console.log('Popup not present');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async startProcess(name) {
|
|
24
|
-
await this.processes
|
|
25
|
-
.filter({ hasText: name })
|
|
26
|
-
.nth(0)
|
|
27
|
-
.getByRole('button', { name: 'Start process' })
|
|
28
|
-
.click({ timeout: 60000 });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.TaskProcessesPage = TaskProcessesPage;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
import { ModelerCreatePage } from './ModelerCreatePage';
|
|
3
|
-
import { ModelerHomePage } from './ModelerHomePage';
|
|
4
|
-
import { MailSlurp } from 'mailslurp-client';
|
|
5
|
-
import { HomePage } from './HomePage';
|
|
6
|
-
import { ClusterPage } from './ClusterPage';
|
|
7
|
-
import { ClusterDetailsPage } from './ClusterDetailsPage';
|
|
8
|
-
import { AppsPage } from './AppsPage';
|
|
9
|
-
import { OperateProcessInstancePage } from './OperateProcessInstancePage';
|
|
10
|
-
import { OperateProcessesPage } from './OperateProcessesPage';
|
|
11
|
-
import { ConnectorSettingsPage } from './ConnectorSettingsPage';
|
|
12
|
-
import { LoginPage } from '../8.4/LoginPage';
|
|
13
|
-
import { TaskDetailsPage } from '../8.4/TaskDetailsPage';
|
|
14
|
-
import { TaskPanelPage } from '../8.4/TaskPanelPage';
|
|
15
|
-
import { OptimizeReportPage } from '../8.4/OptimizeReportPage';
|
|
16
|
-
import { ConnectorMarketplacePage } from './ConnectorMarketplacePage';
|
|
17
|
-
import { ConnectorTemplatePage } from './ConnectorTemplatePage';
|
|
18
|
-
export declare function loginWithRetry(page: Page, loginPage: LoginPage, timeout: number, maxRetries?: number): Promise<void>;
|
|
19
|
-
export declare function modelRestConnector(modelerCreatePage: ModelerCreatePage, connectorSettingsPage: ConnectorSettingsPage, processName: string, url: string, auth: string, resultExpression: string, resultVariable?: string, basicAuthCredentials?: {
|
|
20
|
-
username: string;
|
|
21
|
-
password: string;
|
|
22
|
-
}): Promise<void>;
|
|
23
|
-
export declare function assertLocatorVisibleWithRetry(page: Page | OperateProcessInstancePage | OperateProcessesPage | ModelerHomePage | OptimizeReportPage, locator: Locator, text: string, timeout?: number, maxRetries?: number): Promise<void>;
|
|
24
|
-
export declare function assertPageTextWithRetry(page: Page, text: string, notVisible?: boolean, timeout?: number, maxRetries?: number): Promise<void>;
|
|
25
|
-
export declare function completeTaskWithRetry(taskPanelPage: TaskPanelPage, taskDetailsPage: TaskDetailsPage, taskName: string, maxRetries?: number): Promise<void>;
|
|
26
|
-
export declare function runProcess(clusterName: string, page: Page, modelerHomePage: ModelerHomePage, modelerCreatePage: ModelerCreatePage, processName: string, processId?: string, rbaEnabled?: boolean): Promise<void>;
|
|
27
|
-
export declare function runMultipleProcesses(clusterName: string, page: Page, modelerHomePage: ModelerHomePage, modelerCreatePage: ModelerCreatePage, numberOfProcesses: number, processName: string, processId?: string, rbaEnabled?: boolean): Promise<void>;
|
|
28
|
-
export declare function disableRBAForNewTab(clusterName: string, page: Page, appsPage: AppsPage): Promise<void>;
|
|
29
|
-
export declare function disableRBA(clusterName: string, homePage: HomePage, clusterPage: ClusterPage, clusterDetailsPage: ClusterDetailsPage, appsPage: AppsPage): Promise<void>;
|
|
30
|
-
export declare function enableRBA(clusterName: string, homePage: HomePage, clusterPage: ClusterPage, clusterDetailsPage: ClusterDetailsPage, appsPage: AppsPage): Promise<void>;
|
|
31
|
-
export declare function clickInvitationLinkInEmail(page: Page, id: string, mailSlurp: MailSlurp): Promise<void>;
|
|
32
|
-
export declare function assertTestUsesCorrectOrganization(page: Page): Promise<void>;
|
|
33
|
-
export declare function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage: ModelerCreatePage, modelerHomePage: ModelerHomePage, processName: string, page: Page, connectorMarketplacePage: ConnectorMarketplacePage, clusterName: string, connectorTemplatePage: ConnectorTemplatePage): Promise<void>;
|
|
@@ -1,312 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.modelAndRunConnectorsTimerEventDiagram = exports.assertTestUsesCorrectOrganization = exports.clickInvitationLinkInEmail = exports.enableRBA = exports.disableRBA = exports.disableRBAForNewTab = exports.runMultipleProcesses = exports.runProcess = exports.completeTaskWithRetry = exports.assertPageTextWithRetry = exports.assertLocatorVisibleWithRetry = exports.modelRestConnector = exports.loginWithRetry = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const HomePage_1 = require("./HomePage");
|
|
6
|
-
const ClusterPage_1 = require("./ClusterPage");
|
|
7
|
-
const ClusterDetailsPage_1 = require("./ClusterDetailsPage");
|
|
8
|
-
const sleep_1 = require("../../utils/sleep");
|
|
9
|
-
const randomSleep_1 = require("../../utils/randomSleep");
|
|
10
|
-
const fileUpload_1 = require("../../utils/fileUpload");
|
|
11
|
-
async function loginWithRetry(page, loginPage, timeout, maxRetries = 3) {
|
|
12
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
13
|
-
try {
|
|
14
|
-
await page.goto('/');
|
|
15
|
-
await (0, sleep_1.sleep)(timeout);
|
|
16
|
-
await loginPage.login();
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
catch (error) {
|
|
20
|
-
if (attempt < maxRetries - 1) {
|
|
21
|
-
console.warn(`Attempt ${attempt + 1} failed for logging in. Retrying...`);
|
|
22
|
-
await (0, randomSleep_1.randomSleep)(10000, 20000);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
console.error(error);
|
|
26
|
-
throw new Error(`Login failed after ${maxRetries} attempts`);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.loginWithRetry = loginWithRetry;
|
|
32
|
-
async function modelRestConnector(modelerCreatePage, connectorSettingsPage, processName, url, auth, resultExpression, resultVariable = '', basicAuthCredentials = {
|
|
33
|
-
username: '',
|
|
34
|
-
password: '',
|
|
35
|
-
}) {
|
|
36
|
-
await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
|
|
37
|
-
timeout: 120000,
|
|
38
|
-
});
|
|
39
|
-
await modelerCreatePage.enterDiagramName(processName);
|
|
40
|
-
await (0, sleep_1.sleep)(10000);
|
|
41
|
-
await modelerCreatePage.clickAppendElementButton();
|
|
42
|
-
await modelerCreatePage.clickAppendTaskButton();
|
|
43
|
-
await modelerCreatePage.clickChangeTypeButton();
|
|
44
|
-
await modelerCreatePage.clickRestConnectorOption();
|
|
45
|
-
if (auth == 'bearer') {
|
|
46
|
-
await connectorSettingsPage.selectAuthenticationType('bearer');
|
|
47
|
-
await (0, test_1.expect)(connectorSettingsPage.bearerTokenInput).toBeVisible({
|
|
48
|
-
timeout: 60000,
|
|
49
|
-
});
|
|
50
|
-
await connectorSettingsPage.clickBearerTokenInput();
|
|
51
|
-
await connectorSettingsPage.fillBearerTokenInput('thisisabearertoken');
|
|
52
|
-
await (0, test_1.expect)(connectorSettingsPage.methodTypeDropdown).toBeVisible({
|
|
53
|
-
timeout: 30000,
|
|
54
|
-
});
|
|
55
|
-
await connectorSettingsPage.selectMethodType('POST');
|
|
56
|
-
}
|
|
57
|
-
else if (auth == 'basic') {
|
|
58
|
-
await connectorSettingsPage.selectAuthenticationType('basic');
|
|
59
|
-
await (0, test_1.expect)(connectorSettingsPage.usernameInput).toBeVisible({
|
|
60
|
-
timeout: 60000,
|
|
61
|
-
});
|
|
62
|
-
await connectorSettingsPage.clickUsernameInput();
|
|
63
|
-
(0, test_1.expect)(basicAuthCredentials['username'].length).toBeGreaterThan(0);
|
|
64
|
-
(0, test_1.expect)(basicAuthCredentials['password'].length).toBeGreaterThan(0);
|
|
65
|
-
await connectorSettingsPage.fillUsernameInput(basicAuthCredentials['username']);
|
|
66
|
-
await connectorSettingsPage.clickPasswordInput();
|
|
67
|
-
await connectorSettingsPage.fillPasswordInput(basicAuthCredentials['password']);
|
|
68
|
-
await connectorSettingsPage.selectMethodType('POST');
|
|
69
|
-
}
|
|
70
|
-
await connectorSettingsPage.clickUrlInput();
|
|
71
|
-
await connectorSettingsPage.fillUrlInput(url);
|
|
72
|
-
if (resultVariable.length > 0) {
|
|
73
|
-
await (0, test_1.expect)(connectorSettingsPage.resultVariableInput).toBeVisible({
|
|
74
|
-
timeout: 60000,
|
|
75
|
-
});
|
|
76
|
-
await connectorSettingsPage.clickResultVariableInput();
|
|
77
|
-
await connectorSettingsPage.fillResultVariableInput('result');
|
|
78
|
-
}
|
|
79
|
-
await connectorSettingsPage.clickResultExpressionInput();
|
|
80
|
-
await connectorSettingsPage.fillResultExpressionInput(resultExpression);
|
|
81
|
-
await modelerCreatePage.clickAppendElementButton();
|
|
82
|
-
await modelerCreatePage.clickAppendEndEventButton();
|
|
83
|
-
await (0, sleep_1.sleep)(20000);
|
|
84
|
-
}
|
|
85
|
-
exports.modelRestConnector = modelRestConnector;
|
|
86
|
-
async function assertLocatorVisibleWithRetry(page, locator, text, timeout = 120000, maxRetries = 3) {
|
|
87
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
88
|
-
try {
|
|
89
|
-
await page.reload();
|
|
90
|
-
await (0, test_1.expect)(locator).toBeVisible({
|
|
91
|
-
timeout: timeout,
|
|
92
|
-
});
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
catch (error) {
|
|
96
|
-
if (attempt < maxRetries - 1) {
|
|
97
|
-
console.warn(`Attempt ${attempt + 1} failed for asserting ${text}. Retrying...`);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
throw new Error(`Assertion of ${text} failed after ${maxRetries} attempts`);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.assertLocatorVisibleWithRetry = assertLocatorVisibleWithRetry;
|
|
106
|
-
async function assertPageTextWithRetry(page, text, notVisible, timeout = 120000, maxRetries = 3) {
|
|
107
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
108
|
-
try {
|
|
109
|
-
await page.reload();
|
|
110
|
-
if (notVisible == true) {
|
|
111
|
-
await (0, sleep_1.sleep)(10000);
|
|
112
|
-
await (0, test_1.expect)(page.getByText(text, { exact: true }).first()).not.toBeVisible({
|
|
113
|
-
timeout: timeout,
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
await (0, test_1.expect)(page.getByText(text, { exact: true }).first()).toBeVisible({
|
|
118
|
-
timeout: timeout,
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
if (attempt < maxRetries - 1) {
|
|
125
|
-
console.warn(`Attempt ${attempt + 1} failed for asserting ${text}. Retrying...`);
|
|
126
|
-
}
|
|
127
|
-
else {
|
|
128
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts`);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
exports.assertPageTextWithRetry = assertPageTextWithRetry;
|
|
134
|
-
async function completeTaskWithRetry(taskPanelPage, taskDetailsPage, taskName, maxRetries = 3) {
|
|
135
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
136
|
-
try {
|
|
137
|
-
await taskPanelPage.openTask(taskName);
|
|
138
|
-
await (0, sleep_1.sleep)(2000);
|
|
139
|
-
if (!(await taskDetailsPage.assignedToMeText.isVisible())) {
|
|
140
|
-
await taskDetailsPage.clickAssignToMeButton();
|
|
141
|
-
}
|
|
142
|
-
await taskDetailsPage.clickCompleteTaskButton();
|
|
143
|
-
await (0, test_1.expect)(taskPanelPage.availableTasks.getByText(taskName, { exact: true }).first()).not.toBeVisible({ timeout: 5000 });
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
if (attempt < maxRetries - 1) {
|
|
148
|
-
console.warn(`Attempt ${attempt + 1} failed for completing task ${taskName}. Retrying...`);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
console.error(error);
|
|
152
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts`);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
exports.completeTaskWithRetry = completeTaskWithRetry;
|
|
158
|
-
async function runProcess(clusterName, page, modelerHomePage, modelerCreatePage, processName, processId = '', rbaEnabled = false) {
|
|
159
|
-
await modelerHomePage.clickDiagramTypeDropdown();
|
|
160
|
-
await modelerHomePage.clickBpmnTemplateOption();
|
|
161
|
-
await modelerCreatePage.modelJobWorkerDiagram(processName, processId);
|
|
162
|
-
await modelerCreatePage.deployDiagram(clusterName, rbaEnabled);
|
|
163
|
-
await modelerCreatePage.runProcessInstance(clusterName);
|
|
164
|
-
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
165
|
-
timeout: 180000,
|
|
166
|
-
});
|
|
167
|
-
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeHidden({
|
|
168
|
-
timeout: 120000,
|
|
169
|
-
});
|
|
170
|
-
await modelerHomePage.clickProjectBreadcrumb();
|
|
171
|
-
}
|
|
172
|
-
exports.runProcess = runProcess;
|
|
173
|
-
async function runMultipleProcesses(clusterName, page, modelerHomePage, modelerCreatePage, numberOfProcesses, processName, processId = '', rbaEnabled = false) {
|
|
174
|
-
for (let i = 1; i <= numberOfProcesses; i++) {
|
|
175
|
-
await runProcess(clusterName, page, modelerHomePage, modelerCreatePage, processName + i, processId.length > 0 ? processId + i : processId, rbaEnabled);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
exports.runMultipleProcesses = runMultipleProcesses;
|
|
179
|
-
async function disableRBAForNewTab(clusterName, page, appsPage) {
|
|
180
|
-
await appsPage.clickCamundaApps();
|
|
181
|
-
await appsPage.clickConsoleLink();
|
|
182
|
-
const consoleTab = await page.waitForEvent('popup', { timeout: 60000 });
|
|
183
|
-
const homePage = new HomePage_1.HomePage(consoleTab);
|
|
184
|
-
const clusterDetailsPage = new ClusterDetailsPage_1.ClusterDetailsPage(consoleTab);
|
|
185
|
-
const clusterPage = new ClusterPage_1.ClusterPage(consoleTab);
|
|
186
|
-
await doDisableRBA(clusterName, homePage, clusterPage, clusterDetailsPage);
|
|
187
|
-
}
|
|
188
|
-
exports.disableRBAForNewTab = disableRBAForNewTab;
|
|
189
|
-
async function disableRBA(clusterName, homePage, clusterPage, clusterDetailsPage, appsPage) {
|
|
190
|
-
await appsPage.clickCamundaApps();
|
|
191
|
-
await appsPage.clickConsoleLink();
|
|
192
|
-
await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 60000 });
|
|
193
|
-
await homePage.clickClusters();
|
|
194
|
-
await clusterPage.clickClusterLink(clusterName);
|
|
195
|
-
await doDisableRBA(clusterName, homePage, clusterPage, clusterDetailsPage);
|
|
196
|
-
}
|
|
197
|
-
exports.disableRBA = disableRBA;
|
|
198
|
-
async function enableRBA(clusterName, homePage, clusterPage, clusterDetailsPage, appsPage) {
|
|
199
|
-
await appsPage.clickCamundaApps();
|
|
200
|
-
await appsPage.clickConsoleLink();
|
|
201
|
-
await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 120000 });
|
|
202
|
-
await homePage.clickClusters();
|
|
203
|
-
await clusterPage.clickClusterLink(clusterName);
|
|
204
|
-
await (0, test_1.expect)(clusterDetailsPage.settingsTab).toBeVisible({
|
|
205
|
-
timeout: 90000,
|
|
206
|
-
});
|
|
207
|
-
await clusterDetailsPage.clickSettingsTab();
|
|
208
|
-
await clusterDetailsPage.enableRBA();
|
|
209
|
-
await homePage.clickClusters();
|
|
210
|
-
await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
|
|
211
|
-
await clusterPage.clickClusterLink(clusterName);
|
|
212
|
-
await clusterDetailsPage.assertComponentsHealth();
|
|
213
|
-
await clusterDetailsPage.reload();
|
|
214
|
-
}
|
|
215
|
-
exports.enableRBA = enableRBA;
|
|
216
|
-
async function doDisableRBA(clusterName, homePage, clusterPage, clusterDetailsPage) {
|
|
217
|
-
await (0, test_1.expect)(clusterDetailsPage.settingsTab).toBeVisible({
|
|
218
|
-
timeout: 90000,
|
|
219
|
-
});
|
|
220
|
-
await clusterDetailsPage.clickSettingsTab();
|
|
221
|
-
await clusterDetailsPage.disableRBA();
|
|
222
|
-
await homePage.clickClusters();
|
|
223
|
-
await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
|
|
224
|
-
await clusterPage.clickClusterLink(clusterName);
|
|
225
|
-
await clusterDetailsPage.assertComponentsHealth();
|
|
226
|
-
await clusterDetailsPage.reload();
|
|
227
|
-
}
|
|
228
|
-
async function clickInvitationLinkInEmail(page, id, mailSlurp) {
|
|
229
|
-
const email = await mailSlurp.waitForLatestEmail(id, 120000);
|
|
230
|
-
if (email && email.body) {
|
|
231
|
-
const confirmationLinkMatch = email.body.match(/href="([^"]*)/);
|
|
232
|
-
if (confirmationLinkMatch) {
|
|
233
|
-
await page.goto(confirmationLinkMatch[1]);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
throw new Error('Confirmation link not found in email body.');
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
throw new Error('Email or email body is null or undefined.');
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
exports.clickInvitationLinkInEmail = clickInvitationLinkInEmail;
|
|
244
|
-
async function assertTestUsesCorrectOrganization(page) {
|
|
245
|
-
const homePage = new HomePage_1.HomePage(page);
|
|
246
|
-
await (0, test_1.expect)(homePage.openOrganizationButton).toBeVisible({ timeout: 90000 });
|
|
247
|
-
if (page.url().includes('modeler')) {
|
|
248
|
-
await (0, test_1.expect)(homePage.modelerBanner).toBeVisible({ timeout: 30000 });
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
await (0, test_1.expect)(homePage.consoleBanner).toBeVisible({ timeout: 30000 });
|
|
252
|
-
}
|
|
253
|
-
try {
|
|
254
|
-
await (0, test_1.expect)(page.url()).toContain(process.env.ORG_ID);
|
|
255
|
-
}
|
|
256
|
-
catch (error) {
|
|
257
|
-
// If the first check fails, check by org name
|
|
258
|
-
try {
|
|
259
|
-
await homePage.clickOpenOrganizationButton();
|
|
260
|
-
await page
|
|
261
|
-
.getByRole('treeitem', { name: process.env.ORG_NAME, exact: true })
|
|
262
|
-
.click({ timeout: 30000 });
|
|
263
|
-
}
|
|
264
|
-
catch (reloadError) {
|
|
265
|
-
await page
|
|
266
|
-
.getByRole('button', { name: process.env.ORG_NAME })
|
|
267
|
-
.click({ timeout: 30000 });
|
|
268
|
-
}
|
|
269
|
-
await (0, test_1.expect)(page
|
|
270
|
-
.getByRole('banner')
|
|
271
|
-
.getByTitle(process.env.ORG_NAME, { exact: true })
|
|
272
|
-
.first()).toBeVisible({
|
|
273
|
-
timeout: 30000,
|
|
274
|
-
});
|
|
275
|
-
await (0, test_1.expect)(page.url()).toContain(process.env.ORG_ID);
|
|
276
|
-
await (0, sleep_1.sleep)(5000);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
exports.assertTestUsesCorrectOrganization = assertTestUsesCorrectOrganization;
|
|
280
|
-
async function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, clusterName, connectorTemplatePage) {
|
|
281
|
-
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
282
|
-
await modelerHomePage.clickDiagramTypeDropdown();
|
|
283
|
-
await modelerHomePage.clickUploadFilesButton();
|
|
284
|
-
await (0, fileUpload_1.uploadFile)(page, 'Rest Connector Timer Event.bpmn');
|
|
285
|
-
await modelerHomePage.clickProcessDiagram('Rest Connector Timer Event');
|
|
286
|
-
await modelerCreatePage.clickDiagramBreadcrumb();
|
|
287
|
-
await modelerCreatePage.clickEditDiagramNameButton();
|
|
288
|
-
await modelerCreatePage.enterDiagramName(processName);
|
|
289
|
-
await modelerCreatePage.clickEighthPlacedElement();
|
|
290
|
-
await modelerCreatePage.clickChangeTypeButton();
|
|
291
|
-
await (0, test_1.expect)(modelerCreatePage.marketPlaceButton).toBeVisible({
|
|
292
|
-
timeout: 120000,
|
|
293
|
-
});
|
|
294
|
-
await modelerCreatePage.clickMarketPlaceButton();
|
|
295
|
-
await connectorMarketplacePage.clickSearchForConnectorTextbox();
|
|
296
|
-
await connectorMarketplacePage.fillSearchForConnectorTextbox('REST Connector');
|
|
297
|
-
await (0, sleep_1.sleep)(10000);
|
|
298
|
-
await (0, test_1.expect)(page.getByText('REST ConnectorBy CamundaConnect, interact, and synchronize processes')).toBeVisible({
|
|
299
|
-
timeout: 60000,
|
|
300
|
-
});
|
|
301
|
-
await connectorMarketplacePage.downloadConnectorToProject();
|
|
302
|
-
await modelerHomePage.clickProjectBreadcrumb();
|
|
303
|
-
await modelerHomePage.clickProcessDiagram('REST Outbound Connector');
|
|
304
|
-
await connectorTemplatePage.publishConnector();
|
|
305
|
-
await modelerHomePage.clickProjectBreadcrumb();
|
|
306
|
-
await modelerHomePage.clickProcessDiagram(processName);
|
|
307
|
-
await (0, sleep_1.sleep)(5000);
|
|
308
|
-
await page.reload();
|
|
309
|
-
await (0, sleep_1.sleep)(5000);
|
|
310
|
-
await modelerCreatePage.runProcessInstance(clusterName);
|
|
311
|
-
}
|
|
312
|
-
exports.modelAndRunConnectorsTimerEventDiagram = modelAndRunConnectorsTimerEventDiagram;
|