@camunda/e2e-test-suite 0.0.715 → 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.
|
@@ -59,6 +59,7 @@ declare class ModelerCreatePage {
|
|
|
59
59
|
readonly formLinkingTypeDropdown: Locator;
|
|
60
60
|
readonly formLinkTypeOptions: Locator;
|
|
61
61
|
readonly addFormJsonConfigurationInput: Locator;
|
|
62
|
+
readonly formIdInput: Locator;
|
|
62
63
|
readonly publicationSection: Locator;
|
|
63
64
|
readonly publicAccessToggle: Locator;
|
|
64
65
|
readonly publicationTab: Locator;
|
|
@@ -213,7 +214,8 @@ declare class ModelerCreatePage {
|
|
|
213
214
|
fillTimerValue(value: string): Promise<void>;
|
|
214
215
|
clickEighthPlacedElement(): Promise<void>;
|
|
215
216
|
clickGlobalConnectToolButton(): Promise<void>;
|
|
216
|
-
|
|
217
|
+
fillFormIdInput(id: string): Promise<void>;
|
|
218
|
+
linkFormToStartEvent(formId: string, isPublic: boolean): Promise<void>;
|
|
217
219
|
expandPublicationSection(): Promise<void>;
|
|
218
220
|
enablePublicAccessIfDisabled(): Promise<void>;
|
|
219
221
|
clickPublicationTab(): Promise<void>;
|
|
@@ -65,6 +65,7 @@ class ModelerCreatePage {
|
|
|
65
65
|
formLinkingTypeDropdown;
|
|
66
66
|
formLinkTypeOptions;
|
|
67
67
|
addFormJsonConfigurationInput;
|
|
68
|
+
formIdInput;
|
|
68
69
|
publicationSection;
|
|
69
70
|
publicAccessToggle;
|
|
70
71
|
publicationTab;
|
|
@@ -210,13 +211,14 @@ class ModelerCreatePage {
|
|
|
210
211
|
this.formLinkingTypeDropdown = page.getByLabel('Type');
|
|
211
212
|
this.formLinkTypeOptions = page.locator('#bio-properties-panel-formType');
|
|
212
213
|
this.addFormJsonConfigurationInput = page.getByLabel('Form JSON configuration');
|
|
214
|
+
this.formIdInput = page.getByLabel('Form ID');
|
|
213
215
|
this.publicationSection = page.locator('[data-group-id="group-process-publication"]');
|
|
214
216
|
this.publicAccessToggle = page.getByRole('switch', {
|
|
215
217
|
name: 'Toggle public access',
|
|
216
218
|
});
|
|
217
219
|
this.publicationTab = page.getByRole('tab', { name: 'Publication' });
|
|
218
220
|
this.copyPublicLinkButton = page.getByRole('button', {
|
|
219
|
-
name: 'Copy
|
|
221
|
+
name: 'Copy public link',
|
|
220
222
|
});
|
|
221
223
|
this.closeButton = page.getByRole('button', { name: 'Close' });
|
|
222
224
|
this.rbaEnabledDeployedDialog = page.getByRole('dialog', {
|
|
@@ -1191,10 +1193,18 @@ class ModelerCreatePage {
|
|
|
1191
1193
|
await this.globalConnectToolButton.click({ timeout: 90000 });
|
|
1192
1194
|
await (0, sleep_1.sleep)(1000);
|
|
1193
1195
|
}
|
|
1194
|
-
async
|
|
1196
|
+
async fillFormIdInput(id) {
|
|
1197
|
+
await this.formIdInput.fill(id);
|
|
1198
|
+
}
|
|
1199
|
+
async linkFormToStartEvent(formId, isPublic) {
|
|
1195
1200
|
await this.startEventElement.click({ timeout: 90000 });
|
|
1196
1201
|
await (0, sleep_1.sleep)(1000);
|
|
1197
|
-
await this.
|
|
1202
|
+
await this.expandFormsSection();
|
|
1203
|
+
await this.formLinkTypeOptions.selectOption('Camunda form (linked)');
|
|
1204
|
+
await this.fillFormIdInput(formId);
|
|
1205
|
+
if (isPublic) {
|
|
1206
|
+
await this.enablePublicAccessIfDisabled();
|
|
1207
|
+
}
|
|
1198
1208
|
}
|
|
1199
1209
|
async expandPublicationSection() {
|
|
1200
1210
|
const isExpanded = (await this.publicationSection
|
|
@@ -415,8 +415,8 @@ _8_9_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
415
415
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000, false, 5);
|
|
416
416
|
});
|
|
417
417
|
});
|
|
418
|
-
|
|
419
|
-
|
|
418
|
+
(0, _8_9_1.test)('Form.js Integration with User Task and AI Generated Form', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, }) => {
|
|
419
|
+
_8_9_1.test.slow();
|
|
420
420
|
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
421
421
|
const processName = 'User_Task_Process_With_Public_Form' + randomString;
|
|
422
422
|
const formName = 'Public form' + randomString;
|
|
@@ -437,64 +437,69 @@ _8_9_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
437
437
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
438
438
|
await modelerHomePage.clickFormOption();
|
|
439
439
|
await modelerHomePage.enterFormName(formName);
|
|
440
|
-
await (0, sleep_1.sleep)(
|
|
440
|
+
await (0, sleep_1.sleep)(10000);
|
|
441
441
|
await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
|
|
442
442
|
await formJsPage.clickGeneralPropertiesPanel();
|
|
443
|
-
await formJsPage.fillKeyInput('
|
|
444
|
-
await
|
|
443
|
+
await formJsPage.fillKeyInput('Public_Form');
|
|
444
|
+
await (0, sleep_1.sleep)(10000);
|
|
445
445
|
});
|
|
446
446
|
await _8_9_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
447
447
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
448
448
|
await modelerHomePage.clickDiagramTypeDropdown();
|
|
449
449
|
await modelerHomePage.clickBpmnTemplateOption();
|
|
450
450
|
});
|
|
451
|
-
await _8_9_1.test.step('Create BPMN Diagram with a
|
|
451
|
+
await _8_9_1.test.step('Create BPMN Diagram with a User Task with an embedded AI Generated Form and Start Process Instance', async () => {
|
|
452
452
|
await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
|
|
453
|
-
await modelerCreatePage.linkFormToStartEvent(
|
|
454
|
-
await modelerCreatePage.enablePublicAccessIfDisabled();
|
|
453
|
+
await modelerCreatePage.linkFormToStartEvent('Public_Form', true);
|
|
455
454
|
await modelerCreatePage.deployDiagram(clusterName);
|
|
456
455
|
await (0, sleep_1.sleep)(5000);
|
|
457
456
|
});
|
|
458
457
|
let publicFormLink;
|
|
459
|
-
await _8_9_1.test.step('Enable
|
|
458
|
+
await _8_9_1.test.step('Enable public access and get publication link', async () => {
|
|
459
|
+
await modelerCreatePage.enablePublicAccessIfDisabled();
|
|
460
|
+
await modelerCreatePage.clickCopyPublicLinkButton();
|
|
460
461
|
publicFormLink = await modelerCreatePage.getPublicationLink();
|
|
461
|
-
|
|
462
|
+
console.log('Captured public link:', publicFormLink);
|
|
462
463
|
});
|
|
463
|
-
await _8_9_1.test.step('Clear
|
|
464
|
+
await _8_9_1.test.step('Clear cookies and reset session', async () => {
|
|
464
465
|
await (0, resetSession_1.resetSession)(browser, page);
|
|
465
466
|
});
|
|
466
|
-
await _8_9_1.test.step('Access
|
|
467
|
-
console.log('Navigating to public form:', publicFormLink);
|
|
467
|
+
await _8_9_1.test.step('Access public form after session reset', async () => {
|
|
468
468
|
await page.goto(publicFormLink);
|
|
469
|
-
await (0, test_1.expect)(
|
|
469
|
+
await (0, test_1.expect)(page.getByLabel('Public_Form')).toBeVisible({
|
|
470
470
|
timeout: 30000,
|
|
471
471
|
});
|
|
472
|
-
await
|
|
473
|
-
|
|
474
|
-
|
|
472
|
+
await page
|
|
473
|
+
.getByLabel('Public_Form')
|
|
474
|
+
.fill('Test submission from public link');
|
|
475
|
+
await page.getByRole('button', { name: 'Submit' }).click();
|
|
476
|
+
await (0, test_1.expect)(page.getByText('Form submitted successfully')).toBeVisible({
|
|
475
477
|
timeout: 30000,
|
|
476
478
|
});
|
|
477
479
|
});
|
|
478
|
-
await _8_9_1.test.step('
|
|
479
|
-
await (0,
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
await
|
|
483
|
-
await
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
await
|
|
489
|
-
await
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
await
|
|
493
|
-
await
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
await
|
|
497
|
-
await
|
|
480
|
+
await _8_9_1.test.step('View Process Instance in Operate and complete User Task in Tasklist', async () => {
|
|
481
|
+
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
482
|
+
timeout: 180000,
|
|
483
|
+
});
|
|
484
|
+
await modelerCreatePage.clickViewProcessInstanceLink();
|
|
485
|
+
const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
|
|
486
|
+
const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
|
|
487
|
+
const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
|
|
488
|
+
const operateTabTaskPanelPage = new TaskPanelPage_1.TaskPanelPage(operateTab);
|
|
489
|
+
const operateTabTaskDetailsPage = new TaskDetailsPage_1.TaskDetailsPage(operateTab);
|
|
490
|
+
await (0, test_1.expect)(operateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 180000 });
|
|
491
|
+
await operateTabAppsPage.clickCamundaApps();
|
|
492
|
+
await operateTabAppsPage.clickTasklist(clusterName);
|
|
493
|
+
await operateTabTaskPanelPage.openTask(processName);
|
|
494
|
+
await operateTabTaskDetailsPage.clickAssignToMeButton();
|
|
495
|
+
await (0, test_1.expect)(operateTabTaskDetailsPage.assignedToMeText).toBeVisible({
|
|
496
|
+
timeout: 60000,
|
|
497
|
+
});
|
|
498
|
+
await operateTabTaskDetailsPage.fillName('test user');
|
|
499
|
+
await operateTabTaskDetailsPage.checkCheckbox();
|
|
500
|
+
await operateTabTaskDetailsPage.fillDate('11/11/1999');
|
|
501
|
+
await operateTabTaskDetailsPage.fillNumber('10');
|
|
502
|
+
await operateTabTaskDetailsPage.clickCompleteTaskButton();
|
|
498
503
|
});
|
|
499
504
|
});
|
|
500
505
|
(0, _8_9_1.test)('Conditional Events - Deploy, verify in Operate and verify process in Optimize dashboard @tasklistV2', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
|