@camunda/e2e-test-suite 0.0.714 → 0.0.716
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.9/ModelerCreatePage.d.ts +3 -1
- package/dist/pages/8.9/ModelerCreatePage.js +13 -3
- package/dist/tests/8.9/web-modeler-user-flows.spec.js +42 -37
- 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,219 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskDetailsPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
const sleep_1 = require("../../utils/sleep");
|
|
6
|
-
function cardinalToOrdinal(numberValue) {
|
|
7
|
-
const realOrderIndex = numberValue.toString();
|
|
8
|
-
if (['11', '12', '13'].includes(realOrderIndex.slice(-2))) {
|
|
9
|
-
return `${realOrderIndex}th`;
|
|
10
|
-
}
|
|
11
|
-
switch (realOrderIndex.slice(-1)) {
|
|
12
|
-
case '1':
|
|
13
|
-
return `${realOrderIndex}st`;
|
|
14
|
-
case '2':
|
|
15
|
-
return `${realOrderIndex}nd`;
|
|
16
|
-
case '3':
|
|
17
|
-
return `${realOrderIndex}rd`;
|
|
18
|
-
default:
|
|
19
|
-
return `${realOrderIndex}th`;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
class TaskDetailsPage {
|
|
23
|
-
page;
|
|
24
|
-
assignToMeButton;
|
|
25
|
-
completeButton;
|
|
26
|
-
unassignButton;
|
|
27
|
-
assignee;
|
|
28
|
-
completeTaskButton;
|
|
29
|
-
addVariableButton;
|
|
30
|
-
detailsPanel;
|
|
31
|
-
detailsHeader;
|
|
32
|
-
pendingTaskDescription;
|
|
33
|
-
pickATaskHeader;
|
|
34
|
-
emptyTaskMessage;
|
|
35
|
-
nameInput;
|
|
36
|
-
addressInput;
|
|
37
|
-
ageInput;
|
|
38
|
-
variablesTable;
|
|
39
|
-
nameColumnHeader;
|
|
40
|
-
valueColumnHeader;
|
|
41
|
-
form;
|
|
42
|
-
numberInput;
|
|
43
|
-
incrementButton;
|
|
44
|
-
decrementButton;
|
|
45
|
-
dateInput;
|
|
46
|
-
timeInput;
|
|
47
|
-
checkbox;
|
|
48
|
-
selectDropdown;
|
|
49
|
-
tagList;
|
|
50
|
-
detailsInfo;
|
|
51
|
-
textInput;
|
|
52
|
-
taskCompletedBanner;
|
|
53
|
-
assignedToMeText;
|
|
54
|
-
constructor(page) {
|
|
55
|
-
this.page = page;
|
|
56
|
-
this.assignToMeButton = page.getByRole('button', { name: 'Assign to me' });
|
|
57
|
-
this.completeButton = page.getByRole('button', { name: 'Complete' });
|
|
58
|
-
this.unassignButton = page.getByRole('button', { name: 'Unassign' });
|
|
59
|
-
this.assignee = page.getByTestId('assignee');
|
|
60
|
-
this.completeTaskButton = page.getByRole('button', { name: 'Complete Task' });
|
|
61
|
-
this.addVariableButton = page.getByRole('button', { name: 'Add Variable' });
|
|
62
|
-
this.detailsPanel = this.page.getByRole('complementary', {
|
|
63
|
-
name: 'Task details right panel',
|
|
64
|
-
});
|
|
65
|
-
this.detailsHeader = page.getByTitle('Task details header');
|
|
66
|
-
this.pendingTaskDescription = page.getByText('Pending task');
|
|
67
|
-
this.pickATaskHeader = page.getByRole('heading', {
|
|
68
|
-
name: 'Pick a task to work on',
|
|
69
|
-
});
|
|
70
|
-
this.emptyTaskMessage = page.getByRole('heading', {
|
|
71
|
-
name: /task has no variables/i,
|
|
72
|
-
});
|
|
73
|
-
this.nameInput = page.getByLabel('Name*');
|
|
74
|
-
this.addressInput = page.getByLabel('Address*');
|
|
75
|
-
this.ageInput = page.getByLabel('Age');
|
|
76
|
-
this.variablesTable = page.getByTestId('variables-table');
|
|
77
|
-
this.nameColumnHeader = this.variablesTable.getByRole('columnheader', {
|
|
78
|
-
name: 'Name',
|
|
79
|
-
});
|
|
80
|
-
this.valueColumnHeader = this.variablesTable.getByRole('columnheader', {
|
|
81
|
-
name: 'Value',
|
|
82
|
-
});
|
|
83
|
-
this.form = page.getByTestId('embedded-form');
|
|
84
|
-
this.numberInput = this.form.getByLabel('Number');
|
|
85
|
-
this.incrementButton = page.getByRole('button', { name: 'Increment' });
|
|
86
|
-
this.decrementButton = page.getByRole('button', { name: 'Decrement' });
|
|
87
|
-
this.dateInput = page.getByPlaceholder('mm/dd/yyyy');
|
|
88
|
-
this.timeInput = page.getByPlaceholder('hh:mm ?m');
|
|
89
|
-
this.checkbox = this.form.getByLabel('Checkbox');
|
|
90
|
-
this.selectDropdown = this.form.getByText('Select').last();
|
|
91
|
-
this.tagList = page.getByPlaceholder('Search');
|
|
92
|
-
this.detailsInfo = page.getByTestId('details-info');
|
|
93
|
-
this.textInput = page.locator('[class="fjs-input"]');
|
|
94
|
-
this.taskCompletedBanner = this.page.getByText('Task completed').first();
|
|
95
|
-
this.assignedToMeText = this.page
|
|
96
|
-
.getByTestId('assignee')
|
|
97
|
-
.getByText('Assigned to me');
|
|
98
|
-
}
|
|
99
|
-
async clickAssignToMeButton() {
|
|
100
|
-
await this.assignToMeButton.click({ timeout: 60000 });
|
|
101
|
-
}
|
|
102
|
-
async clickUnassignButton() {
|
|
103
|
-
await this.unassignButton.click();
|
|
104
|
-
}
|
|
105
|
-
async clickCompleteTaskButton() {
|
|
106
|
-
await this.completeTaskButton.click({ timeout: 60000 });
|
|
107
|
-
await (0, test_1.expect)(this.taskCompletedBanner).toBeVisible({
|
|
108
|
-
timeout: 200000,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
async clickAddVariableButton() {
|
|
112
|
-
await this.addVariableButton.click({ timeout: 60000 });
|
|
113
|
-
}
|
|
114
|
-
async replaceExistingVariableValue(values) {
|
|
115
|
-
const { name, value } = values;
|
|
116
|
-
await this.page.getByTitle(name).clear();
|
|
117
|
-
await this.page.getByTitle(name).fill(value);
|
|
118
|
-
}
|
|
119
|
-
getNthVariableNameInput(nth) {
|
|
120
|
-
return this.page.getByRole('textbox', {
|
|
121
|
-
name: `${cardinalToOrdinal(nth)} variable name`,
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
getNthVariableValueInput(nth) {
|
|
125
|
-
return this.page.getByRole('textbox', {
|
|
126
|
-
name: `${cardinalToOrdinal(nth)} variable value`,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
async addVariable(payload) {
|
|
130
|
-
const { name, value } = payload;
|
|
131
|
-
this.clickAddVariableButton();
|
|
132
|
-
await this.getNthVariableNameInput(1).fill(name);
|
|
133
|
-
await this.getNthVariableValueInput(1).fill(value);
|
|
134
|
-
}
|
|
135
|
-
async fillNumber(number) {
|
|
136
|
-
await this.numberInput.fill(number);
|
|
137
|
-
}
|
|
138
|
-
async clickIncrementButton() {
|
|
139
|
-
await this.incrementButton.click();
|
|
140
|
-
}
|
|
141
|
-
async clickDecrementButton() {
|
|
142
|
-
await this.decrementButton.click();
|
|
143
|
-
}
|
|
144
|
-
async fillDate(date) {
|
|
145
|
-
await this.dateInput.click();
|
|
146
|
-
await this.dateInput.fill(date);
|
|
147
|
-
await this.dateInput.press('Enter');
|
|
148
|
-
}
|
|
149
|
-
async enterTime(time) {
|
|
150
|
-
await this.timeInput.click();
|
|
151
|
-
await this.page.getByText(time).click();
|
|
152
|
-
}
|
|
153
|
-
async checkCheckbox() {
|
|
154
|
-
await this.checkbox.check();
|
|
155
|
-
}
|
|
156
|
-
async selectDropdownValue(value) {
|
|
157
|
-
await this.selectDropdown.click();
|
|
158
|
-
await this.page.getByText(value).click();
|
|
159
|
-
}
|
|
160
|
-
async clickRadioButton(radioBtnLabel) {
|
|
161
|
-
await this.page.getByText(radioBtnLabel).click();
|
|
162
|
-
}
|
|
163
|
-
async checkChecklistBox(label) {
|
|
164
|
-
await this.page.getByLabel(label).check();
|
|
165
|
-
}
|
|
166
|
-
async enterTwoValuesInTagList(value1, value2) {
|
|
167
|
-
await this.tagList.click();
|
|
168
|
-
await this.page.getByText(value1).click();
|
|
169
|
-
await this.page.getByText(value2, { exact: true }).click();
|
|
170
|
-
}
|
|
171
|
-
async clickTextInput() {
|
|
172
|
-
await this.textInput.click({ timeout: 60000 });
|
|
173
|
-
}
|
|
174
|
-
async fillTextInput(value) {
|
|
175
|
-
await this.textInput.fill(value);
|
|
176
|
-
}
|
|
177
|
-
async priorityAssertion(priority) {
|
|
178
|
-
let retryCount = 0;
|
|
179
|
-
const maxRetries = 2;
|
|
180
|
-
while (retryCount < maxRetries) {
|
|
181
|
-
try {
|
|
182
|
-
await (0, test_1.expect)(this.detailsPanel.getByText(priority)).toBeVisible({
|
|
183
|
-
timeout: 45000,
|
|
184
|
-
});
|
|
185
|
-
return; // Exit the function if the expectation is met
|
|
186
|
-
}
|
|
187
|
-
catch (error) {
|
|
188
|
-
retryCount++;
|
|
189
|
-
console.log(`Attempt ${retryCount} failed. Retrying...`);
|
|
190
|
-
await this.page.reload();
|
|
191
|
-
await (0, sleep_1.sleep)(10000);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
throw new Error(`Active icon not visible after ${maxRetries} attempts.`);
|
|
195
|
-
}
|
|
196
|
-
async taskAssertion(name) {
|
|
197
|
-
let retryCount = 0;
|
|
198
|
-
const maxRetries = 2;
|
|
199
|
-
while (retryCount < maxRetries) {
|
|
200
|
-
try {
|
|
201
|
-
await (0, test_1.expect)(this.detailsInfo.getByText(name)).toBeVisible({
|
|
202
|
-
timeout: 45000,
|
|
203
|
-
});
|
|
204
|
-
return; // Exit the function if the expectation is met
|
|
205
|
-
}
|
|
206
|
-
catch (error) {
|
|
207
|
-
retryCount++;
|
|
208
|
-
console.log(`Attempt ${retryCount} failed. Retrying...`);
|
|
209
|
-
await this.page.reload();
|
|
210
|
-
await (0, sleep_1.sleep)(10000);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
throw new Error(`Active icon not visible after ${maxRetries} attempts.`);
|
|
214
|
-
}
|
|
215
|
-
async assertVariableValue(variableName, variableValue) {
|
|
216
|
-
await (0, test_1.expect)(this.page.getByTitle(variableName + ' Value')).toHaveValue(variableValue);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
exports.TaskDetailsPage = TaskDetailsPage;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class TaskListLoginPage {
|
|
3
|
-
private page;
|
|
4
|
-
readonly usernameInput: Locator;
|
|
5
|
-
readonly passwordInput: Locator;
|
|
6
|
-
readonly loginButton: Locator;
|
|
7
|
-
constructor(page: Page);
|
|
8
|
-
fillUsername(username: string): Promise<void>;
|
|
9
|
-
clickUsername(): Promise<void>;
|
|
10
|
-
fillPassword(password: string): Promise<void>;
|
|
11
|
-
clickLoginButton(): Promise<void>;
|
|
12
|
-
login(username: string, password: string): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export { TaskListLoginPage };
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TaskListLoginPage = void 0;
|
|
4
|
-
const test_1 = require("@playwright/test");
|
|
5
|
-
class TaskListLoginPage {
|
|
6
|
-
page;
|
|
7
|
-
usernameInput;
|
|
8
|
-
passwordInput;
|
|
9
|
-
loginButton;
|
|
10
|
-
constructor(page) {
|
|
11
|
-
this.page = page;
|
|
12
|
-
this.usernameInput = page.getByLabel('Username');
|
|
13
|
-
this.passwordInput = page.getByRole('textbox', { name: 'password' });
|
|
14
|
-
this.loginButton = page.getByRole('button', { name: 'Login' });
|
|
15
|
-
}
|
|
16
|
-
async fillUsername(username) {
|
|
17
|
-
await this.usernameInput.fill(username);
|
|
18
|
-
}
|
|
19
|
-
async clickUsername() {
|
|
20
|
-
await this.usernameInput.click({ timeout: 60000 });
|
|
21
|
-
}
|
|
22
|
-
async fillPassword(password) {
|
|
23
|
-
await this.passwordInput.fill(password);
|
|
24
|
-
}
|
|
25
|
-
async clickLoginButton() {
|
|
26
|
-
await this.loginButton.click({ timeout: 60000 });
|
|
27
|
-
}
|
|
28
|
-
async login(username, password) {
|
|
29
|
-
await (0, test_1.expect)(this.usernameInput).toBeVisible({ timeout: 180000 });
|
|
30
|
-
await this.clickUsername();
|
|
31
|
-
await this.fillUsername(username);
|
|
32
|
-
await this.fillPassword(password);
|
|
33
|
-
await (0, test_1.expect)(this.loginButton).toBeVisible({ timeout: 120000 });
|
|
34
|
-
await this.clickLoginButton();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.TaskListLoginPage = TaskListLoginPage;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Page, Locator } from '@playwright/test';
|
|
2
|
-
declare class TaskPanelPage {
|
|
3
|
-
readonly assignmentTag: Locator;
|
|
4
|
-
readonly assignToMeButton: Locator;
|
|
5
|
-
readonly availableTasks: Locator;
|
|
6
|
-
readonly completeTaskButton: Locator;
|
|
7
|
-
readonly collapseSidePanelButton: Locator;
|
|
8
|
-
readonly emptyTaskMessage: Locator;
|
|
9
|
-
readonly expandSidePanelButton: Locator;
|
|
10
|
-
private page;
|
|
11
|
-
readonly taskListPageBanner: Locator;
|
|
12
|
-
readonly collapseFilter: Locator;
|
|
13
|
-
constructor(page: Page);
|
|
14
|
-
assertAssigmentStatus(status: string): Promise<void>;
|
|
15
|
-
assignTaskToMe(): Promise<void>;
|
|
16
|
-
completeATask(): Promise<void>;
|
|
17
|
-
openTask(name: string): Promise<void>;
|
|
18
|
-
taskListBannerIsVisible(): Promise<void>;
|
|
19
|
-
asssertUnnassignedTaskEmptyMessage(): Promise<void>;
|
|
20
|
-
filterBy(option: 'All open tasks' | 'Unassigned' | 'Assigned to me' | 'Completed' | 'Custom'): Promise<void>;
|
|
21
|
-
clickCollapseFilter(): Promise<void>;
|
|
22
|
-
}
|
|
23
|
-
export { TaskPanelPage };
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under
|
|
4
|
-
* one or more contributor license agreements. See the NOTICE file distributed
|
|
5
|
-
* with this work for additional information regarding copyright ownership.
|
|
6
|
-
* Licensed under the Camunda License 1.0. You may not use this file
|
|
7
|
-
* except in compliance with the Camunda License 1.0.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.TaskPanelPage = void 0;
|
|
11
|
-
const test_1 = require("@playwright/test");
|
|
12
|
-
class TaskPanelPage {
|
|
13
|
-
assignmentTag;
|
|
14
|
-
assignToMeButton;
|
|
15
|
-
availableTasks;
|
|
16
|
-
completeTaskButton;
|
|
17
|
-
collapseSidePanelButton;
|
|
18
|
-
emptyTaskMessage;
|
|
19
|
-
expandSidePanelButton;
|
|
20
|
-
page;
|
|
21
|
-
taskListPageBanner;
|
|
22
|
-
collapseFilter;
|
|
23
|
-
constructor(page) {
|
|
24
|
-
this.page = page;
|
|
25
|
-
this.assignmentTag = page.locator(' header > div').nth(2);
|
|
26
|
-
this.assignToMeButton = page.getByRole('button', { name: 'Assign to me' });
|
|
27
|
-
this.availableTasks = page.getByTitle('Available tasks');
|
|
28
|
-
this.completeTaskButton = page.getByRole('button', { name: 'Complete Task' });
|
|
29
|
-
this.collapseSidePanelButton = page.locator('button[aria-controls="task-nav-bar"][aria-expanded="true"]');
|
|
30
|
-
this.emptyTaskMessage = this.emptyTaskMessage = page.getByRole('heading', {
|
|
31
|
-
name: /Task has no variables/i,
|
|
32
|
-
});
|
|
33
|
-
this.expandSidePanelButton = page
|
|
34
|
-
.locator('[aria-label="Filter controls"] li')
|
|
35
|
-
.filter({ hasText: 'Expand to show filters' });
|
|
36
|
-
this.taskListPageBanner = page.getByRole('link', {
|
|
37
|
-
name: 'Camunda logo Tasklist',
|
|
38
|
-
});
|
|
39
|
-
this.collapseFilter = page.locator('button[aria-controls="task-nav-bar"][aria-expanded="false"]');
|
|
40
|
-
}
|
|
41
|
-
async assertAssigmentStatus(status) {
|
|
42
|
-
await (0, test_1.expect)(this.assignmentTag).toContainText(status);
|
|
43
|
-
}
|
|
44
|
-
async assignTaskToMe() {
|
|
45
|
-
await this.filterBy('Unassigned');
|
|
46
|
-
await this.openTask('usertask_to_be_assigned');
|
|
47
|
-
await this.assignToMeButton.click();
|
|
48
|
-
}
|
|
49
|
-
async completeATask() {
|
|
50
|
-
await this.filterBy('Unassigned');
|
|
51
|
-
await this.openTask('usertask_to_be_assigned');
|
|
52
|
-
await this.assignToMeButton.click();
|
|
53
|
-
await this.completeTaskButton.click();
|
|
54
|
-
}
|
|
55
|
-
async openTask(name) {
|
|
56
|
-
await this.availableTasks
|
|
57
|
-
.getByText(name, { exact: true })
|
|
58
|
-
.nth(0)
|
|
59
|
-
.click({ timeout: 20000 });
|
|
60
|
-
}
|
|
61
|
-
async taskListBannerIsVisible() {
|
|
62
|
-
await (0, test_1.expect)(this.taskListPageBanner).toBeVisible();
|
|
63
|
-
}
|
|
64
|
-
async asssertUnnassignedTaskEmptyMessage() {
|
|
65
|
-
await (0, test_1.expect)(this.emptyTaskMessage).toBeVisible();
|
|
66
|
-
}
|
|
67
|
-
async filterBy(option) {
|
|
68
|
-
await this.expandSidePanelButton.click();
|
|
69
|
-
await this.page.getByRole('link', { name: option, exact: true }).click();
|
|
70
|
-
await this.collapseSidePanelButton.click();
|
|
71
|
-
}
|
|
72
|
-
async clickCollapseFilter() {
|
|
73
|
-
await this.collapseFilter.click({ timeout: 45000 });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.TaskPanelPage = TaskPanelPage;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { Page } from '@playwright/test';
|
|
2
|
-
import { TaskPanelPage } from '../c8Run-8.6/TaskPanelPage';
|
|
3
|
-
import { TaskDetailsPage } from '../c8Run-8.6/TaskDetailsPage';
|
|
4
|
-
export declare function navigateToApp(page: Page, appName: string): Promise<void>;
|
|
5
|
-
export declare function validateURL(page: Page, URL: RegExp): Promise<void>;
|
|
6
|
-
export declare function completeTaskWithRetry(taskPanelPage: TaskPanelPage, taskDetailsPage: TaskDetailsPage, taskName: string, taskPriority: string, maxRetries?: number): Promise<void>;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH under
|
|
4
|
-
* one or more contributor license agreements. See the NOTICE file distributed
|
|
5
|
-
* with this work for additional information regarding copyright ownership.
|
|
6
|
-
* Licensed under the Camunda License 1.0. You may not use this file
|
|
7
|
-
* except in compliance with the Camunda License 1.0.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.completeTaskWithRetry = exports.validateURL = exports.navigateToApp = void 0;
|
|
11
|
-
const test_1 = require("@playwright/test");
|
|
12
|
-
const sleep_1 = require("../../utils/sleep");
|
|
13
|
-
async function navigateToApp(page, appName) {
|
|
14
|
-
page.goto('/' + appName.toLowerCase() + '/login');
|
|
15
|
-
}
|
|
16
|
-
exports.navigateToApp = navigateToApp;
|
|
17
|
-
async function validateURL(page, URL) {
|
|
18
|
-
(0, test_1.expect)(page).toHaveURL(URL);
|
|
19
|
-
}
|
|
20
|
-
exports.validateURL = validateURL;
|
|
21
|
-
async function completeTaskWithRetry(taskPanelPage, taskDetailsPage, taskName, taskPriority, maxRetries = 3) {
|
|
22
|
-
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
23
|
-
try {
|
|
24
|
-
await taskPanelPage.openTask(taskName);
|
|
25
|
-
await (0, sleep_1.sleep)(500);
|
|
26
|
-
if (!(await taskDetailsPage.assignedToMeText.isVisible())) {
|
|
27
|
-
await taskDetailsPage.clickAssignToMeButton();
|
|
28
|
-
}
|
|
29
|
-
await (0, test_1.expect)(taskDetailsPage.detailsPanel.getByText(taskPriority)).toBeVisible();
|
|
30
|
-
await taskDetailsPage.taskCompletedBanner.waitFor({ state: 'hidden' });
|
|
31
|
-
await taskDetailsPage.clickCompleteTaskButton();
|
|
32
|
-
await (0, test_1.expect)(taskPanelPage.availableTasks.getByText(taskName, { exact: true }).first()).not.toBeVisible({ timeout: 15000 });
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
if (attempt < maxRetries - 1) {
|
|
37
|
-
console.warn(`Attempt ${attempt + 1} failed for completing task ${taskName}. Retrying...`);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
throw new Error(`Assertion failed after ${maxRetries} attempts`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.completeTaskWithRetry = completeTaskWithRetry;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|