@camunda/e2e-test-suite 0.0.218 → 0.0.219
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.
|
@@ -9,6 +9,10 @@ declare class FormJsPage {
|
|
|
9
9
|
readonly keyInput: Locator;
|
|
10
10
|
readonly generalPanel: Locator;
|
|
11
11
|
readonly textFieldInForm: Locator;
|
|
12
|
+
readonly deployButton: Locator;
|
|
13
|
+
readonly deploySubButton: Locator;
|
|
14
|
+
readonly dialog: Locator;
|
|
15
|
+
readonly deploySuccessNotification: Locator;
|
|
12
16
|
constructor(page: Page);
|
|
13
17
|
clickAIFormGeneratorButton(): Promise<void>;
|
|
14
18
|
generateAIForm(request?: string): Promise<void>;
|
|
@@ -18,5 +22,9 @@ declare class FormJsPage {
|
|
|
18
22
|
dragAndDrop(source: Locator, target: Locator): Promise<void>;
|
|
19
23
|
fillKeyInput(key: string): Promise<void>;
|
|
20
24
|
clickGeneralPropertiesPanel(): Promise<void>;
|
|
25
|
+
selectCluster(clusterName: string): Promise<void>;
|
|
26
|
+
clickDeployButton(): Promise<void>;
|
|
27
|
+
clickDeploySubButton(): Promise<void>;
|
|
28
|
+
deployForm(clusterName: string): Promise<void>;
|
|
21
29
|
}
|
|
22
30
|
export { FormJsPage };
|
|
@@ -13,6 +13,10 @@ class FormJsPage {
|
|
|
13
13
|
keyInput;
|
|
14
14
|
generalPanel;
|
|
15
15
|
textFieldInForm;
|
|
16
|
+
deployButton;
|
|
17
|
+
deploySubButton;
|
|
18
|
+
dialog;
|
|
19
|
+
deploySuccessNotification;
|
|
16
20
|
constructor(page) {
|
|
17
21
|
this.page = page;
|
|
18
22
|
this.aiFormGeneratorButton = page.getByRole('button', {
|
|
@@ -25,6 +29,19 @@ class FormJsPage {
|
|
|
25
29
|
this.generalPanel = page.locator('[data-group-id="group-general"]').first();
|
|
26
30
|
this.keyInput = page.getByRole('textbox', { name: 'key' });
|
|
27
31
|
this.textFieldInForm = page.getByLabel('Form Definition');
|
|
32
|
+
this.deployButton = page
|
|
33
|
+
.locator('[data-test="action-bar"]')
|
|
34
|
+
.getByRole('button', { name: 'Deploy', exact: true });
|
|
35
|
+
this.dialog = page
|
|
36
|
+
.locator('.cds--modal-container[role="dialog"]')
|
|
37
|
+
.filter({ hasText: 'Deploy form' });
|
|
38
|
+
this.deploySubButton = this.dialog.getByRole('button', {
|
|
39
|
+
name: 'Deploy',
|
|
40
|
+
exact: true,
|
|
41
|
+
});
|
|
42
|
+
this.deploySuccessNotification = page
|
|
43
|
+
.locator('.cds--toast-notification--success')
|
|
44
|
+
.filter({ hasText: 'Form deployed!' });
|
|
28
45
|
}
|
|
29
46
|
async clickAIFormGeneratorButton() {
|
|
30
47
|
await this.aiFormGeneratorButton.click();
|
|
@@ -61,5 +78,35 @@ class FormJsPage {
|
|
|
61
78
|
async clickGeneralPropertiesPanel() {
|
|
62
79
|
await this.generalPanel.click({ timeout: 60000 });
|
|
63
80
|
}
|
|
81
|
+
async selectCluster(clusterName) {
|
|
82
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 30000 });
|
|
83
|
+
const healthCheckTimeout = 30000;
|
|
84
|
+
const healthyRegex = new RegExp(`${clusterName}[\\s\\S]*?HealthydevManage`);
|
|
85
|
+
const cluster = this.dialog.locator(`[title="${clusterName}"]`);
|
|
86
|
+
await (0, test_1.expect)(cluster).toBeVisible({ timeout: 30000 });
|
|
87
|
+
await cluster.click();
|
|
88
|
+
await (0, test_1.expect)(this.dialog
|
|
89
|
+
.locator('label')
|
|
90
|
+
.filter({ hasText: clusterName })
|
|
91
|
+
.getByRole('switch')).toBeChecked({ timeout: 30000 });
|
|
92
|
+
await (0, test_1.expect)(this.dialog).toHaveText(healthyRegex, {
|
|
93
|
+
timeout: healthCheckTimeout,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async clickDeployButton() {
|
|
97
|
+
await this.deployButton.click({ timeout: 60000 });
|
|
98
|
+
}
|
|
99
|
+
async clickDeploySubButton() {
|
|
100
|
+
await this.deploySubButton.click({ timeout: 60000 });
|
|
101
|
+
}
|
|
102
|
+
async deployForm(clusterName) {
|
|
103
|
+
await this.clickDeployButton();
|
|
104
|
+
await (0, test_1.expect)(this.dialog).toBeVisible({
|
|
105
|
+
timeout: 30000,
|
|
106
|
+
});
|
|
107
|
+
await this.selectCluster(clusterName);
|
|
108
|
+
await this.clickDeploySubButton();
|
|
109
|
+
await (0, test_1.expect)(this.deploySuccessNotification).toBeVisible({ timeout: 30000 });
|
|
110
|
+
}
|
|
64
111
|
}
|
|
65
112
|
exports.FormJsPage = FormJsPage;
|
|
@@ -26,7 +26,7 @@ _8_6_1.test.describe('Smoke Tests', () => {
|
|
|
26
26
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
27
27
|
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
28
28
|
});
|
|
29
|
-
(0, _8_6_1.test)('Most Common Flow User Flow With All Apps', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
|
|
29
|
+
(0, _8_6_1.test)('Most Common Flow User Flow With All Apps', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, }) => {
|
|
30
30
|
_8_6_1.test.slow();
|
|
31
31
|
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
32
32
|
const formName = 'New form' + randomString;
|
|
@@ -45,10 +45,8 @@ _8_6_1.test.describe('Smoke Tests', () => {
|
|
|
45
45
|
});
|
|
46
46
|
await _8_6_1.test.step('Create Form To Be Linked For Zeebe User Task', async () => {
|
|
47
47
|
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
48
|
-
await modelerHomePage.
|
|
49
|
-
await
|
|
50
|
-
await modelerHomePage.enterFormName(formName);
|
|
51
|
-
await modelerHomePage.assertFormBreadcrumbVisible(formName);
|
|
48
|
+
await modelerHomePage.createForm(formName);
|
|
49
|
+
await formJsPage.deployForm(clusterName);
|
|
52
50
|
});
|
|
53
51
|
await _8_6_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
54
52
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
@@ -54,6 +54,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
54
54
|
await _8_6_1.test.step('Create an AI Generated Form', async () => {
|
|
55
55
|
await modelerHomePage.createForm(formName);
|
|
56
56
|
await formJsPage.generateAIForm();
|
|
57
|
+
await formJsPage.deployForm(clusterName);
|
|
57
58
|
});
|
|
58
59
|
await _8_6_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
59
60
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
@@ -300,6 +301,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
300
301
|
await _8_6_1.test.step('Create an AI Generated Form', async () => {
|
|
301
302
|
await modelerHomePage.createForm(formName);
|
|
302
303
|
await formJsPage.generateAIForm();
|
|
304
|
+
await formJsPage.deployForm(clusterName);
|
|
303
305
|
});
|
|
304
306
|
await _8_6_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
305
307
|
await modelerHomePage.clickProjectBreadcrumb();
|
|
@@ -529,7 +531,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
529
531
|
});
|
|
530
532
|
await _8_6_1.test.step('Create BPMN Diagram with a embedded form and Start Process Instance', async () => {
|
|
531
533
|
await modelerCreatePage.modelJobWorkerDiagram(processName, true);
|
|
532
|
-
await modelerCreatePage.runProcessInstance(clusterName
|
|
534
|
+
await modelerCreatePage.runProcessInstance(clusterName);
|
|
533
535
|
});
|
|
534
536
|
await _8_6_1.test.step('View Process Instance in Operate and check if process is complete', async () => {
|
|
535
537
|
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
@@ -628,6 +630,7 @@ _8_6_1.test.describe('Web Modeler User Flow Tests', () => {
|
|
|
628
630
|
await formJsPage.clickGeneralPropertiesPanel();
|
|
629
631
|
await formJsPage.fillKeyInput('Public_Form_Text_Field');
|
|
630
632
|
await (0, sleep_1.sleep)(10000);
|
|
633
|
+
await formJsPage.deployForm(clusterName);
|
|
631
634
|
});
|
|
632
635
|
await _8_6_1.test.step('Add A BPMN Template To The Project', async () => {
|
|
633
636
|
await modelerHomePage.clickProjectBreadcrumb();
|