@camunda/e2e-test-suite 0.0.201 → 0.0.203

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.
Files changed (120) hide show
  1. package/README.md +8 -4
  2. package/dist/fixtures/8.10.d.ts +75 -0
  3. package/dist/fixtures/8.10.js +187 -0
  4. package/dist/pages/8.10/AppsPage.d.ts +38 -0
  5. package/dist/pages/8.10/AppsPage.js +398 -0
  6. package/dist/pages/8.10/Authorization.d.ts +31 -0
  7. package/dist/pages/8.10/Authorization.js +143 -0
  8. package/dist/pages/8.10/ClientCredentialsDetailsPage.d.ts +12 -0
  9. package/dist/pages/8.10/ClientCredentialsDetailsPage.js +36 -0
  10. package/dist/pages/8.10/ClusterDetailsPage.d.ts +81 -0
  11. package/dist/pages/8.10/ClusterDetailsPage.js +475 -0
  12. package/dist/pages/8.10/ClusterPage.d.ts +63 -0
  13. package/dist/pages/8.10/ClusterPage.js +349 -0
  14. package/dist/pages/8.10/ClusterSecretsPage.d.ts +46 -0
  15. package/dist/pages/8.10/ClusterSecretsPage.js +219 -0
  16. package/dist/pages/8.10/ConnectorMarketplacePage.d.ts +19 -0
  17. package/dist/pages/8.10/ConnectorMarketplacePage.js +56 -0
  18. package/dist/pages/8.10/ConnectorSettingsPage.d.ts +38 -0
  19. package/dist/pages/8.10/ConnectorSettingsPage.js +142 -0
  20. package/dist/pages/8.10/ConnectorTemplatePage.d.ts +11 -0
  21. package/dist/pages/8.10/ConnectorTemplatePage.js +34 -0
  22. package/dist/pages/8.10/ConsoleOrganizationPage.d.ts +76 -0
  23. package/dist/pages/8.10/ConsoleOrganizationPage.js +402 -0
  24. package/dist/pages/8.10/FormJsPage.d.ts +28 -0
  25. package/dist/pages/8.10/FormJsPage.js +85 -0
  26. package/dist/pages/8.10/HomePage.d.ts +27 -0
  27. package/dist/pages/8.10/HomePage.js +88 -0
  28. package/dist/pages/8.10/IdpCreatePage.d.ts +81 -0
  29. package/dist/pages/8.10/IdpCreatePage.js +355 -0
  30. package/dist/pages/8.10/LoginPage.d.ts +42 -0
  31. package/dist/pages/8.10/LoginPage.js +93 -0
  32. package/dist/pages/8.10/ModelerCreatePage.d.ts +224 -0
  33. package/dist/pages/8.10/ModelerCreatePage.js +1166 -0
  34. package/dist/pages/8.10/ModelerHomePage.d.ts +54 -0
  35. package/dist/pages/8.10/ModelerHomePage.js +235 -0
  36. package/dist/pages/8.10/ModelerUserInvitePage.d.ts +29 -0
  37. package/dist/pages/8.10/ModelerUserInvitePage.js +136 -0
  38. package/dist/pages/8.10/OCIdentityAuthorizationsPage.d.ts +11 -0
  39. package/dist/pages/8.10/OCIdentityAuthorizationsPage.js +32 -0
  40. package/dist/pages/8.10/OCIdentityGroupsPage.d.ts +38 -0
  41. package/dist/pages/8.10/OCIdentityGroupsPage.js +166 -0
  42. package/dist/pages/8.10/OCIdentityHomePage.d.ts +18 -0
  43. package/dist/pages/8.10/OCIdentityHomePage.js +57 -0
  44. package/dist/pages/8.10/OCIdentityMappingRulesPage.d.ts +23 -0
  45. package/dist/pages/8.10/OCIdentityMappingRulesPage.js +124 -0
  46. package/dist/pages/8.10/OCIdentityRolesPage.d.ts +40 -0
  47. package/dist/pages/8.10/OCIdentityRolesPage.js +182 -0
  48. package/dist/pages/8.10/OperateHomePage.d.ts +23 -0
  49. package/dist/pages/8.10/OperateHomePage.js +73 -0
  50. package/dist/pages/8.10/OperateProcessInstancePage.d.ts +23 -0
  51. package/dist/pages/8.10/OperateProcessInstancePage.js +94 -0
  52. package/dist/pages/8.10/OperateProcessesPage.d.ts +25 -0
  53. package/dist/pages/8.10/OperateProcessesPage.js +103 -0
  54. package/dist/pages/8.10/OptimizeCollectionsPage.d.ts +17 -0
  55. package/dist/pages/8.10/OptimizeCollectionsPage.js +68 -0
  56. package/dist/pages/8.10/OptimizeDashboardPage.d.ts +11 -0
  57. package/dist/pages/8.10/OptimizeDashboardPage.js +65 -0
  58. package/dist/pages/8.10/OptimizeHomePage.d.ts +13 -0
  59. package/dist/pages/8.10/OptimizeHomePage.js +55 -0
  60. package/dist/pages/8.10/OptimizeReportPage.d.ts +48 -0
  61. package/dist/pages/8.10/OptimizeReportPage.js +159 -0
  62. package/dist/pages/8.10/PlayPage.d.ts +14 -0
  63. package/dist/pages/8.10/PlayPage.js +68 -0
  64. package/dist/pages/8.10/SettingsPage.d.ts +10 -0
  65. package/dist/pages/8.10/SettingsPage.js +43 -0
  66. package/dist/pages/8.10/SignUpPage.d.ts +42 -0
  67. package/dist/pages/8.10/SignUpPage.js +134 -0
  68. package/dist/pages/8.10/TaskDetailsPage.d.ts +75 -0
  69. package/dist/pages/8.10/TaskDetailsPage.js +269 -0
  70. package/dist/pages/8.10/TaskPanelPage.d.ts +21 -0
  71. package/dist/pages/8.10/TaskPanelPage.js +93 -0
  72. package/dist/pages/8.10/TaskProcessesPage.d.ts +13 -0
  73. package/dist/pages/8.10/TaskProcessesPage.js +68 -0
  74. package/dist/pages/8.10/UtilitiesPage.d.ts +47 -0
  75. package/dist/pages/8.10/UtilitiesPage.js +489 -0
  76. package/dist/tests/8.10/access-user-role-management.spec.d.ts +1 -0
  77. package/dist/tests/8.10/access-user-role-management.spec.js +323 -0
  78. package/dist/tests/8.10/agentic-ai-user-flows.spec.d.ts +1 -0
  79. package/dist/tests/8.10/agentic-ai-user-flows.spec.js +185 -0
  80. package/dist/tests/8.10/api-tests-v2.spec.d.ts +1 -0
  81. package/dist/tests/8.10/api-tests-v2.spec.js +20 -0
  82. package/dist/tests/8.10/aws-cluster-user-flows.spec.d.ts +1 -0
  83. package/dist/tests/8.10/aws-cluster-user-flows.spec.js +178 -0
  84. package/dist/tests/8.10/cluster-variables.spec.d.ts +1 -0
  85. package/dist/tests/8.10/cluster-variables.spec.js +70 -0
  86. package/dist/tests/8.10/connectors-user-flows.spec.d.ts +1 -0
  87. package/dist/tests/8.10/connectors-user-flows.spec.js +479 -0
  88. package/dist/tests/8.10/console-user-flows.spec.d.ts +1 -0
  89. package/dist/tests/8.10/console-user-flows.spec.js +187 -0
  90. package/dist/tests/8.10/hto-user-flows.spec.d.ts +1 -0
  91. package/dist/tests/8.10/hto-user-flows.spec.js +471 -0
  92. package/dist/tests/8.10/idp-user-flows.spec.d.ts +1 -0
  93. package/dist/tests/8.10/idp-user-flows.spec.js +214 -0
  94. package/dist/tests/8.10/login-negative-tests.spec.d.ts +1 -0
  95. package/dist/tests/8.10/login-negative-tests.spec.js +29 -0
  96. package/dist/tests/8.10/login.spec.d.ts +1 -0
  97. package/dist/tests/8.10/login.spec.js +26 -0
  98. package/dist/tests/8.10/navigation.spec.d.ts +1 -0
  99. package/dist/tests/8.10/navigation.spec.js +65 -0
  100. package/dist/tests/8.10/operate-access-flow.spec.d.ts +1 -0
  101. package/dist/tests/8.10/operate-access-flow.spec.js +51 -0
  102. package/dist/tests/8.10/optimize-api-tests.spec.d.ts +1 -0
  103. package/dist/tests/8.10/optimize-api-tests.spec.js +268 -0
  104. package/dist/tests/8.10/optimize-user-flows.spec.d.ts +1 -0
  105. package/dist/tests/8.10/optimize-user-flows.spec.js +255 -0
  106. package/dist/tests/8.10/play.spec.d.ts +1 -0
  107. package/dist/tests/8.10/play.spec.js +85 -0
  108. package/dist/tests/8.10/rba-enabled-v1-user-flows.spec.d.ts +1 -0
  109. package/dist/tests/8.10/rba-enabled-v1-user-flows.spec.js +443 -0
  110. package/dist/tests/8.10/rba-enabled-v2-user-flows.spec.d.ts +1 -0
  111. package/dist/tests/8.10/rba-enabled-v2-user-flows.spec.js +446 -0
  112. package/dist/tests/8.10/smoke-tests.spec.d.ts +1 -0
  113. package/dist/tests/8.10/smoke-tests.spec.js +181 -0
  114. package/dist/tests/8.10/test-setup.spec.d.ts +1 -0
  115. package/dist/tests/8.10/test-setup.spec.js +94 -0
  116. package/dist/tests/8.10/utr-enabled-user-flows.spec.d.ts +1 -0
  117. package/dist/tests/8.10/utr-enabled-user-flows.spec.js +182 -0
  118. package/dist/tests/8.10/web-modeler-user-flows.spec.d.ts +1 -0
  119. package/dist/tests/8.10/web-modeler-user-flows.spec.js +544 -0
  120. package/package.json +1 -1
