@camunda/e2e-test-suite 0.0.322 → 0.0.324

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.
@@ -56,7 +56,7 @@ const createIdentityUser = async (navigationPage, managementIdentity, username)
56
56
  await managementIdentity.clickAddButton();
57
57
  };
58
58
  const createOCUser = async (navigationPage, ocIdentityHomePage, ocIdentityRolesPage, username) => {
59
- await navigationPage.goToOCIdentity();
59
+ await navigationPage.goToOCAdmin();
60
60
  await ocIdentityHomePage.clickRolesTab();
61
61
  await ocIdentityRolesPage.clickAdminRole();
62
62
  await ocIdentityRolesPage.assignUserToRole(username);
@@ -31,7 +31,7 @@ declare class NavigationPage {
31
31
  password: string;
32
32
  }): Promise<void>;
33
33
  goToKeycloak(): Promise<void>;
34
- goToOCIdentity(sleepTimeout?: number, credentials?: {
34
+ goToOCAdmin(sleepTimeout?: number, credentials?: {
35
35
  username: string;
36
36
  password: string;
37
37
  }): Promise<void>;
@@ -122,8 +122,8 @@ class NavigationPage {
122
122
  await this.page.goto(keycloakUrl);
123
123
  await (0, test_1.expect)(this.keyboardPageBanner).toBeVisible({ timeout: 30000 });
124
124
  }
125
- async goToOCIdentity(sleepTimeout, credentials) {
126
- await this.goTo(`${ORCHESTRATION_CONTEXT_PATH}/identity`, this.identityPageBanner, sleepTimeout, credentials);
125
+ async goToOCAdmin(sleepTimeout, credentials) {
126
+ await this.goTo(`${ORCHESTRATION_CONTEXT_PATH}/admin`, this.identityPageBanner, sleepTimeout, credentials);
127
127
  }
128
128
  async goToConsole(sleepTimeout, credentials) {
129
129
  await this.goTo(CONSOLE_CONTEXT_PATH, this.consolePageBanner, sleepTimeout, credentials);
@@ -9,7 +9,7 @@ const KeycloakUtils_1 = require("../SM-8.10/KeycloakUtils");
9
9
  const expectLocatorWithPagination_1 = require("../../utils/assertionHelpers/expectLocatorWithPagination");
10
10
  // This step will be skipped until new Identity expected flow is confirmed
11
11
  async function deleteAllUserGroups() {
12
- // await navigationPage.goToOCIdentity();
12
+ // await navigationPage.goToOCAdmin();
13
13
  // await identityPage.clickGroupsTab();
14
14
  // await identityPage.deleteAllGroups();
15
15
  }
@@ -24,7 +24,7 @@ async function createUserAndAssignToRole(page, navigationPage, managementIdentit
24
24
  const mappingRuleId = `${username}-user-mapping`;
25
25
  const claimName = 'preferred_username';
26
26
  await (0, KeycloakUtils_1.createUser)(navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, username, password);
27
- await navigationPage.goToOCIdentity();
27
+ await navigationPage.goToOCAdmin();
28
28
  await ocIdentityHomePage.clickMappingRulesTab();
29
29
  await identityMappingRulesPage.createMappingRule(mappingRuleId, mappingRuleId, claimName, username);
30
30
  await (0, expectLocatorWithPagination_1.expectLocatorWithPagination)(page, identityMappingRulesPage.mappingRuleRow(mappingRuleId).first());
@@ -123,7 +123,7 @@ class NavigationPage {
123
123
  await (0, test_1.expect)(this.keyboardPageBanner).toBeVisible({ timeout: 30000 });
124
124
  }
125
125
  async goToOCIdentity(sleepTimeout, credentials) {
126
- await this.goTo(`${ORCHESTRATION_CONTEXT_PATH}/identity`, this.identityPageBanner, sleepTimeout, credentials);
126
+ await this.goTo(`${ORCHESTRATION_CONTEXT_PATH}/admin`, this.identityPageBanner, sleepTimeout, credentials);
127
127
  }
128
128
  async goToConsole(sleepTimeout, credentials) {
129
129
  await this.goTo(CONSOLE_CONTEXT_PATH, this.consolePageBanner, sleepTimeout, credentials);
@@ -159,7 +159,7 @@ SM_8_10_1.test.describe('Cluster Variables User Flows', () => {
159
159
  })
160
160
  : JSON.stringify(randomRawValue);
161
161
  await SM_8_10_1.test.step('User navigates to Admin UI', async () => {
162
- await navigationPage.goToOCIdentity();
162
+ await navigationPage.goToOCAdmin();
163
163
  });
164
164
  await SM_8_10_1.test.step('User navigates to Cluster Variables tab', async () => {
165
165
  await ocIdentityHomePage.clickClusterVariablesTab();
@@ -55,7 +55,7 @@ SM_8_10_1.test.describe('Console User Flow Tests', () => {
55
55
  });
56
56
  });
57
57
  await SM_8_10_1.test.step('Assert OC Identity License Key Tag', async () => {
58
- await navigationPage.goToOCIdentity();
58
+ await navigationPage.goToOCAdmin();
59
59
  await (0, test_1.expect)(ocIdentityHomePage.licenseKeyTagNonProduction).toBeVisible({
60
60
  timeout: 60000,
61
61
  });
@@ -124,7 +124,7 @@ if (process.env.IS_DS === 'true') {
124
124
  const clientSecret = process.env.DISTRO_QA_E2E_TESTS_KEYCLOAK_CLIENTS_SECRET;
125
125
  const endpoint = `${baseURL}/auth/realms/camunda-platform/protocol/openid-connect/token`;
126
126
  await SM_8_10_1.test.step('Grant client admin access', async () => {
127
- await navigationPage.goToOCIdentity();
127
+ await navigationPage.goToOCAdmin();
128
128
  await ocIdentityHomePage.clickRolesTab();
129
129
  await ocIdentityRolesPage.clickRole('admin');
130
130
  await ocIdentityRolesPage.addClientToRole('test');
@@ -170,11 +170,11 @@ SM_8_10_1.test.describe('HTO User Flow Tests', () => {
170
170
  password: password,
171
171
  };
172
172
  await SM_8_10_1.test.step('Create Two New Test Users And Assign to Role', async () => {
173
- await navigationPage.goToOCIdentity();
173
+ await navigationPage.goToOCAdmin();
174
174
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser1, password);
175
175
  await (0, resetSession_1.resetSession)(browser, page);
176
176
  await (0, sleep_1.sleep)(10000);
177
- await navigationPage.goToOCIdentity();
177
+ await navigationPage.goToOCAdmin();
178
178
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser2, password);
179
179
  });
180
180
  await SM_8_10_1.test.step('Create Two User Groups in Identity', async () => {
@@ -277,7 +277,7 @@ SM_8_10_1.test.describe('HTO User Flow Tests', () => {
277
277
  password: password,
278
278
  };
279
279
  await SM_8_10_1.test.step('Create new Test User And Assign to Role', async () => {
280
- await navigationPage.goToOCIdentity();
280
+ await navigationPage.goToOCAdmin();
281
281
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser, password);
282
282
  });
283
283
  await SM_8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -369,7 +369,7 @@ SM_8_10_1.test.describe('HTO User Flow Tests', () => {
369
369
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
370
370
  const processName = 'User_Task_Process_RBA_OFF_' + randomString + '_';
371
371
  await SM_8_10_1.test.step('Navigate to Identity', async () => {
372
- await navigationPage.goToOCIdentity();
372
+ await navigationPage.goToOCAdmin();
373
373
  await ocIdentityHomePage.clickAuthorizationsTab();
374
374
  await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
375
375
  await (0, test_1.expect)(page.getByText(processName).first()).not.toBeVisible({
@@ -145,7 +145,7 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
145
145
  await (0, KeycloakUtils_1.createUser)(navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, testUser, password);
146
146
  });
147
147
  await SM_8_10_1.test.step('Navigate to OC Identity', async () => {
148
- await navigationPage.goToOCIdentity();
148
+ await navigationPage.goToOCAdmin();
149
149
  });
150
150
  await SM_8_10_1.test.step('Assert Admin Mapping and No Mapping Defined for Test User', async () => {
151
151
  await ocIdentityHomePage.clickRolesTab();
@@ -161,7 +161,7 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
161
161
  await (0, resetSession_1.resetSession)(browser, page); //a workaround for the bug
162
162
  });
163
163
  await SM_8_10_1.test.step('Login with Test User and Ensure Identity is not Accessible', async () => {
164
- await navigationPage.goToOCIdentity(undefined, credentials);
164
+ await navigationPage.goToOCAdmin(undefined, credentials);
165
165
  await (0, test_1.expect)(page.getByText('You don’t have access to this component')).toBeVisible({
166
166
  timeout: 120000,
167
167
  });
@@ -189,7 +189,7 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
189
189
  });
190
190
  await SM_8_10_1.test.step('Log out from Test User and Log in as Main User', async () => {
191
191
  await (0, resetSession_1.resetSession)(browser, page); //a workaround for https://github.com/camunda/camunda/issues/34513
192
- await navigationPage.goToOCIdentity();
192
+ await navigationPage.goToOCAdmin();
193
193
  });
194
194
  await SM_8_10_1.test.step('Create Mapping Rule for Test User', async () => {
195
195
  await ocIdentityHomePage.clickMappingRulesTab();
@@ -208,7 +208,7 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
208
208
  await (0, sleep_1.sleep)(30000);
209
209
  });
210
210
  await SM_8_10_1.test.step('Log in with Test User and Ensure Identity is Accessible', async () => {
211
- await navigationPage.goToOCIdentity(undefined, credentials);
211
+ await navigationPage.goToOCAdmin(undefined, credentials);
212
212
  await (0, test_1.expect)(ocIdentityHomePage.adminBanner).toBeVisible({
213
213
  timeout: 10000,
214
214
  });
@@ -7,7 +7,7 @@ if (process.env.IS_LICENSE_KEY === 'true') {
7
7
  SM_8_10_1.test.describe.configure({ mode: 'parallel' });
8
8
  SM_8_10_1.test.describe('License Key User Flows Test', () => {
9
9
  SM_8_10_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
10
- await navigationPage.goToOCIdentity((testInfo.workerIndex + 1) * 1000);
10
+ await navigationPage.goToOCAdmin((testInfo.workerIndex + 1) * 1000);
11
11
  });
12
12
  SM_8_10_1.test.afterEach(async ({ page }, testInfo) => {
13
13
  await (0, _setup_1.captureScreenshot)(page, testInfo);
@@ -16,7 +16,7 @@ SM_8_10_1.test.describe('Login Tests', () => {
16
16
  });
17
17
  });
18
18
  (0, SM_8_10_1.test)('Orchestration Cluster Identity Basic Login', async ({ navigationPage, ocIdentityHomePage, }) => {
19
- await navigationPage.goToOCIdentity();
19
+ await navigationPage.goToOCAdmin();
20
20
  await (0, test_1.expect)(ocIdentityHomePage.adminBanner).toBeVisible({
21
21
  timeout: 120000,
22
22
  });
@@ -32,7 +32,7 @@ if (process.env.IS_MIGRATION === 'true') {
32
32
  await navigationPage.goToConsole();
33
33
  });
34
34
  await SM_8_10_1.test.step('Assert OC Identity Navigation', async () => {
35
- await navigationPage.goToOCIdentity();
35
+ await navigationPage.goToOCAdmin();
36
36
  });
37
37
  });
38
38
  (0, SM_8_10_1.test)('Assert Most Common Flow User Flow With All Apps Process Migration', async ({ page, navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, optimizeHomePage, optimizeCollectionsPage, optimizeReportPage, taskPanelPage, }) => {
@@ -12,7 +12,7 @@ if (process.env.IS_MT === 'true') {
12
12
  SM_8_10_1.test.describe.configure({ mode: 'parallel' });
13
13
  SM_8_10_1.test.describe('MT Enabled User Flows Test', () => {
14
14
  SM_8_10_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
15
- await navigationPage.goToOCIdentity((testInfo.workerIndex + 1) * 1000);
15
+ await navigationPage.goToOCAdmin((testInfo.workerIndex + 1) * 1000);
16
16
  });
17
17
  SM_8_10_1.test.afterEach(async ({ page }, testInfo) => {
18
18
  await (0, _setup_1.captureScreenshot)(page, testInfo);
@@ -524,10 +524,10 @@ if (process.env.IS_MT === 'true') {
524
524
  });
525
525
  }
526
526
  await SM_8_10_1.test.step('Delete Tenant Access For Demo User OC', async () => {
527
- await navigationPage.goToOCIdentity();
527
+ await navigationPage.goToOCAdmin();
528
528
  await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, ocIdentityHomePage.tenantsTab, {
529
529
  postAction: async () => {
530
- await navigationPage.goToOCIdentity();
530
+ await navigationPage.goToOCAdmin();
531
531
  },
532
532
  });
533
533
  await ocIdentityHomePage.clickTenantsTab();
@@ -22,7 +22,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
22
22
  await (0, _setup_1.captureScreenshot)(page, testInfo);
23
23
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
24
24
  await (0, resetSession_1.resetSession)(browser, page);
25
- await navigationPage.goToOCIdentity();
25
+ await navigationPage.goToOCAdmin();
26
26
  const ids = idsToBeDeleted[testInfo.title];
27
27
  if (ids['mappingIds'].length > 0) {
28
28
  for (const id of ids['mappingIds']) {
@@ -50,7 +50,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
50
50
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser, password, role, idsToBeDeleted[testInfo.title]);
51
51
  });
52
52
  await SM_8_10_1.test.step('Create Resource Authorization', async () => {
53
- await navigationPage.goToOCIdentity();
53
+ await navigationPage.goToOCAdmin();
54
54
  await ocIdentityHomePage.clickAuthorizationsTab();
55
55
  await ocIdentityAuthorizationsPage.clickResourceTab();
56
56
  await ocIdentityAuthorizationsPage.createAuthorization({
@@ -113,7 +113,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
113
113
  await (0, UtilitiesPage_1.runMultipleProcesses)(page, modelerHomePage, modelerCreatePage, 2, processName, processName);
114
114
  });
115
115
  await SM_8_10_1.test.step('Navigate back to Identity and Ensure User Has Only Create Authorization Permission', async () => {
116
- await navigationPage.goToOCIdentity(undefined, credentials);
116
+ await navigationPage.goToOCAdmin(undefined, credentials);
117
117
  await ocIdentityHomePage.clickAuthorizationsTab();
118
118
  await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
119
119
  await (0, test_1.expect)(page.getByRole('row').filter({
@@ -152,7 +152,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
152
152
  });
153
153
  });
154
154
  await SM_8_10_1.test.step('Navigate back to Identity and Remove Create Authorization Permission From Both Process', async () => {
155
- await navigationPage.goToOCIdentity(undefined, credentials);
155
+ await navigationPage.goToOCAdmin(undefined, credentials);
156
156
  await ocIdentityHomePage.clickAuthorizationsTab();
157
157
  await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
158
158
  await ocIdentityAuthorizationsPage.deleteAuthorization(`${processName}1`, 'PROCESS_DEFINITION');
@@ -182,7 +182,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
182
182
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser, password, role, idsToBeDeleted[testInfo.title]);
183
183
  });
184
184
  await SM_8_10_1.test.step('Create Resource Authorization', async () => {
185
- await navigationPage.goToOCIdentity();
185
+ await navigationPage.goToOCAdmin();
186
186
  await ocIdentityHomePage.clickAuthorizationsTab();
187
187
  await ocIdentityAuthorizationsPage.clickResourceTab();
188
188
  await ocIdentityAuthorizationsPage.createAuthorization({
@@ -251,7 +251,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
251
251
  await (0, UtilitiesPage_1.runMultipleProcesses)(page, modelerHomePage, modelerCreatePage, 2, processName, processName);
252
252
  });
253
253
  await SM_8_10_1.test.step('Navigate back to Identity and Ensure User Has Only Create Authorization Permission', async () => {
254
- await navigationPage.goToOCIdentity(undefined, credentials);
254
+ await navigationPage.goToOCAdmin(undefined, credentials);
255
255
  await ocIdentityHomePage.clickAuthorizationsTab();
256
256
  await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
257
257
  await (0, test_1.expect)(page.getByRole('row').filter({
@@ -286,7 +286,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
286
286
  await (0, UtilitiesPage_1.expectTextWithPagination)(page, processName + '2', true, 120000);
287
287
  });
288
288
  await SM_8_10_1.test.step('Navigate back to Identity and Remove Create Authorization Permission From Both Process', async () => {
289
- await navigationPage.goToOCIdentity(undefined, credentials);
289
+ await navigationPage.goToOCAdmin(undefined, credentials);
290
290
  await ocIdentityHomePage.clickAuthorizationsTab();
291
291
  await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
292
292
  await ocIdentityAuthorizationsPage.deleteAuthorization(`${processName}1`, 'PROCESS_DEFINITION');
@@ -319,7 +319,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
319
319
  await (0, UtilitiesPage_1.assignMappingToRole)(page, ocIdentityHomePage, ocIdentityRolesPage, role2, `${testUser}-user-mapping`, idsToBeDeleted[testInfo.title]);
320
320
  });
321
321
  await SM_8_10_1.test.step('Navigate to Authorizations', async () => {
322
- await navigationPage.goToOCIdentity();
322
+ await navigationPage.goToOCAdmin();
323
323
  await ocIdentityHomePage.clickAuthorizationsTab();
324
324
  });
325
325
  await SM_8_10_1.test.step('Grant CRUD Process Definition Authorization For First Process', async () => {
@@ -418,7 +418,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
418
418
  });
419
419
  await SM_8_10_1.test.step('Navigate to Roles and Delete First Role', async () => {
420
420
  await (0, resetSession_1.resetSession)(browser, page);
421
- await navigationPage.goToOCIdentity();
421
+ await navigationPage.goToOCAdmin();
422
422
  await ocIdentityHomePage.clickRolesTab();
423
423
  await ocIdentityRolesPage.deleteRole(role1);
424
424
  });
@@ -463,7 +463,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
463
463
  await (0, UtilitiesPage_1.assignMappingToRole)(page, ocIdentityHomePage, ocIdentityRolesPage, role2, `${testUser}-user-mapping`, idsToBeDeleted[testInfo.title]);
464
464
  });
465
465
  await SM_8_10_1.test.step('Navigate to Authorizations', async () => {
466
- await navigationPage.goToOCIdentity();
466
+ await navigationPage.goToOCAdmin();
467
467
  await ocIdentityHomePage.clickAuthorizationsTab();
468
468
  });
469
469
  await SM_8_10_1.test.step('Grant CRUD Process Definition Authorization For First Process', async () => {
@@ -566,7 +566,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
566
566
  });
567
567
  await SM_8_10_1.test.step('Navigate to Roles and Delete First Role', async () => {
568
568
  await (0, resetSession_1.resetSession)(browser, page);
569
- await navigationPage.goToOCIdentity();
569
+ await navigationPage.goToOCAdmin();
570
570
  await ocIdentityHomePage.clickRolesTab();
571
571
  await ocIdentityRolesPage.deleteRole(role1);
572
572
  });
@@ -608,7 +608,7 @@ if (node_process_1.default.env.IS_RBA === 'true') {
608
608
  await (0, UtilitiesPage_1.createUserAndAssignToRole)(page, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, testUser, password, role, idsToBeDeleted[testInfo.title]);
609
609
  });
610
610
  await SM_8_10_1.test.step('Navigate to Authorizations', async () => {
611
- await navigationPage.goToOCIdentity();
611
+ await navigationPage.goToOCAdmin();
612
612
  await ocIdentityHomePage.clickAuthorizationsTab();
613
613
  });
614
614
  await SM_8_10_1.test.step('Create Process Definition Authorizations For Both Processes', async () => {
@@ -11,7 +11,7 @@ const KeycloakUtils_1 = require("../../pages/SM-8.10/KeycloakUtils");
11
11
  SM_8_10_1.test.describe.parallel('Smoke Tests', () => {
12
12
  SM_8_10_1.test.beforeEach(async ({ navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, page, browser, loginPage, ocIdentityHomePage, ocIdentityRolesPage, }, testInfo) => {
13
13
  if (process.env.IS_MIGRATION === 'true') {
14
- await navigationPage.goToOCIdentity((testInfo.workerIndex + 1) * 1000);
14
+ await navigationPage.goToOCAdmin((testInfo.workerIndex + 1) * 1000);
15
15
  }
16
16
  else {
17
17
  console.log(`BeforeEach start: timeout = ${testInfo.timeout}`);
@@ -53,7 +53,7 @@ SM_8_10_1.test.describe.parallel('Smoke Tests', () => {
53
53
  });
54
54
  await SM_8_10_1.test.step('Assert OC Identity Navigation', async () => {
55
55
  await context.clearCookies();
56
- await navigationPage.goToOCIdentity();
56
+ await navigationPage.goToOCAdmin();
57
57
  });
58
58
  if (process.env.IS_OPTIMIZE !== 'false') {
59
59
  await SM_8_10_1.test.step('Assert Optimize Navigation', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.322",
3
+ "version": "0.0.324",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",