@camunda/e2e-test-suite 0.0.1046 → 0.0.1047
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/dist/pages/8.10/ModelerHomePage.d.ts +2 -0
- package/dist/pages/8.10/ModelerHomePage.js +24 -0
- package/dist/tests/8.10/agentic-ai-user-flows.spec.js +2 -1
- package/dist/tests/8.10/connectors-user-flows.spec.js +4 -2
- package/dist/tests/8.10/idp-user-flows.spec.js +21 -15
- package/package.json +1 -1
|
@@ -24,6 +24,7 @@ declare class ModelerHomePage {
|
|
|
24
24
|
readonly uploadFilesButton: Locator;
|
|
25
25
|
readonly messageBanner: Locator;
|
|
26
26
|
readonly idpTemplateOption: Locator;
|
|
27
|
+
readonly idpEmptyStateButton: Locator;
|
|
27
28
|
readonly idpApplicationNameInput: Locator;
|
|
28
29
|
readonly createIdpApplicationButton: Locator;
|
|
29
30
|
readonly dialog: Locator;
|
|
@@ -70,6 +71,7 @@ declare class ModelerHomePage {
|
|
|
70
71
|
clickMessageBanner(): Promise<void>;
|
|
71
72
|
selectCluster(clusterName: string): Promise<void>;
|
|
72
73
|
clickIdpApplicationTemplateOption(): Promise<void>;
|
|
74
|
+
startIdpApplicationCreation(): Promise<void>;
|
|
73
75
|
assertFormBreadcrumbVisible(formName: string): Promise<void>;
|
|
74
76
|
}
|
|
75
77
|
export { ModelerHomePage };
|
|
@@ -42,6 +42,7 @@ class ModelerHomePage {
|
|
|
42
42
|
uploadFilesButton;
|
|
43
43
|
messageBanner;
|
|
44
44
|
idpTemplateOption;
|
|
45
|
+
idpEmptyStateButton;
|
|
45
46
|
idpApplicationNameInput;
|
|
46
47
|
createIdpApplicationButton;
|
|
47
48
|
dialog;
|
|
@@ -74,6 +75,9 @@ class ModelerHomePage {
|
|
|
74
75
|
this.idpTemplateOption = page
|
|
75
76
|
.locator('[data-test="create-idp-application"]')
|
|
76
77
|
.getByText('IDP Application');
|
|
78
|
+
this.idpEmptyStateButton = page.getByRole('button', {
|
|
79
|
+
name: 'Create IDP application',
|
|
80
|
+
});
|
|
77
81
|
this.diagramTypeDropdown = page.locator('[data-test="diagram-dropdown"]');
|
|
78
82
|
// Matched on the test id alone: hub's design-system variant of the create
|
|
79
83
|
// menu renders "BPMN diagram" (lowercase d), so a text filter breaks the
|
|
@@ -612,6 +616,26 @@ class ModelerHomePage {
|
|
|
612
616
|
async clickIdpApplicationTemplateOption() {
|
|
613
617
|
await this.idpTemplateOption.click({ timeout: 120000 });
|
|
614
618
|
}
|
|
619
|
+
// Which control starts an IDP application depends on whether the workspace
|
|
620
|
+
// root already holds a resource: hub's EntityTable renders the toolbar's
|
|
621
|
+
// create menu OR the empty state, never both (the same split
|
|
622
|
+
// clickCreateProcessApplication has to straddle). A workspace whose very
|
|
623
|
+
// first resource is the IDP application only ever offers the empty state's
|
|
624
|
+
// "Create IDP application" button, so waiting for the create menu there
|
|
625
|
+
// times out on `[data-test="diagram-dropdown"]`. Race both entry points,
|
|
626
|
+
// then use whichever one rendered.
|
|
627
|
+
async startIdpApplicationCreation() {
|
|
628
|
+
const rootLoaded = await this.becameVisible(this.idpEmptyStateButton.or(this.diagramTypeDropdown).first(), 60000);
|
|
629
|
+
if (!rootLoaded) {
|
|
630
|
+
await this.page.reload();
|
|
631
|
+
}
|
|
632
|
+
if (await this.becameVisible(this.idpEmptyStateButton, 5000)) {
|
|
633
|
+
await this.idpEmptyStateButton.click({ timeout: 60000 });
|
|
634
|
+
return;
|
|
635
|
+
}
|
|
636
|
+
await this.clickWorkspaceDiagramTypeDropdown();
|
|
637
|
+
await this.clickIdpApplicationTemplateOption();
|
|
638
|
+
}
|
|
615
639
|
async assertFormBreadcrumbVisible(formName) {
|
|
616
640
|
await (0, test_1.expect)(this.formNameBreadcrumb(formName)).toBeVisible({
|
|
617
641
|
timeout: 120000,
|
|
@@ -109,7 +109,8 @@ _8_10_1.test.describe('Agentic Orchestation User Flows', () => {
|
|
|
109
109
|
});
|
|
110
110
|
_8_10_1.test.describe('AI Agent sub process - provider user tests flow', () => {
|
|
111
111
|
for (const params of aiAgentSubProcessTestCases) {
|
|
112
|
-
|
|
112
|
+
// Skipped due to bug #8490: https://github.com/camunda/connectors/issues/8490
|
|
113
|
+
_8_10_1.test.skip(`AI agent sub process with tools provides feedback to user - ${params.provider}`, async ({ appsPage, operateHomePage, operateProcessInstancePage, operateProcessesPage, taskPanelPage, taskDetailsPage, }) => {
|
|
113
114
|
_8_10_1.test.slow();
|
|
114
115
|
const processKey = await (0, apiHelpers_1.deployProcess)(params.bpmnPath, authToken);
|
|
115
116
|
if (processKey == null) {
|
|
@@ -168,7 +168,8 @@ _8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
168
168
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
|
|
169
169
|
});
|
|
170
170
|
});
|
|
171
|
-
|
|
171
|
+
// Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
|
|
172
|
+
_8_10_1.test.skip('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, clusterPage, clusterSecretsPage, }) => {
|
|
172
173
|
_8_10_1.test.slow();
|
|
173
174
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
174
175
|
await _8_10_1.test.step('Navigate to Connectors Secrets', async () => {
|
|
@@ -221,7 +222,8 @@ _8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
221
222
|
});
|
|
222
223
|
});
|
|
223
224
|
});
|
|
224
|
-
|
|
225
|
+
// Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
|
|
226
|
+
_8_10_1.test.skip('Connector Secrets User Flow - AWS', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
225
227
|
_8_10_1.test.slow();
|
|
226
228
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
227
229
|
await _8_10_1.test.step('Navigate to Web Modeler', async () => {
|
|
@@ -69,7 +69,8 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
69
69
|
});
|
|
70
70
|
_8_10_1.test.describe('Unstructured Extraction', () => {
|
|
71
71
|
for (const params of unstructuredTestCases) {
|
|
72
|
-
|
|
72
|
+
// Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
|
|
73
|
+
_8_10_1.test.skip(`${params.provider} unstructured (${params.model}) - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
73
74
|
_8_10_1.test.slow();
|
|
74
75
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} unstructured` + ' - IDP_Application_Name');
|
|
75
76
|
idpDocumentExtractionTemplateName = await (0, randomName_1.randomNameAgregator)(`${params.provider} unstructured` + ' - IDP_Extraction_Template_Name');
|
|
@@ -94,10 +95,11 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
94
95
|
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
95
96
|
});
|
|
96
97
|
await _8_10_1.test.step('Add an IDP application to the project', async () => {
|
|
97
|
-
// Workspace
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
// Workspace root only: an IDP application can never be created
|
|
99
|
+
// inside a process application. The entry point there is the create
|
|
100
|
+
// menu or the empty state, depending on whether the workspace
|
|
101
|
+
// already holds a resource.
|
|
102
|
+
await modelerHomePage.startIdpApplicationCreation();
|
|
101
103
|
});
|
|
102
104
|
await _8_10_1.test.step('Creates a document extraction template', async () => {
|
|
103
105
|
await modelerHomePage.enterIdpApplicationName(idpApplicationName);
|
|
@@ -143,7 +145,8 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
143
145
|
});
|
|
144
146
|
_8_10_1.test.describe('Structured Extraction', () => {
|
|
145
147
|
for (const params of structuredTestCases) {
|
|
146
|
-
|
|
148
|
+
// Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
|
|
149
|
+
_8_10_1.test.skip(`${params.provider} structured - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
147
150
|
_8_10_1.test.slow();
|
|
148
151
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} structured` + ' - IDP_Application_Name');
|
|
149
152
|
idpDocumentExtractionTemplateName = await (0, randomName_1.randomNameAgregator)(`${params.provider} structured` + ' - IDP_Extraction_Template_Name');
|
|
@@ -168,10 +171,11 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
168
171
|
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
169
172
|
});
|
|
170
173
|
await _8_10_1.test.step('Add an IDP application to the project', async () => {
|
|
171
|
-
// Workspace
|
|
172
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
// Workspace root only: an IDP application can never be created
|
|
175
|
+
// inside a process application. The entry point there is the create
|
|
176
|
+
// menu or the empty state, depending on whether the workspace
|
|
177
|
+
// already holds a resource.
|
|
178
|
+
await modelerHomePage.startIdpApplicationCreation();
|
|
175
179
|
});
|
|
176
180
|
await _8_10_1.test.step('Creates a document extraction template', async () => {
|
|
177
181
|
await modelerHomePage.enterIdpApplicationName(idpApplicationName);
|
|
@@ -224,7 +228,8 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
224
228
|
});
|
|
225
229
|
_8_10_1.test.describe('Classification Template', () => {
|
|
226
230
|
for (const params of classificationTestCases) {
|
|
227
|
-
|
|
231
|
+
// Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
|
|
232
|
+
_8_10_1.test.skip(`${params.provider} classification - User creates an idp application with a classification template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
228
233
|
_8_10_1.test.slow();
|
|
229
234
|
const idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} classification` + ' - IDP_Application_Name');
|
|
230
235
|
const idpClassificationTemplateName = await (0, randomName_1.randomNameAgregator)(`${params.provider} classification` +
|
|
@@ -250,10 +255,11 @@ _8_10_1.test.describe('IDP User Flow Tests', () => {
|
|
|
250
255
|
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
251
256
|
});
|
|
252
257
|
await _8_10_1.test.step('Add an IDP application to the project', async () => {
|
|
253
|
-
// Workspace
|
|
254
|
-
//
|
|
255
|
-
|
|
256
|
-
|
|
258
|
+
// Workspace root only: an IDP application can never be created
|
|
259
|
+
// inside a process application. The entry point there is the create
|
|
260
|
+
// menu or the empty state, depending on whether the workspace
|
|
261
|
+
// already holds a resource.
|
|
262
|
+
await modelerHomePage.startIdpApplicationCreation();
|
|
257
263
|
});
|
|
258
264
|
await _8_10_1.test.step('Creates a classification template', async () => {
|
|
259
265
|
await modelerHomePage.enterIdpApplicationName(idpApplicationName);
|