@camunda/e2e-test-suite 0.0.37 → 0.0.38
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.
|
@@ -5,20 +5,39 @@ declare class ClusterSecretsPage {
|
|
|
5
5
|
readonly keyInput: Locator;
|
|
6
6
|
readonly valueInput: Locator;
|
|
7
7
|
readonly createButton: Locator;
|
|
8
|
-
readonly
|
|
8
|
+
readonly optionsButton: Locator;
|
|
9
9
|
readonly deleteConnectorSecretButton: Locator;
|
|
10
10
|
readonly deleteConnectorSecretSubButton: Locator;
|
|
11
11
|
readonly dialog: Locator;
|
|
12
|
+
readonly importButton: Locator;
|
|
13
|
+
readonly fromFileButton: Locator;
|
|
14
|
+
readonly bulkImportTextArea: Locator;
|
|
15
|
+
readonly dialogImportButton: Locator;
|
|
16
|
+
readonly secretsSearchBox: Locator;
|
|
17
|
+
readonly clusterBanner: Locator;
|
|
18
|
+
readonly clusterLink: (name: string) => Locator;
|
|
19
|
+
readonly clusterSecretTab: Locator;
|
|
20
|
+
readonly confirmDeleteInput: Locator;
|
|
12
21
|
constructor(page: Page);
|
|
13
22
|
deleteConnectorSecretsIfExist(): Promise<void>;
|
|
14
|
-
clickCreateNewSecretButton(): Promise<void>;
|
|
23
|
+
clickCreateNewSecretButton(cluster: string): Promise<void>;
|
|
24
|
+
clickClusterBanner(): Promise<void>;
|
|
25
|
+
clickCluster(name: string): Promise<void>;
|
|
15
26
|
clickKeyInput(): Promise<void>;
|
|
16
27
|
fillKeyInput(key: string): Promise<void>;
|
|
17
28
|
clickValueInput(): Promise<void>;
|
|
18
29
|
fillValueInput(value: string): Promise<void>;
|
|
19
30
|
clickCreateButton(): Promise<void>;
|
|
20
|
-
createNewSecret(key: string, value: string): Promise<void>;
|
|
21
|
-
createSetOfSecrets(secrets: {
|
|
31
|
+
createNewSecret(key: string, value: string, cluster: string): Promise<void>;
|
|
32
|
+
createSetOfSecrets(cluster: string, secrets: {
|
|
33
|
+
name: string;
|
|
34
|
+
value: string;
|
|
35
|
+
}[]): Promise<void>;
|
|
36
|
+
assertSecretsOrCreate(cluster: string, secrets: {
|
|
37
|
+
name: string;
|
|
38
|
+
value: string;
|
|
39
|
+
}[]): Promise<void>;
|
|
40
|
+
bulkImportSecrets(secrets: {
|
|
22
41
|
name: string;
|
|
23
42
|
value: string;
|
|
24
43
|
}[]): Promise<void>;
|
|
@@ -3,16 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ClusterSecretsPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
5
|
const sleep_1 = require("../../utils/sleep");
|
|
6
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
6
7
|
class ClusterSecretsPage {
|
|
7
8
|
page;
|
|
8
9
|
createNewSecretButton;
|
|
9
10
|
keyInput;
|
|
10
11
|
valueInput;
|
|
11
12
|
createButton;
|
|
12
|
-
|
|
13
|
+
optionsButton;
|
|
13
14
|
deleteConnectorSecretButton;
|
|
14
15
|
deleteConnectorSecretSubButton;
|
|
15
16
|
dialog;
|
|
17
|
+
importButton;
|
|
18
|
+
fromFileButton;
|
|
19
|
+
bulkImportTextArea;
|
|
20
|
+
dialogImportButton;
|
|
21
|
+
secretsSearchBox;
|
|
22
|
+
clusterBanner;
|
|
23
|
+
clusterLink;
|
|
24
|
+
clusterSecretTab;
|
|
25
|
+
confirmDeleteInput;
|
|
16
26
|
constructor(page) {
|
|
17
27
|
this.page = page;
|
|
18
28
|
this.createNewSecretButton = page.getByRole('button', {
|
|
@@ -21,21 +31,38 @@ class ClusterSecretsPage {
|
|
|
21
31
|
this.keyInput = page.getByLabel('Key');
|
|
22
32
|
this.valueInput = page.getByLabel('Value', { exact: true });
|
|
23
33
|
this.createButton = page.getByRole('button', { name: 'Create', exact: true });
|
|
24
|
-
this.
|
|
25
|
-
name: '
|
|
26
|
-
|
|
27
|
-
});
|
|
34
|
+
this.optionsButton = page
|
|
35
|
+
.getByRole('cell', { name: 'Options' })
|
|
36
|
+
.getByRole('button');
|
|
28
37
|
this.deleteConnectorSecretButton = page.getByRole('menuitem', {
|
|
29
|
-
name: '
|
|
38
|
+
name: 'Delete',
|
|
39
|
+
exact: true,
|
|
30
40
|
});
|
|
31
41
|
this.deleteConnectorSecretSubButton = page.getByRole('button', {
|
|
32
42
|
name: 'danger Delete',
|
|
33
43
|
});
|
|
34
44
|
this.dialog = page.getByRole('dialog');
|
|
45
|
+
this.importButton = page.getByRole('button', { name: 'Import', exact: true });
|
|
46
|
+
this.fromFileButton = page.getByText('from File', { exact: true });
|
|
47
|
+
this.bulkImportTextArea = page.locator('[id="env-content-input-secrets-bulk-import"]');
|
|
48
|
+
this.dialogImportButton = this.page
|
|
49
|
+
.getByRole('dialog')
|
|
50
|
+
.getByRole('button', { name: 'Import', exact: true });
|
|
51
|
+
this.secretsSearchBox = page.getByRole('searchbox', { name: 'Filter table' });
|
|
52
|
+
this.clusterBanner = this.page
|
|
53
|
+
.getByRole('banner')
|
|
54
|
+
.getByRole('link', { name: 'Clusters' });
|
|
55
|
+
this.clusterLink = (name) => page.getByRole('link', { name: name });
|
|
56
|
+
this.clusterSecretTab = this.page.getByRole('tab', {
|
|
57
|
+
name: 'Connector Secrets',
|
|
58
|
+
});
|
|
59
|
+
this.confirmDeleteInput = page.getByRole('textbox', {
|
|
60
|
+
name: 'Type the word DELETE to confirm',
|
|
61
|
+
});
|
|
35
62
|
}
|
|
36
63
|
async deleteConnectorSecretsIfExist() {
|
|
37
64
|
try {
|
|
38
|
-
await (0, test_1.expect)(this.
|
|
65
|
+
await (0, test_1.expect)(this.optionsButton.first()).toBeVisible({
|
|
39
66
|
timeout: 10000,
|
|
40
67
|
});
|
|
41
68
|
}
|
|
@@ -43,9 +70,9 @@ class ClusterSecretsPage {
|
|
|
43
70
|
return; //No Connector Secrets found in the list
|
|
44
71
|
}
|
|
45
72
|
try {
|
|
46
|
-
let
|
|
47
|
-
while (
|
|
48
|
-
const operationButton =
|
|
73
|
+
let options = await this.optionsButton.all();
|
|
74
|
+
while (options.length > 0) {
|
|
75
|
+
const operationButton = options[0];
|
|
49
76
|
if (await operationButton.isVisible()) {
|
|
50
77
|
await operationButton.click({ timeout: 60000 });
|
|
51
78
|
await this.deleteConnectorSecretButton.click({ timeout: 60000 });
|
|
@@ -57,9 +84,9 @@ class ClusterSecretsPage {
|
|
|
57
84
|
}
|
|
58
85
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
59
86
|
await sleep(3000);
|
|
60
|
-
|
|
87
|
+
options = await this.optionsButton.all();
|
|
61
88
|
}
|
|
62
|
-
await (0, test_1.expect)(this.
|
|
89
|
+
await (0, test_1.expect)(this.optionsButton).not.toBeVisible({
|
|
63
90
|
timeout: 30000,
|
|
64
91
|
});
|
|
65
92
|
}
|
|
@@ -67,26 +94,25 @@ class ClusterSecretsPage {
|
|
|
67
94
|
console.error('Error during Connector Secrets deletion: ', error);
|
|
68
95
|
}
|
|
69
96
|
}
|
|
70
|
-
async clickCreateNewSecretButton() {
|
|
97
|
+
async clickCreateNewSecretButton(cluster) {
|
|
71
98
|
try {
|
|
72
99
|
await this.createNewSecretButton.click({ timeout: 60000 });
|
|
73
100
|
}
|
|
74
101
|
catch (error) {
|
|
75
|
-
await this.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
await this.page
|
|
80
|
-
.getByRole('link', { name: 'Test Cluster' })
|
|
81
|
-
.click({ timeout: 60000 });
|
|
82
|
-
await this.page
|
|
83
|
-
.getByRole('tab', {
|
|
84
|
-
name: 'Connector Secrets',
|
|
85
|
-
})
|
|
86
|
-
.click({ timeout: 60000 });
|
|
87
|
-
await this.createNewSecretButton.click({ timeout: 60000 });
|
|
102
|
+
await this.clickClusterBanner();
|
|
103
|
+
await this.clickCluster(cluster);
|
|
104
|
+
await this.clusterSecretTab.click({ timeout: 30000 });
|
|
105
|
+
await this.createNewSecretButton.click({ timeout: 30000 });
|
|
88
106
|
}
|
|
89
107
|
}
|
|
108
|
+
async clickClusterBanner() {
|
|
109
|
+
await (0, test_1.expect)(this.clusterBanner).toBeVisible({ timeout: 30000 });
|
|
110
|
+
await this.clusterBanner.click({ timeout: 60000 });
|
|
111
|
+
}
|
|
112
|
+
async clickCluster(name) {
|
|
113
|
+
await (0, test_1.expect)(this.clusterLink(name)).toBeVisible({ timeout: 30000 });
|
|
114
|
+
await this.clusterLink(name).click();
|
|
115
|
+
}
|
|
90
116
|
async clickKeyInput() {
|
|
91
117
|
await (0, test_1.expect)(this.keyInput).toBeVisible({ timeout: 60000 });
|
|
92
118
|
await this.keyInput.click({ timeout: 30000 });
|
|
@@ -124,8 +150,8 @@ class ClusterSecretsPage {
|
|
|
124
150
|
await (0, test_1.expect)(this.createButton).toBeVisible({ timeout: 60000 });
|
|
125
151
|
await this.createButton.click({ timeout: 30000 });
|
|
126
152
|
}
|
|
127
|
-
async createNewSecret(key, value) {
|
|
128
|
-
await this.clickCreateNewSecretButton();
|
|
153
|
+
async createNewSecret(key, value, cluster) {
|
|
154
|
+
await this.clickCreateNewSecretButton(cluster);
|
|
129
155
|
await this.clickKeyInput();
|
|
130
156
|
await this.fillKeyInput(key);
|
|
131
157
|
await (0, sleep_1.sleep)(1000);
|
|
@@ -140,16 +166,47 @@ class ClusterSecretsPage {
|
|
|
140
166
|
timeout: 60000,
|
|
141
167
|
});
|
|
142
168
|
}
|
|
143
|
-
async createSetOfSecrets(secrets) {
|
|
169
|
+
async createSetOfSecrets(cluster, secrets) {
|
|
170
|
+
await this.bulkImportSecrets(secrets);
|
|
171
|
+
await this.assertSecretsOrCreate(cluster, secrets);
|
|
172
|
+
}
|
|
173
|
+
async assertSecretsOrCreate(cluster, secrets) {
|
|
144
174
|
for (const secret of secrets) {
|
|
145
175
|
try {
|
|
146
|
-
|
|
147
|
-
await this.
|
|
176
|
+
await (0, test_1.expect)(this.secretsSearchBox).toBeVisible();
|
|
177
|
+
await this.secretsSearchBox.click();
|
|
178
|
+
await this.secretsSearchBox.fill(secret.name);
|
|
179
|
+
const row = this.page.getByRole('row', {
|
|
180
|
+
name: new RegExp(`^${secret.name}\\b`, 'i'),
|
|
181
|
+
});
|
|
182
|
+
await (0, test_1.expect)(row).toBeVisible({ timeout: 5000 });
|
|
148
183
|
}
|
|
149
184
|
catch (error) {
|
|
150
|
-
|
|
185
|
+
console.error(`Creating secret for ${secret.name}`);
|
|
186
|
+
await this.createNewSecret(secret.name, secret.value, cluster);
|
|
151
187
|
}
|
|
152
188
|
}
|
|
153
189
|
}
|
|
190
|
+
async bulkImportSecrets(secrets) {
|
|
191
|
+
const mapped = secrets
|
|
192
|
+
.map((secret) => `${secret.name}=${secret.value}`)
|
|
193
|
+
.join('\n');
|
|
194
|
+
await this.importButton.click();
|
|
195
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.fromFileButton, {
|
|
196
|
+
postAction: async () => {
|
|
197
|
+
await this.importButton.click();
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
await this.fromFileButton.click();
|
|
201
|
+
await this.bulkImportTextArea.click();
|
|
202
|
+
await this.bulkImportTextArea.fill(mapped);
|
|
203
|
+
await this.dialogImportButton.click();
|
|
204
|
+
await (0, test_1.expect)(this.page.getByText('Importing secrets...')).not.toBeVisible({
|
|
205
|
+
timeout: 60000,
|
|
206
|
+
});
|
|
207
|
+
await (0, test_1.expect)(this.createNewSecretButton).toBeVisible({
|
|
208
|
+
timeout: 60000,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
154
211
|
}
|
|
155
212
|
exports.ClusterSecretsPage = ClusterSecretsPage;
|
|
@@ -9,9 +9,11 @@ const UtilitiesPage_1 = require("../../pages/8.9/UtilitiesPage");
|
|
|
9
9
|
const UtilitiesPage_2 = require("../../pages/8.9/UtilitiesPage");
|
|
10
10
|
const UtilitiesPage_3 = require("../../pages/8.9/UtilitiesPage");
|
|
11
11
|
const apiHelpers_1 = require("../../utils/apiHelpers");
|
|
12
|
+
const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
|
|
12
13
|
_8_9_1.test.describe.configure({ mode: 'parallel' });
|
|
13
14
|
_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
14
|
-
const
|
|
15
|
+
const defaultClusterName = 'Test Cluster';
|
|
16
|
+
const awsCluster = 'AWS Cluster';
|
|
15
17
|
_8_9_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
16
18
|
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
17
19
|
});
|
|
@@ -39,7 +41,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
39
41
|
});
|
|
40
42
|
await _8_9_1.test.step('Create BPMN Diagram with REST Connector and Start Process Instance', async () => {
|
|
41
43
|
await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'https://camunda.proxy.beeceptor.com/pre-prod/no-auth-test', 'noAuth', 'body');
|
|
42
|
-
await modelerCreatePage.runProcessInstance(
|
|
44
|
+
await modelerCreatePage.runProcessInstance(defaultClusterName);
|
|
43
45
|
});
|
|
44
46
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
45
47
|
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
@@ -79,7 +81,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
79
81
|
});
|
|
80
82
|
await _8_9_1.test.step('Create BPMN Diagram with REST Connector with Bearer Token Auth and Start Process Instance', async () => {
|
|
81
83
|
await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'https://camunda.proxy.beeceptor.com/pre-prod/bearer-auth-test', 'bearer', '{message:response.body}');
|
|
82
|
-
await modelerCreatePage.runProcessInstance(
|
|
84
|
+
await modelerCreatePage.runProcessInstance(defaultClusterName);
|
|
83
85
|
await (0, _setup_1.performBearerTokenAuthPostRequest)('https://camunda.proxy.beeceptor.com/pre-prod/bearer-auth-test', 'thisisabearertoken');
|
|
84
86
|
});
|
|
85
87
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
@@ -133,7 +135,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
133
135
|
await modelerCreatePage.clickAppendEndEventButton();
|
|
134
136
|
await (0, sleep_1.sleep)(20000);
|
|
135
137
|
await page.reload();
|
|
136
|
-
await modelerCreatePage.deployDiagram(
|
|
138
|
+
await modelerCreatePage.deployDiagram(defaultClusterName);
|
|
137
139
|
});
|
|
138
140
|
await _8_9_1.test.step('Assert Webhook Is Active In Cluster And Make Authorization Request', async () => {
|
|
139
141
|
await modelerCreatePage.clickStartEventElement();
|
|
@@ -149,7 +151,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
149
151
|
});
|
|
150
152
|
await _8_9_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
|
|
151
153
|
await appsPage.clickCamundaApps();
|
|
152
|
-
await appsPage.clickOperate(
|
|
154
|
+
await appsPage.clickOperate(defaultClusterName);
|
|
153
155
|
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({
|
|
154
156
|
timeout: 120000,
|
|
155
157
|
});
|
|
@@ -159,7 +161,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
159
161
|
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
|
|
160
162
|
});
|
|
161
163
|
});
|
|
162
|
-
(0, _8_9_1.test)('Connector Secrets User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
|
|
164
|
+
(0, _8_9_1.test)('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
163
165
|
_8_9_1.test.slow();
|
|
164
166
|
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
165
167
|
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
@@ -167,10 +169,9 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
167
169
|
timeout: 20000,
|
|
168
170
|
});
|
|
169
171
|
await appsPage.clickCamundaApps();
|
|
170
|
-
await (0, test_1.expect)(appsPage.modelerLink).toBeVisible({ timeout: 20000 });
|
|
171
172
|
await appsPage.clickModeler();
|
|
172
173
|
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
173
|
-
timeout:
|
|
174
|
+
timeout: 30000,
|
|
174
175
|
});
|
|
175
176
|
});
|
|
176
177
|
await _8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
@@ -180,21 +181,77 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
180
181
|
});
|
|
181
182
|
await _8_9_1.test.step('Create BPMN Diagram with REST Connector using secrets and Start Process Instance', async () => {
|
|
182
183
|
await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'secrets.endpoint_url', 'basic', '{message:response.body.message}', 'result', { username: 'secrets.username', password: 'secrets.password' });
|
|
183
|
-
await modelerCreatePage.runProcessInstance(
|
|
184
|
-
await (0,
|
|
184
|
+
await modelerCreatePage.runProcessInstance(defaultClusterName);
|
|
185
|
+
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible();
|
|
185
186
|
});
|
|
186
187
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
187
|
-
await
|
|
188
|
-
|
|
188
|
+
await appsPage.clickCamundaApps();
|
|
189
|
+
await appsPage.clickOperate(defaultClusterName);
|
|
190
|
+
await (0, test_1.expect)(operateHomePage.operateBanner).toBeVisible();
|
|
191
|
+
await operateHomePage.clickProcessesTab();
|
|
192
|
+
await operateProcessesPage.clickProcessCompletedCheckbox();
|
|
193
|
+
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
194
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.completedIcon, {
|
|
195
|
+
postAction: async () => {
|
|
196
|
+
await page.reload();
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.variablesList, {
|
|
200
|
+
postAction: async () => {
|
|
201
|
+
await page.reload();
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.messageVariable.getByText('"Message from Mock!"'), {
|
|
205
|
+
postAction: async () => {
|
|
206
|
+
await page.reload();
|
|
207
|
+
},
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
(0, _8_9_1.test)('Connector Secrets User Flow - AWS', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
|
|
212
|
+
_8_9_1.test.slow();
|
|
213
|
+
const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
|
|
214
|
+
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
215
|
+
await appsPage.clickCamundaApps();
|
|
216
|
+
await appsPage.clickModeler();
|
|
217
|
+
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
218
|
+
timeout: 30000,
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
await _8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
|
|
222
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
223
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
224
|
+
await modelerHomePage.clickBpmnTemplateOption();
|
|
225
|
+
});
|
|
226
|
+
await _8_9_1.test.step('Create BPMN Diagram with REST Connector using secrets and Start Process Instance', async () => {
|
|
227
|
+
await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'secrets.endpoint_url', 'basic', '{message:response.body.message}', 'result', { username: 'secrets.username', password: 'secrets.password' });
|
|
228
|
+
await modelerCreatePage.runProcessInstance(awsCluster);
|
|
229
|
+
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible();
|
|
230
|
+
});
|
|
231
|
+
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
232
|
+
await appsPage.clickCamundaApps();
|
|
233
|
+
await appsPage.clickOperate(awsCluster);
|
|
234
|
+
await (0, test_1.expect)(operateHomePage.operateBanner).toBeVisible({
|
|
235
|
+
timeout: 30000,
|
|
236
|
+
});
|
|
237
|
+
await operateHomePage.clickProcessesTab();
|
|
238
|
+
await operateProcessesPage.clickProcessCompletedCheckbox();
|
|
239
|
+
await operateProcessesPage.clickProcessInstanceLink(processName);
|
|
240
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.completedIcon, {
|
|
241
|
+
postAction: async () => {
|
|
242
|
+
await page.reload();
|
|
243
|
+
},
|
|
244
|
+
});
|
|
245
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.variablesList, {
|
|
246
|
+
postAction: async () => {
|
|
247
|
+
await page.reload();
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.messageVariable.getByText('"Message from Mock!"'), {
|
|
251
|
+
postAction: async () => {
|
|
252
|
+
await page.reload();
|
|
253
|
+
},
|
|
189
254
|
});
|
|
190
|
-
await modelerCreatePage.clickViewProcessInstanceLink();
|
|
191
|
-
const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
|
|
192
|
-
const operateTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
|
|
193
|
-
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTabProcessInstancePage.completedIcon, 'Completed icon');
|
|
194
|
-
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTab.getByTestId('variables-list'), 'Variable list', 60000);
|
|
195
|
-
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTab
|
|
196
|
-
.getByTestId('variable-message')
|
|
197
|
-
.getByText('"Message from Mock!"'), 'Connector response message', 60000);
|
|
198
255
|
});
|
|
199
256
|
});
|
|
200
257
|
(0, _8_9_1.test)('Marketplace Connector User Flow', async ({ page, homePage, appsPage, modelerHomePage, modelerCreatePage, connectorMarketplacePage, connectorSettingsPage, }) => {
|
|
@@ -245,7 +302,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
245
302
|
await modelerCreatePage.clickAppendEndEventButton();
|
|
246
303
|
await modelerCreatePage.clickCanvas();
|
|
247
304
|
await modelerCreatePage.assertThreeElementsVisible();
|
|
248
|
-
await modelerCreatePage.runProcessInstance(
|
|
305
|
+
await modelerCreatePage.runProcessInstance(defaultClusterName);
|
|
249
306
|
});
|
|
250
307
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
|
|
251
308
|
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
@@ -299,7 +356,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
299
356
|
await modelerCreatePage.clickAppendEndEventButton();
|
|
300
357
|
await (0, sleep_1.sleep)(10000);
|
|
301
358
|
await page.reload();
|
|
302
|
-
await modelerCreatePage.runProcessInstance(
|
|
359
|
+
await modelerCreatePage.runProcessInstance(defaultClusterName);
|
|
303
360
|
});
|
|
304
361
|
await _8_9_1.test.step('Assert Webhook Is Active In Cluster And Make Authorization Request', async () => {
|
|
305
362
|
await modelerCreatePage.clickSecondElement();
|
|
@@ -319,7 +376,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
319
376
|
await _8_9_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
|
|
320
377
|
await (0, sleep_1.sleep)(90000);
|
|
321
378
|
await appsPage.clickCamundaApps();
|
|
322
|
-
await appsPage.clickOperate(
|
|
379
|
+
await appsPage.clickOperate(defaultClusterName);
|
|
323
380
|
await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
|
|
324
381
|
await operateHomePage.clickProcessesTab();
|
|
325
382
|
await operateProcessesPage.clickProcessCompletedCheckbox();
|
|
@@ -335,7 +392,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
335
392
|
let credentials = {};
|
|
336
393
|
await _8_9_1.test.step('Create Zeebe API Client', async () => {
|
|
337
394
|
await homePage.clickClusters();
|
|
338
|
-
await clusterPage.clickClusterLink(
|
|
395
|
+
await clusterPage.clickClusterLink(defaultClusterName);
|
|
339
396
|
await clusterDetailsPage.clickAPITab();
|
|
340
397
|
credentials = await clusterDetailsPage.createAPIClientAndReturnVariables(apiClientName, false);
|
|
341
398
|
await clusterDetailsPage.clickCloseModalButton();
|
|
@@ -348,7 +405,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
348
405
|
});
|
|
349
406
|
});
|
|
350
407
|
await _8_9_1.test.step('Open Cross Component Test Project and Create a REST Connector Document Handling Flow', async () => {
|
|
351
|
-
await (0, UtilitiesPage_3.modelAndRunConnectorsDocHandlingDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage,
|
|
408
|
+
await (0, UtilitiesPage_3.modelAndRunConnectorsDocHandlingDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, defaultClusterName, `"${credentials.zeebeUrl}"`, `"${credentials.zeebeClientId}"`, `"${credentials.zeebeClientSecret}"`);
|
|
352
409
|
});
|
|
353
410
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert variable values are correct', async () => {
|
|
354
411
|
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
@@ -387,7 +444,7 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
|
|
|
387
444
|
});
|
|
388
445
|
});
|
|
389
446
|
await _8_9_1.test.step('Open Cross Component Test Project and Create a REST Connector Document Handling Flow', async () => {
|
|
390
|
-
await (0, UtilitiesPage_1.modelAndRunConnectorsTimerEventDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage,
|
|
447
|
+
await (0, UtilitiesPage_1.modelAndRunConnectorsTimerEventDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, defaultClusterName, connectorTemplatePage);
|
|
391
448
|
});
|
|
392
449
|
await _8_9_1.test.step('View Process Instance in Operate, assert it completes and assert variable values are correct', async () => {
|
|
393
450
|
await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
|
|
@@ -6,6 +6,7 @@ const _setup_1 = require("../../test-setup.js");
|
|
|
6
6
|
const UtilitiesPage_1 = require("../../pages/8.9/UtilitiesPage");
|
|
7
7
|
const randomName_1 = require("../../utils/randomName");
|
|
8
8
|
const fileUpload_1 = require("../../utils/fileUpload");
|
|
9
|
+
const connectorSecrets_1 = require("../../utils/connectorSecrets");
|
|
9
10
|
let idpApplicationName;
|
|
10
11
|
let idpDocumentExtractionTemplateName;
|
|
11
12
|
const unstructuredTestCases = [
|
|
@@ -50,37 +51,43 @@ const structuredTestCases = [
|
|
|
50
51
|
_8_9_1.test.describe.configure({ mode: 'parallel' });
|
|
51
52
|
_8_9_1.test.describe('IDP User Flow Tests', () => {
|
|
52
53
|
const clusterName = 'Test Cluster';
|
|
53
|
-
_8_9_1.test.beforeEach(async ({ page, loginPage, homePage, appsPage, modelerHomePage }, testInfo) => {
|
|
54
|
-
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 9000);
|
|
55
|
-
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
56
|
-
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
57
|
-
timeout: 120000,
|
|
58
|
-
});
|
|
59
|
-
await appsPage.clickCamundaApps();
|
|
60
|
-
await appsPage.clickModeler();
|
|
61
|
-
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
62
|
-
timeout: 120000,
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
66
|
-
await modelerHomePage.clickMessageBanner();
|
|
67
|
-
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
68
|
-
});
|
|
69
|
-
await _8_9_1.test.step('Add an IDP application to the project', async () => {
|
|
70
|
-
await modelerHomePage.clickDiagramTypeDropdown();
|
|
71
|
-
await modelerHomePage.clickIdpApplicationTemplateOption();
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
54
|
_8_9_1.test.afterEach(async ({ page }, testInfo) => {
|
|
75
55
|
await (0, _setup_1.captureScreenshot)(page, testInfo);
|
|
76
56
|
await (0, _setup_1.captureFailureVideo)(page, testInfo);
|
|
77
57
|
});
|
|
58
|
+
_8_9_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
|
|
59
|
+
await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, (testInfo.workerIndex + 1) * 1000);
|
|
60
|
+
});
|
|
78
61
|
_8_9_1.test.describe('Unstructured Extraction', () => {
|
|
79
62
|
for (const params of unstructuredTestCases) {
|
|
80
|
-
(0, _8_9_1.test)(`${params.provider} unstructured (${params.model}) - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, }) => {
|
|
63
|
+
(0, _8_9_1.test)(`${params.provider} unstructured (${params.model}) - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
81
64
|
_8_9_1.test.slow();
|
|
82
65
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} unstructured` + ' - IDP_Application_Name');
|
|
83
66
|
idpDocumentExtractionTemplateName = await (0, randomName_1.randomNameAgregator)(`${params.provider} unstructured` + ' - IDP_Extraction_Template_Name');
|
|
67
|
+
await _8_9_1.test.step('Navigate to Connectors Secrets', async () => {
|
|
68
|
+
await homePage.clickClusters();
|
|
69
|
+
await clusterPage.clickClusterLink(clusterName);
|
|
70
|
+
await clusterPage.clickConnectorSecretsTab(clusterName);
|
|
71
|
+
await clusterSecretsPage.assertSecretsOrCreate(clusterName, connectorSecrets_1.allConnectorSecrets[params.provider]);
|
|
72
|
+
});
|
|
73
|
+
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
74
|
+
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
75
|
+
timeout: 120000,
|
|
76
|
+
});
|
|
77
|
+
await appsPage.clickCamundaApps();
|
|
78
|
+
await appsPage.clickModeler();
|
|
79
|
+
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
80
|
+
timeout: 120000,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
84
|
+
await modelerHomePage.clickMessageBanner();
|
|
85
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
86
|
+
});
|
|
87
|
+
await _8_9_1.test.step('Add an IDP application to the project', async () => {
|
|
88
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
89
|
+
await modelerHomePage.clickIdpApplicationTemplateOption();
|
|
90
|
+
});
|
|
84
91
|
await _8_9_1.test.step('Creates a document extraction template', async () => {
|
|
85
92
|
await modelerHomePage.enterIdpApplicationName(idpApplicationName);
|
|
86
93
|
await modelerHomePage.selectCluster(clusterName);
|
|
@@ -125,10 +132,34 @@ _8_9_1.test.describe('IDP User Flow Tests', () => {
|
|
|
125
132
|
});
|
|
126
133
|
_8_9_1.test.describe('Structured Extraction', () => {
|
|
127
134
|
for (const params of structuredTestCases) {
|
|
128
|
-
(0, _8_9_1.test)(`${params.provider} structured - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, }) => {
|
|
135
|
+
(0, _8_9_1.test)(`${params.provider} structured - User creates an idp application with a document extraction template`, async ({ page, idpCreatePage, modelerHomePage, homePage, appsPage, clusterPage, clusterSecretsPage, }) => {
|
|
129
136
|
_8_9_1.test.slow();
|
|
130
137
|
idpApplicationName = await (0, randomName_1.randomNameAgregator)(`${params.provider} structured` + ' - IDP_Application_Name');
|
|
131
138
|
idpDocumentExtractionTemplateName = await (0, randomName_1.randomNameAgregator)(`${params.provider} structured` + ' - IDP_Extraction_Template_Name');
|
|
139
|
+
await _8_9_1.test.step('Navigate to Connectors Secrets', async () => {
|
|
140
|
+
await homePage.clickClusters();
|
|
141
|
+
await clusterPage.clickClusterLink(clusterName);
|
|
142
|
+
await clusterPage.clickConnectorSecretsTab(clusterName);
|
|
143
|
+
await clusterSecretsPage.assertSecretsOrCreate(clusterName, connectorSecrets_1.allConnectorSecrets[params.provider]);
|
|
144
|
+
});
|
|
145
|
+
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|
|
146
|
+
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
147
|
+
timeout: 120000,
|
|
148
|
+
});
|
|
149
|
+
await appsPage.clickCamundaApps();
|
|
150
|
+
await appsPage.clickModeler();
|
|
151
|
+
await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
|
|
152
|
+
timeout: 120000,
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
await _8_9_1.test.step('Navigate to Cross Component Test Project', async () => {
|
|
156
|
+
await modelerHomePage.clickMessageBanner();
|
|
157
|
+
await modelerHomePage.clickCrossComponentProjectFolder();
|
|
158
|
+
});
|
|
159
|
+
await _8_9_1.test.step('Add an IDP application to the project', async () => {
|
|
160
|
+
await modelerHomePage.clickDiagramTypeDropdown();
|
|
161
|
+
await modelerHomePage.clickIdpApplicationTemplateOption();
|
|
162
|
+
});
|
|
132
163
|
await _8_9_1.test.step('Creates a document extraction template', async () => {
|
|
133
164
|
await modelerHomePage.enterIdpApplicationName(idpApplicationName);
|
|
134
165
|
await modelerHomePage.selectCluster(clusterName);
|
|
@@ -4,113 +4,7 @@ const test_1 = require("@playwright/test");
|
|
|
4
4
|
const _8_9_1 = require("../../fixtures/8.9");
|
|
5
5
|
const _setup_1 = require("../../test-setup.js");
|
|
6
6
|
const sleep_1 = require("../../utils/sleep");
|
|
7
|
-
const
|
|
8
|
-
{
|
|
9
|
-
name: 'endpoint_url',
|
|
10
|
-
value: 'https://camunda.proxy.beeceptor.com/pre-prod/basic-auth-test',
|
|
11
|
-
},
|
|
12
|
-
{ name: 'username', value: 'username' },
|
|
13
|
-
{ name: 'password', value: 'password' },
|
|
14
|
-
];
|
|
15
|
-
const awsSecretsValues = [
|
|
16
|
-
{ name: 'IDP_AWS_REGION', value: process.env.IDP_AWS_REGION },
|
|
17
|
-
{ name: 'IDP_AWS_BUCKET_NAME', value: process.env.IDP_AWS_BUCKET_NAME },
|
|
18
|
-
{ name: 'IDP_AWS_SECRETKEY', value: process.env.IDP_AWS_SECRETKEY },
|
|
19
|
-
{ name: 'IDP_AWS_ACCESSKEY', value: process.env.IDP_AWS_ACCESSKEY },
|
|
20
|
-
];
|
|
21
|
-
const openAiSecretsValues = [
|
|
22
|
-
{ name: 'OPENAI_API_KEY', value: process.env.OPENAI_API_KEY },
|
|
23
|
-
{
|
|
24
|
-
name: 'DB_VECTOR_OPENAI_API_KEY',
|
|
25
|
-
value: process.env.DB_VECTOR_OPENAI_API_KEY,
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
const gcpSecretsValues = [
|
|
29
|
-
{
|
|
30
|
-
name: 'IDP_GCP_SERVICE_ACCOUNT',
|
|
31
|
-
value: process.env.IDP_GCP_SERVICE_ACCOUNT,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'IDP_GCP_VERTEX_BUCKET_NAME',
|
|
35
|
-
value: process.env.IDP_GCP_VERTEX_BUCKET_NAME,
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: 'IDP_GCP_VERTEX_PROJECT_ID',
|
|
39
|
-
value: process.env.IDP_GCP_VERTEX_PROJECT_ID,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: 'IDP_GCP_DOCUMENT_AI_PROJECT_ID',
|
|
43
|
-
value: process.env.IDP_GCP_DOCUMENT_AI_PROJECT_ID,
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'IDP_GCP_DOCUMENT_AI_PROCESSOR_ID',
|
|
47
|
-
value: process.env.IDP_GCP_DOCUMENT_AI_PROCESSOR_ID,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
name: 'IDP_GCP_DOCUMENT_AI_REGION',
|
|
51
|
-
value: process.env.IDP_GCP_DOCUMENT_AI_REGION,
|
|
52
|
-
},
|
|
53
|
-
{ name: 'IDP_GCP_VERTEX_REGION', value: process.env.IDP_GCP_VERTEX_REGION },
|
|
54
|
-
];
|
|
55
|
-
const azureSecretsValues = [
|
|
56
|
-
{
|
|
57
|
-
name: 'IDP_AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT',
|
|
58
|
-
value: process.env.IDP_AZURE_DOCUMENT_INTELLIGENCE_ENDPOINT,
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: 'IDP_AZURE_DOCUMENT_INTELLIGENCE_KEY',
|
|
62
|
-
value: process.env.IDP_AZURE_DOCUMENT_INTELLIGENCE_KEY,
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
name: 'IDP_AZURE_AI_FOUNDRY_ENDPOINT',
|
|
66
|
-
value: process.env.IDP_AZURE_AI_FOUNDRY_ENDPOINT,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'IDP_AZURE_AI_FOUNDRY_KEY',
|
|
70
|
-
value: process.env.IDP_AZURE_AI_FOUNDRY_KEY,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: 'IDP_AZURE_OPEN_AI_ENDPOINT',
|
|
74
|
-
value: process.env.IDP_AZURE_OPEN_AI_ENDPOINT,
|
|
75
|
-
},
|
|
76
|
-
{ name: 'IDP_AZURE_OPEN_AI_KEY', value: process.env.IDP_AZURE_OPEN_AI_KEY },
|
|
77
|
-
{
|
|
78
|
-
name: 'DB_VECTOR_AZURE_OPENAI_ENDPOINT',
|
|
79
|
-
value: process.env.DB_VECTOR_AZURE_OPENAI_ENDPOINT,
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
name: 'DB_VECTOR_AZURE_OPENAI_API_KEY',
|
|
83
|
-
value: process.env.DB_VECTOR_AZURE_OPENAI_API_KEY,
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
name: 'DB_VECTOR_MODEL_DEPLOYMENT_NAME',
|
|
87
|
-
value: process.env.DB_VECTOR_MODEL_DEPLOYMENT_NAME,
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
name: 'DB_VECTOR_AZURE_AI_SEARCH_ENDPOINT',
|
|
91
|
-
value: process.env.DB_VECTOR_AZURE_AI_SEARCH_ENDPOINT,
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'DB_VECTOR_AZURE_AI_SEARCH_KEY',
|
|
95
|
-
value: process.env.DB_VECTOR_AZURE_AI_SEARCH_KEY,
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
name: 'DB_VECTOR_AZURE_COSMOS_DB_ENDPOINT',
|
|
99
|
-
value: process.env.DB_VECTOR_AZURE_COSMOS_DB_ENDPOINT,
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
name: 'DB_VECTOR_AZURE_COSMOS_DB_KEY',
|
|
103
|
-
value: process.env.DB_VECTOR_AZURE_COSMOS_DB_KEY,
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
name: 'DB_VECTOR_AZURE_COSMOS_DB_DATABASE',
|
|
107
|
-
value: process.env.DB_VECTOR_AZURE_COSMOS_DB_DATABASE,
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
name: 'DB_VECTOR_AZURE_COSMOS_DB_CONTAINER',
|
|
111
|
-
value: process.env.DB_VECTOR_AZURE_COSMOS_DB_CONTAINER,
|
|
112
|
-
},
|
|
113
|
-
];
|
|
7
|
+
const connectorSecrets_1 = require("../../utils/connectorSecrets");
|
|
114
8
|
_8_9_1.test.describe.configure({ mode: 'parallel' });
|
|
115
9
|
_8_9_1.test.describe('Cluster Setup Tests', () => {
|
|
116
10
|
_8_9_1.test.beforeEach(async ({ page, loginPage }) => {
|
|
@@ -149,13 +43,13 @@ _8_9_1.test.describe('Cluster Setup Tests', () => {
|
|
|
149
43
|
await clusterDetailsPage.createAPIClientAndReturnVariables(apiClientName);
|
|
150
44
|
await clusterDetailsPage.clickCloseModalButton();
|
|
151
45
|
await clusterPage.clickConnectorSecretsTab(clusterName);
|
|
152
|
-
await clusterSecretsPage.createSetOfSecrets(awsSecretsValues);
|
|
153
|
-
await clusterSecretsPage.createSetOfSecrets(openAiSecretsValues);
|
|
154
|
-
await clusterSecretsPage.createSetOfSecrets(gcpSecretsValues);
|
|
155
|
-
await clusterSecretsPage.createSetOfSecrets(azureSecretsValues);
|
|
156
|
-
await clusterSecretsPage.createSetOfSecrets(connectorSecretsValues);
|
|
46
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.awsSecretsValues);
|
|
47
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.openAiSecretsValues);
|
|
48
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.gcpSecretsValues);
|
|
49
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.azureSecretsValues);
|
|
50
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.connectorSecretsValues);
|
|
157
51
|
});
|
|
158
|
-
(0, _8_9_1.test)('Create AWS Cluster', async ({ homePage, clusterPage, clusterDetailsPage, }) => {
|
|
52
|
+
(0, _8_9_1.test)('Create AWS Cluster', async ({ homePage, clusterPage, clusterDetailsPage, clusterSecretsPage, }) => {
|
|
159
53
|
_8_9_1.test.slow();
|
|
160
54
|
const clusterName = 'AWS Cluster';
|
|
161
55
|
await homePage.clickClusters();
|
|
@@ -163,6 +57,8 @@ _8_9_1.test.describe('Cluster Setup Tests', () => {
|
|
|
163
57
|
await clusterPage.assertClusterHealthyStatusWithRetry(clusterName, 300000);
|
|
164
58
|
await clusterPage.clickClusterLink(clusterName);
|
|
165
59
|
await clusterDetailsPage.assertComponentsHealth();
|
|
60
|
+
await clusterPage.clickConnectorSecretsTab(clusterName);
|
|
61
|
+
await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.connectorSecretsValues);
|
|
166
62
|
});
|
|
167
63
|
(0, _8_9_1.test)('Create Project Folder', async ({ homePage, appsPage, modelerHomePage, }) => {
|
|
168
64
|
await _8_9_1.test.step('Navigate to Web Modeler', async () => {
|