@@ -0,0 +1,268 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ /* eslint-disable prefer-const */
5
+ /* eslint-disable @typescript-eslint/no-explicit-any */
6
+ const _8_10_1 = require("../../fixtures/8.10");
7
+ const test_1 = require("@playwright/test");
8
+ const apiHelpers_1 = require("../../utils/apiHelpers");
9
+ const randomName_1 = require("../../utils/randomName");
10
+ _8_10_1.test.describe.configure({ mode: 'parallel' });
11
+ _8_10_1.test.describe('API optimize SaaS Tests', () => {
12
+ let optimizeCookie;
13
+ let optimizeBearerToken;
14
+ let collectionIdValue;
15
+ let dashboardIdValue;
16
+ let collectionScopeResponse;
17
+ let reportId;
18
+ let baseUrl;
19
+ let exportedEntities;
20
+ _8_10_1.test.beforeAll(async ({ browser, request }) => {
21
+ const page = await browser.newPage();
22
+ optimizeCookie = await (0, apiHelpers_1.getOptimizeCoockie)(page);
23
+ await page.close();
24
+ optimizeBearerToken = await (0, apiHelpers_1.authSaasAPI)(process.env.OPTIMIZE_API_TOKEN_AUDIENCE);
25
+ collectionIdValue = await (0, apiHelpers_1.createCollection)(request, {
26
+ name: await (0, randomName_1.randomNameAgregator)('Test Collection'),
27
+ optimizeCookie,
28
+ });
29
+ collectionScopeResponse = await (0, apiHelpers_1.updateCollectionScope)(request, {
30
+ optimizeCookie,
31
+ collectionId: collectionIdValue,
32
+ data: [
33
+ {
34
+ definitionKey: 'customer_onboarding_en',
35
+ definitionType: 'process',
36
+ tenants: ['<default>'],
37
+ },
38
+ ],
39
+ });
40
+ dashboardIdValue = await (0, apiHelpers_1.createDashboard)(request, {
41
+ name: await (0, randomName_1.randomNameAgregator)('Test Dashboard'),
42
+ optimizeCookie,
43
+ collectionId: collectionIdValue,
44
+ });
45
+ reportId = await (0, apiHelpers_1.createSingleProcessReport)(request, {
46
+ optimizeCookie,
47
+ collectionId: collectionIdValue,
48
+ name: 'Blank report',
49
+ definitions: [
50
+ {
51
+ key: 'aProcess',
52
+ filter: [],
53
+ groupBy: { type: 'flowNodes', value: null },
54
+ distributedBy: { type: 'none', value: null },
55
+ view: { entity: 'flowNode', properties: ['duration'] },
56
+ },
57
+ ],
58
+ });
59
+ baseUrl = process.env.CAMUNDA_OPTIMIZE_BASE_URL;
60
+ });
61
+ // Skipped due to bug:41410: https://github.com/camunda/camunda/issues/41410
62
+ _8_10_1.test.skip('Dashboard Scenarios Flow Tests', async ({ request }) => {
63
+ await _8_10_1.test.step('Get dashboards successfully (200)', async () => {
64
+ const response = await request.get(`${baseUrl}/api/public/dashboard?collectionId=${collectionIdValue}`, { headers: { Authorization: optimizeBearerToken } });
65
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
66
+ const body = await response.json();
67
+ (0, test_1.expect)(Array.isArray(body)).toBeTruthy();
68
+ (0, test_1.expect)(body.length).toBeGreaterThan(0);
69
+ const dashboard = body[0];
70
+ (0, test_1.expect)(dashboard).toHaveProperty('id');
71
+ });
72
+ await _8_10_1.test.step('Get dashboards without token (401)', async () => {
73
+ const response = await request.get(`${baseUrl}/api/public/dashboard?collectionId=${collectionIdValue}`);
74
+ (0, test_1.expect)(response.status()).toBe(401);
75
+ });
76
+ await _8_10_1.test.step('Get dashboards with invalid token (401)', async () => {
77
+ const response = await request.get(`${baseUrl}/api/public/dashboard?collectionId=${collectionIdValue}`, { headers: { Authorization: 'Bearer invalid_token' } });
78
+ (0, test_1.expect)(response.status()).toBe(401);
79
+ });
80
+ await _8_10_1.test.step('Force internal server error (500)', async () => {
81
+ const response = await request.get(`${baseUrl}/api/public/dashboard/force-internal-error`, { headers: { Authorization: optimizeBearerToken } });
82
+ (0, test_1.expect)(response.status()).toBe(500);
83
+ });
84
+ await _8_10_1.test.step('Export dashboard definitions successfully (200)', async () => {
85
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
86
+ headers: {
87
+ Authorization: optimizeBearerToken,
88
+ 'Content-Type': 'application/json',
89
+ },
90
+ data: [dashboardIdValue],
91
+ });
92
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
93
+ const body = await response.json();
94
+ (0, test_1.expect)(Array.isArray(body)).toBeTruthy();
95
+ });
96
+ await _8_10_1.test.step('Export dashboards without token (401)', async () => {
97
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
98
+ headers: { 'Content-Type': 'application/json' },
99
+ data: [dashboardIdValue],
100
+ });
101
+ (0, test_1.expect)(response.status()).toBe(401);
102
+ });
103
+ await _8_10_1.test.step('Export dashboards with invalid token (401)', async () => {
104
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
105
+ headers: {
106
+ Authorization: 'Bearer invalid_token',
107
+ 'Content-Type': 'application/json',
108
+ },
109
+ data: [dashboardIdValue],
110
+ });
111
+ (0, test_1.expect)(response.status()).toBe(401);
112
+ });
113
+ await _8_10_1.test.step('Export dashboard with invalid body (400)', async () => {
114
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
115
+ headers: {
116
+ Authorization: optimizeBearerToken,
117
+ 'Content-Type': 'application/json',
118
+ },
119
+ data: [{}],
120
+ });
121
+ (0, test_1.expect)(response.status()).toBe(400);
122
+ });
123
+ await _8_10_1.test.step('Export non-existent dashboard (404)', async () => {
124
+ const fakeDashboardId = 'nonexistent-dashboard-id';
125
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
126
+ headers: {
127
+ Authorization: optimizeBearerToken,
128
+ 'Content-Type': 'application/json',
129
+ },
130
+ data: [fakeDashboardId],
131
+ });
132
+ (0, test_1.expect)([401, 404]).toContain(response.status());
133
+ });
134
+ await _8_10_1.test.step('Export existing dashboard successfully (200)', async () => {
135
+ const response = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
136
+ headers: {
137
+ Authorization: optimizeBearerToken,
138
+ 'Content-Type': 'application/json',
139
+ },
140
+ data: [dashboardIdValue],
141
+ });
142
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
143
+ });
144
+ await _8_10_1.test.step('Delete dashboard successfully (200)', async () => {
145
+ const response = await request.delete(`${baseUrl}/api/public/dashboard/${dashboardIdValue}`, { headers: { Authorization: optimizeBearerToken } });
146
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
147
+ });
148
+ await _8_10_1.test.step('Verify dashboard not found after deletion (404/410/500)', async () => {
149
+ const response = await request.get(`${baseUrl}/api/public/dashboard/${dashboardIdValue}`, { headers: { Authorization: optimizeBearerToken } });
150
+ (0, test_1.expect)([404, 410, 500]).toContain(response.status());
151
+ });
152
+ await _8_10_1.test.step('Delete dashboard with invalid token (401)', async () => {
153
+ const response = await request.delete(`${baseUrl}/api/public/dashboard/${dashboardIdValue}`, { headers: { Authorization: 'Bearer invalid_token' } });
154
+ (0, test_1.expect)(response.status()).toBe(401);
155
+ });
156
+ await _8_10_1.test.step('Delete non-existent dashboard (404)', async () => {
157
+ const fakeDashboardId = 'nonexistent-dashboard-id';
158
+ const response = await request.delete(`${baseUrl}/api/public/dashboard/${fakeDashboardId}`, { headers: { Authorization: optimizeBearerToken } });
159
+ (0, test_1.expect)(response.status()).toBe(404);
160
+ });
161
+ });
162
+ // Skipped due to bug:41410: https://github.com/camunda/camunda/issues/41410
163
+ _8_10_1.test.skip('Reports Scenarios Flow Tests', async ({ request }) => {
164
+ await _8_10_1.test.step('Get reports successfully (200)', async () => {
165
+ const response = await request.get(`${baseUrl}/api/public/report?collectionId=${collectionIdValue}`, { headers: { Authorization: optimizeBearerToken } });
166
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
167
+ });
168
+ await _8_10_1.test.step('Get reports with invalid/missing token (401)', async () => {
169
+ const response = await request.get(`${baseUrl}/api/public/report?collectionId=${collectionIdValue}`, { headers: { Authorization: 'Bearer invalid_token' } });
170
+ (0, test_1.expect)(response.status()).toBe(401);
171
+ });
172
+ await _8_10_1.test.step('Export reports successfully (200)', async () => {
173
+ const response = await request.post(`${baseUrl}/api/public/export/report/definition/json`, {
174
+ headers: {
175
+ Authorization: optimizeBearerToken,
176
+ 'Content-Type': 'application/json',
177
+ },
178
+ data: [reportId],
179
+ });
180
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
181
+ const body = await response.json();
182
+ (0, test_1.expect)(Array.isArray(body)).toBeTruthy();
183
+ (0, test_1.expect)(body.length).toBeGreaterThan(0);
184
+ (0, test_1.expect)(body[0]).toHaveProperty('id');
185
+ (0, test_1.expect)(body[0]).toHaveProperty('exportEntityType');
186
+ (0, test_1.expect)(body[0]).toHaveProperty('name');
187
+ (0, test_1.expect)(body[0]).toHaveProperty('collectionId');
188
+ });
189
+ await _8_10_1.test.step('Export reports with invalid token (401)', async () => {
190
+ const response = await request.post(`${baseUrl}/api/public/export/report/definition/json`, {
191
+ headers: {
192
+ Authorization: 'Bearer invalid_token',
193
+ 'Content-Type': 'application/json',
194
+ },
195
+ data: [reportId],
196
+ });
197
+ (0, test_1.expect)(response.status()).toBe(401);
198
+ });
199
+ await _8_10_1.test.step('Export non-existent report (404)', async () => {
200
+ const invalidReportId = '11111111-1111-1111-1111-111111111111';
201
+ const response = await request.post(`${baseUrl}/api/public/export/report/definition/json`, {
202
+ headers: {
203
+ Authorization: optimizeBearerToken,
204
+ 'Content-Type': 'application/json',
205
+ },
206
+ data: [invalidReportId],
207
+ });
208
+ await (0, apiHelpers_1.assertResponseStatus)(response, 404);
209
+ });
210
+ await _8_10_1.test.step('Delete report successfully (200)', async () => {
211
+ const response = await request.delete(`${baseUrl}/api/public/report/${reportId}`, { headers: { Authorization: optimizeBearerToken } });
212
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
213
+ });
214
+ await _8_10_1.test.step('Verify deleted report returns 404 or 500', async () => {
215
+ const response = await request.get(`${baseUrl}/api/public/report/${reportId}`, { headers: { Authorization: optimizeBearerToken } });
216
+ (0, test_1.expect)([404, 500]).toContain(response.status());
217
+ });
218
+ await _8_10_1.test.step('Attempt delete report with invalid token (401)', async () => {
219
+ const response = await request.delete(`${baseUrl}/api/public/report/${reportId}`, { headers: { Authorization: 'Bearer invalid_token' } });
220
+ (0, test_1.expect)(response.status()).toBe(401);
221
+ });
222
+ });
223
+ // Skipped due to bug:41410: https://github.com/camunda/camunda/issues/41410
224
+ _8_10_1.test.skip('Import entities successfully (200)', async ({ request }) => {
225
+ const exportResponse = await request.post(`${baseUrl}/api/public/export/dashboard/definition/json`, {
226
+ headers: {
227
+ Authorization: optimizeBearerToken,
228
+ 'Content-Type': 'application/json',
229
+ },
230
+ data: [dashboardIdValue],
231
+ });
232
+ await (0, apiHelpers_1.assertResponseStatus)(exportResponse, 200);
233
+ exportedEntities = await exportResponse.json();
234
+ const response = await request.post(`${baseUrl}/api/public/import?collectionId=${collectionIdValue}`, {
235
+ headers: {
236
+ Authorization: optimizeBearerToken,
237
+ 'Content-Type': 'application/json',
238
+ },
239
+ data: exportedEntities,
240
+ });
241
+ await (0, apiHelpers_1.assertResponseStatus)(response, 200);
242
+ });
243
+ // Skipped due to bug:41410: https://github.com/camunda/camunda/issues/41410
244
+ _8_10_1.test.skip('Import without token or invalid token (401)', async ({ request, }) => {
245
+ const response = await request.post(`${baseUrl}/api/public/import?collectionId=${collectionIdValue}`, {
246
+ headers: {
247
+ Authorization: 'Bearer invalid_token',
248
+ 'Content-Type': 'application/json',
249
+ },
250
+ data: exportedEntities,
251
+ });
252
+ const status = response.status();
253
+ (0, test_1.expect)(status).toBe(401);
254
+ });
255
+ // Skipped due to bug 40497: https://github.com/camunda/camunda/issues/40497
256
+ _8_10_1.test.skip('Import to non-existent collection (404)', async ({ request }) => {
257
+ const fakeCollectionId = 'nonexistent-collection-id';
258
+ const response = await request.post(`${baseUrl}/api/public/import?collectionId=${fakeCollectionId}`, {
259
+ headers: {
260
+ Authorization: optimizeBearerToken,
261
+ 'Content-Type': 'application/json',
262
+ },
263
+ data: exportedEntities,
264
+ });
265
+ const status = response.status();
266
+ (0, test_1.expect)(status).toBe(404);
267
+ });
268
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const _8_10_1 = require("../../fixtures/8.10");
5
+ const _setup_1 = require("../../test-setup.js");
6
+ const AppsPage_1 = require("../../pages/8.10/AppsPage");
7
+ const OptimizeCollectionsPage_1 = require("../../pages/8.10/OptimizeCollectionsPage");
8
+ const OperateProcessInstancePage_1 = require("../../pages/8.10/OperateProcessInstancePage");
9
+ const OptimizeHomePage_1 = require("../../pages/8.10/OptimizeHomePage");
10
+ const ModelerCreatePage_1 = require("../../pages/8.10/ModelerCreatePage");
11
+ const ModelerHomePage_1 = require("../../pages/8.10/ModelerHomePage");
12
+ const OptimizeReportPage_1 = require("../../pages/8.10/OptimizeReportPage");
13
+ const OptimizeDashboardPage_1 = require("../../pages/8.10/OptimizeDashboardPage");
14
+ const sleep_1 = require("../../utils/sleep");
15
+ const UtilitiesPage_1 = require("../../pages/8.10/UtilitiesPage");
16
+ const users_1 = require("../../utils/users");
17
+ const testUser = (0, users_1.getTestUser)('twentyThirdUser');
18
+ _8_10_1.test.describe.configure({ mode: 'parallel' });
19
+ _8_10_1.test.describe('Optimize User Flow Tests', () => {
20
+ const clusterName = 'Test Cluster';
21
+ _8_10_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
22
+ await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
23
+ });
24
+ _8_10_1.test.afterEach(async ({ page }, testInfo) => {
25
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
26
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
27
+ });
28
+ //Skipped due to bug 46344: https://github.com/camunda/camunda/issues/46344
29
+ _8_10_1.test.skip('Job Worker User Task User Flow @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
30
+ _8_10_1.test.slow();
31
+ const reportName = await (0, _setup_1.generateRandomStringAsync)(5);
32
+ const processName = 'Optimize Job Worker User Task Diagram' + reportName;
33
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
34
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
35
+ timeout: 120000,
36
+ });
37
+ await appsPage.clickCamundaApps();
38
+ await appsPage.clickModeler();
39
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
40
+ timeout: 180000,
41
+ });
42
+ });
43
+ await _8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
44
+ await modelerHomePage.clickCrossComponentProjectFolder();
45
+ await modelerHomePage.clickDiagramTypeDropdown();
46
+ await modelerHomePage.clickBpmnTemplateOption();
47
+ });
48
+ await _8_10_1.test.step('Create BPMN Diagram with User Task and Start Process Instance', async () => {
49
+ await modelerCreatePage.modelJobWorkerDiagram(processName);
50
+ await modelerCreatePage.runProcessInstance(clusterName);
51
+ });
52
+ await _8_10_1.test.step('View Process Instance in Operate, Create User Task Report in Optimize, Start Another Process Instance in Modeler & Assert the Report Updates', async () => {
53
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
54
+ timeout: 120000,
55
+ });
56
+ await modelerCreatePage.clickViewProcessInstanceLink();
57
+ const operateTabPromise = page.waitForEvent('popup', { timeout: 60000 });
58
+ const operateTab = await operateTabPromise;
59
+ const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
60
+ const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
61
+ await (0, test_1.expect)(operateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 120000 });
62
+ await operateTabAppsPage.clickCamundaApps();
63
+ await operateTabAppsPage.clickOptimize(clusterName);
64
+ const optimizeTabOptimizeCollectionsPage = new OptimizeCollectionsPage_1.OptimizeCollectionsPage(operateTab);
65
+ const optimizeTabOptimizeReportPage = new OptimizeReportPage_1.OptimizeReportPage(operateTab);
66
+ const optimizeTabAppsPage = new AppsPage_1.AppsPage(operateTab);
67
+ const modelerTabModelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(operateTab);
68
+ const modelerTabModelerHomePage = new ModelerHomePage_1.ModelerHomePage(operateTab);
69
+ const optimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(operateTab);
70
+ await (0, sleep_1.sleep)(120000);
71
+ await operateTab.reload();
72
+ await optimizeTabOptimizeCollectionsPage.clickCreateNewButtonWithRetry();
73
+ await optimizeTabOptimizeCollectionsPage.clickReportOption();
74
+ await optimizeTabOptimizeReportPage.clickProcessSelectionButton();
75
+ await optimizeTabOptimizeReportPage.clickUserTaskProcess(processName);
76
+ await (0, test_1.expect)(optimizeTabOptimizeReportPage.versionSelection).toBeVisible({
77
+ timeout: 30000,
78
+ });
79
+ await optimizeTabOptimizeReportPage.clickVersionSelection();
80
+ await optimizeTabOptimizeReportPage.clickAlwaysDisplayLatestSelection();
81
+ await optimizeTabOptimizeReportPage.clickBlankReportButton();
82
+ await optimizeTabOptimizeReportPage.clickCreateReportLink();
83
+ await optimizeTabOptimizeReportPage.clickSelectDropdown();
84
+ await optimizeTabOptimizeReportPage.clickUserTaskOption();
85
+ await optimizeTabOptimizeReportPage.clickHeatMapButton();
86
+ await (0, test_1.expect)(optimizeTabOptimizeReportPage.tableOption).toBeVisible({
87
+ timeout: 90000,
88
+ });
89
+ await optimizeTabOptimizeReportPage.clickTableOption();
90
+ await optimizeTabOptimizeReportPage.clickReportName();
91
+ await optimizeTabOptimizeReportPage.clearReportName();
92
+ await optimizeTabOptimizeReportPage.fillReportName(reportName);
93
+ await optimizeTabOptimizeReportPage.clickSaveButton();
94
+ await optimizeHomePage.clickCollectionsLink();
95
+ await (0, test_1.expect)(operateTab.getByText(reportName)).toBeVisible({
96
+ timeout: 60000,
97
+ });
98
+ await optimizeTabOptimizeCollectionsPage.clickMostRecentProcessReport(reportName);
99
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, optimizeTabOptimizeReportPage.oneUserTaskInstance, 'One user task count', 90000);
100
+ await optimizeTabAppsPage.clickCamundaApps();
101
+ await optimizeTabAppsPage.clickModeler();
102
+ await modelerTabModelerHomePage.clickCrossComponentProjectFolder();
103
+ await modelerTabModelerHomePage.clickProcessDiagram(processName);
104
+ await modelerTabModelerCreatePage.runProcessInstance(clusterName);
105
+ await (0, test_1.expect)(modelerTabModelerCreatePage.viewProcessInstanceLink).toBeVisible({ timeout: 120000 });
106
+ await modelerTabModelerCreatePage.clickViewProcessInstanceLink();
107
+ const newOperateTabPromise = operateTab.waitForEvent('popup', {
108
+ timeout: 60000,
109
+ });
110
+ const newOperateTab = await newOperateTabPromise;
111
+ const newOperateTabAppsPage = new AppsPage_1.AppsPage(newOperateTab);
112
+ const newOperateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(newOperateTab);
113
+ await (0, test_1.expect)(newOperateTabOperateProcessInstancePage.diagramSpinner).not.toBeVisible({
114
+ timeout: 60000,
115
+ });
116
+ await (0, test_1.expect)(newOperateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 60000 });
117
+ await newOperateTabAppsPage.clickCamundaApps();
118
+ await newOperateTabAppsPage.clickOptimize(clusterName);
119
+ const newOptimizeTabOptimizeCollectionsPage = new OptimizeCollectionsPage_1.OptimizeCollectionsPage(newOperateTab);
120
+ const newOptimizeTabOptimizeReportPage = new OptimizeReportPage_1.OptimizeReportPage(newOperateTab);
121
+ const newOptimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(newOperateTab);
122
+ await newOptimizeHomePage.clickCollectionsLink();
123
+ await (0, test_1.expect)(newOperateTab.getByText(reportName)).toBeVisible();
124
+ await newOptimizeTabOptimizeCollectionsPage.clickMostRecentProcessReport(reportName);
125
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(newOperateTab, newOptimizeTabOptimizeReportPage.twoUserTaskInstance, 'Two user tasks count', 90000);
126
+ await (0, test_1.expect)(newOptimizeTabOptimizeReportPage.oneUserTaskInstance).not.toBeVisible();
127
+ });
128
+ });
129
+ //Skipped due to bug 46344: https://github.com/camunda/camunda/issues/46344
130
+ _8_10_1.test.skip('New Instances Updated Flow @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, optimizeCollectionsPage, optimizeReportPage, optimizeHomePage, }) => {
131
+ _8_10_1.test.slow();
132
+ const reportName = await (0, _setup_1.generateRandomStringAsync)(5);
133
+ const processName = 'Optimize Job Worker New Instances Updated Flow' + reportName;
134
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
135
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
136
+ timeout: 120000,
137
+ });
138
+ await appsPage.clickCamundaApps();
139
+ await appsPage.clickModeler();
140
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
141
+ timeout: 180000,
142
+ });
143
+ });
144
+ await _8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
145
+ await modelerHomePage.clickCrossComponentProjectFolder();
146
+ await modelerHomePage.clickDiagramTypeDropdown();
147
+ await modelerHomePage.clickBpmnTemplateOption();
148
+ });
149
+ await _8_10_1.test.step('Create BPMN Diagram with User Task and Deploy Process', async () => {
150
+ await modelerCreatePage.modelJobWorkerDiagram(processName);
151
+ await modelerCreatePage.deployDiagram(clusterName);
152
+ });
153
+ await _8_10_1.test.step('Create Process Instance Count Report in Optimize, Start A Process Instance in Modeler & Assert the Report Updates', async () => {
154
+ await appsPage.clickCamundaApps();
155
+ await appsPage.clickOptimize(clusterName);
156
+ await (0, sleep_1.sleep)(120000);
157
+ await page.reload();
158
+ await optimizeCollectionsPage.clickCreateNewButtonWithRetry();
159
+ await optimizeCollectionsPage.clickReportOption();
160
+ await optimizeReportPage.clickProcessSelectionButton();
161
+ await optimizeReportPage.clickUserTaskProcess(processName);
162
+ await (0, test_1.expect)(optimizeReportPage.versionSelection).toBeVisible({
163
+ timeout: 30000,
164
+ });
165
+ await optimizeReportPage.clickVersionSelection();
166
+ await optimizeReportPage.clickAlwaysDisplayLatestSelection();
167
+ await optimizeReportPage.clickBlankReportButton();
168
+ await optimizeReportPage.clickCreateReportLink();
169
+ await optimizeReportPage.clickSelectDropdown();
170
+ await optimizeReportPage.clickUserTaskOption();
171
+ await optimizeReportPage.clickHeatMapButton();
172
+ await (0, test_1.expect)(optimizeReportPage.tableOption).toBeVisible({
173
+ timeout: 30000,
174
+ });
175
+ await optimizeReportPage.clickTableOption();
176
+ await optimizeReportPage.clickReportName();
177
+ await optimizeReportPage.clearReportName();
178
+ await optimizeReportPage.fillReportName(reportName);
179
+ await optimizeReportPage.clickSaveButton();
180
+ await optimizeHomePage.clickCollectionsLink();
181
+ await (0, test_1.expect)(page.getByText(reportName)).toBeVisible({
182
+ timeout: 20000,
183
+ });
184
+ await optimizeCollectionsPage.clickMostRecentProcessReport(reportName);
185
+ await page.reload();
186
+ await (0, test_1.expect)(page.getByText('Displaying data from 0 instances.')).toBeVisible({ timeout: 90000 });
187
+ await appsPage.clickCamundaApps();
188
+ await appsPage.clickModeler();
189
+ await modelerHomePage.clickCrossComponentProjectFolder();
190
+ await modelerHomePage.clickProcessDiagram(processName);
191
+ await modelerCreatePage.runProcessInstance(clusterName);
192
+ await modelerCreatePage.clickViewProcessInstanceLink();
193
+ const newOperateTab = await page.waitForEvent('popup');
194
+ const newOperateTabAppsPage = new AppsPage_1.AppsPage(newOperateTab);
195
+ const newOperateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(newOperateTab);
196
+ await (0, test_1.expect)(newOperateTabOperateProcessInstancePage.diagramSpinner).not.toBeVisible({
197
+ timeout: 60000,
198
+ });
199
+ await (0, test_1.expect)(newOperateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 60000 });
200
+ await newOperateTabAppsPage.clickCamundaApps();
201
+ await newOperateTabAppsPage.clickOptimize(clusterName);
202
+ const newOptimizeTabOptimizeCollectionsPage = new OptimizeCollectionsPage_1.OptimizeCollectionsPage(newOperateTab);
203
+ const newOptimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(newOperateTab);
204
+ await (0, sleep_1.sleep)(30000);
205
+ await newOperateTab.reload();
206
+ await newOptimizeHomePage.clickCollectionsLink();
207
+ await (0, test_1.expect)(newOperateTab.getByText(reportName)).toBeVisible();
208
+ await newOptimizeTabOptimizeCollectionsPage.clickMostRecentProcessReport(reportName);
209
+ await (0, test_1.expect)(newOperateTab.getByText('Displaying data from 1 instance.')).toBeVisible({ timeout: 90000 });
210
+ });
211
+ });
212
+ //Skipped due to bug 46344: https://github.com/camunda/camunda/issues/46344
213
+ _8_10_1.test.skip('Process Import Flow @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
214
+ _8_10_1.test.slow();
215
+ const processName = 'Process Import Flow' + (await (0, _setup_1.generateRandomStringAsync)(6));
216
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
217
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
218
+ timeout: 120000,
219
+ });
220
+ await appsPage.clickCamundaApps();
221
+ await appsPage.clickModeler();
222
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
223
+ timeout: 180000,
224
+ });
225
+ });
226
+ await _8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
227
+ await modelerHomePage.clickCrossComponentProjectFolder();
228
+ await modelerHomePage.clickDiagramTypeDropdown();
229
+ await modelerHomePage.clickBpmnTemplateOption();
230
+ });
231
+ await _8_10_1.test.step('Create BPMN Diagram with User Task and Deploy Process', async () => {
232
+ await modelerCreatePage.modelJobWorkerDiagram(processName);
233
+ await modelerCreatePage.runProcessInstance(clusterName);
234
+ });
235
+ await _8_10_1.test.step('View Process Instance in Operate and Assert Process has been successfully imported in Optimize', async () => {
236
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
237
+ timeout: 120000,
238
+ });
239
+ await modelerCreatePage.clickViewProcessInstanceLink();
240
+ const operateTab = await page.waitForEvent('popup');
241
+ const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
242
+ const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
243
+ const operateTabOptimizeDashboardPage = new OptimizeDashboardPage_1.OptimizeDashboardPage(operateTab);
244
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTabOperateProcessInstancePage.activeIcon, 'active icon');
245
+ await (0, test_1.expect)(operateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 120000 });
246
+ await operateTabAppsPage.clickCamundaApps();
247
+ await operateTabAppsPage.clickOptimize(clusterName);
248
+ const optimizeTabOptimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(operateTab);
249
+ await optimizeTabOptimizeHomePage.clickDashboardLink();
250
+ await (0, sleep_1.sleep)(90000);
251
+ await operateTabOptimizeDashboardPage.processLinkAssertion(processName, 6);
252
+ await operateTabOptimizeDashboardPage.processOwnerNameAssertion(processName, testUser.username);
253
+ });
254
+ });
255
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const _8_10_1 = require("../../fixtures/8.10");
5
+ const _setup_1 = require("../../test-setup.js");
6
+ const sleep_1 = require("../../utils/sleep");
7
+ const UtilitiesPage_1 = require("../../pages/8.10/UtilitiesPage");
8
+ const users_1 = require("../../utils/users");
9
+ const testUser = (0, users_1.getTestUser)('twentyFourthUser');
10
+ _8_10_1.test.describe.configure({ mode: 'parallel' });
11
+ _8_10_1.test.describe('Deploy and run a process in Play', () => {
12
+ const clusterName = 'Test Cluster';
13
+ _8_10_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
14
+ await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
15
+ });
16
+ _8_10_1.test.afterEach(async ({ page }, testInfo) => {
17
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
18
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
19
+ });
20
+ (0, _8_10_1.test)('User Tasks and Service Task', async ({ modelerHomePage, modelerCreatePage, playPage, homePage, appsPage, }) => {
21
+ _8_10_1.test.slow();
22
+ const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
23
+ const processName = 'Play_Test_Process' + randomString;
24
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
25
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
26
+ timeout: 40000,
27
+ });
28
+ await appsPage.clickCamundaApps();
29
+ await appsPage.clickModeler();
30
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
31
+ timeout: 120000,
32
+ });
33
+ });
34
+ await _8_10_1.test.step('Open Cross Component Test Project', async () => {
35
+ await modelerHomePage.clickCrossComponentProjectFolder();
36
+ });
37
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
38
+ await modelerHomePage.clickDiagramTypeDropdown();
39
+ await modelerHomePage.clickBpmnTemplateOption();
40
+ });
41
+ await _8_10_1.test.step('Create a BPMN Diagram with user tasks and service task', async () => {
42
+ await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
43
+ timeout: 120000,
44
+ });
45
+ await modelerCreatePage.enterDiagramName(processName);
46
+ await (0, sleep_1.sleep)(20000);
47
+ await modelerCreatePage.clickAppendElementButton();
48
+ await modelerCreatePage.clickAppendTaskButton();
49
+ await modelerCreatePage.clickChangeTypeButton();
50
+ await modelerCreatePage.clickUserTaskOption();
51
+ await modelerCreatePage.clickGeneralPropertiesPanel();
52
+ await modelerCreatePage.clickIdInput();
53
+ await modelerCreatePage.fillIdInput('zeebe-user-task' + randomString);
54
+ await modelerCreatePage.clickAppendElementButton();
55
+ await modelerCreatePage.clickAppendTaskButton();
56
+ await modelerCreatePage.clickChangeTypeButton();
57
+ await modelerCreatePage.clickServiceTaskOption();
58
+ await modelerCreatePage.clickGeneralPropertiesPanel();
59
+ await modelerCreatePage.clickIdInput();
60
+ await modelerCreatePage.fillIdInput('service-task' + randomString);
61
+ await modelerCreatePage.clickTaskDefinitionPropertiesPanel();
62
+ await modelerCreatePage.clickJobTypeInput();
63
+ await modelerCreatePage.fillJobTypeInput('someJob' + randomString);
64
+ await modelerCreatePage.clickAppendElementButton();
65
+ await modelerCreatePage.clickAppendEndEventButton();
66
+ await (0, sleep_1.sleep)(60000);
67
+ });
68
+ await _8_10_1.test.step('Open Play', async () => {
69
+ await modelerCreatePage.switchToPlay();
70
+ await modelerCreatePage.completePlayConfiguration(clusterName);
71
+ });
72
+ await _8_10_1.test.step('Start and complete the process instance in Play', async () => {
73
+ await playPage.dismissStartModal();
74
+ await playPage.clickStartInstanceButton();
75
+ await playPage.waitForInstanceDetailsToBeLoaded();
76
+ await playPage.waitForNextElementToBeActive('zeebe-user-task' + randomString);
77
+ await playPage.waitForCompleteJobButtonToBeAvailable();
78
+ await playPage.clickCompleteJobButton();
79
+ await playPage.waitForNextElementToBeActive('service-task' + randomString);
80
+ await playPage.waitForCompleteJobButtonToBeAvailable();
81
+ await playPage.clickCompleteJobButton();
82
+ await playPage.waitForProcessToBeCompleted();
83
+ });
84
+ });
85
+ });