@camunda/e2e-test-suite 0.0.36 → 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,7 +5,7 @@ declare class ClusterSecretsPage {
5
5
  readonly keyInput: Locator;
6
6
  readonly valueInput: Locator;
7
7
  readonly createButton: Locator;
8
- readonly operationsButton: Locator;
8
+ readonly optionsButton: Locator;
9
9
  readonly deleteConnectorSecretButton: Locator;
10
10
  readonly deleteConnectorSecretSubButton: Locator;
11
11
  readonly dialog: Locator;
@@ -14,20 +14,26 @@ declare class ClusterSecretsPage {
14
14
  readonly bulkImportTextArea: Locator;
15
15
  readonly dialogImportButton: Locator;
16
16
  readonly secretsSearchBox: Locator;
17
+ readonly clusterBanner: Locator;
18
+ readonly clusterLink: (name: string) => Locator;
19
+ readonly clusterSecretTab: Locator;
20
+ readonly confirmDeleteInput: Locator;
17
21
  constructor(page: Page);
18
22
  deleteConnectorSecretsIfExist(): Promise<void>;
19
- clickCreateNewSecretButton(): Promise<void>;
23
+ clickCreateNewSecretButton(cluster: string): Promise<void>;
24
+ clickClusterBanner(): Promise<void>;
25
+ clickCluster(name: string): Promise<void>;
20
26
  clickKeyInput(): Promise<void>;
21
27
  fillKeyInput(key: string): Promise<void>;
22
28
  clickValueInput(): Promise<void>;
23
29
  fillValueInput(value: string): Promise<void>;
24
30
  clickCreateButton(): Promise<void>;
25
- createNewSecret(key: string, value: string): Promise<void>;
26
- createSetOfSecrets(secrets: {
31
+ createNewSecret(key: string, value: string, cluster: string): Promise<void>;
32
+ createSetOfSecrets(cluster: string, secrets: {
27
33
  name: string;
28
34
  value: string;
29
35
  }[]): Promise<void>;
30
- assertSecretsOrCreate(secrets: {
36
+ assertSecretsOrCreate(cluster: string, secrets: {
31
37
  name: string;
32
38
  value: string;
33
39
  }[]): Promise<void>;
@@ -10,7 +10,7 @@ class ClusterSecretsPage {
10
10
  keyInput;
11
11
  valueInput;
12
12
  createButton;
13
- operationsButton;
13
+ optionsButton;
14
14
  deleteConnectorSecretButton;
15
15
  deleteConnectorSecretSubButton;
16
16
  dialog;
@@ -19,6 +19,10 @@ class ClusterSecretsPage {
19
19
  bulkImportTextArea;
20
20
  dialogImportButton;
21
21
  secretsSearchBox;
22
+ clusterBanner;
23
+ clusterLink;
24
+ clusterSecretTab;
25
+ confirmDeleteInput;
22
26
  constructor(page) {
23
27
  this.page = page;
24
28
  this.createNewSecretButton = page.getByRole('button', {
@@ -27,12 +31,12 @@ class ClusterSecretsPage {
27
31
  this.keyInput = page.getByLabel('Key');
28
32
  this.valueInput = page.getByLabel('Value', { exact: true });
29
33
  this.createButton = page.getByRole('button', { name: 'Create', exact: true });
30
- this.operationsButton = page.getByRole('button', {
31
- name: 'operations',
32
- exact: true,
33
- });
34
+ this.optionsButton = page
35
+ .getByRole('cell', { name: 'Options' })
36
+ .getByRole('button');
34
37
  this.deleteConnectorSecretButton = page.getByRole('menuitem', {
35
- name: 'delete',
38
+ name: 'Delete',
39
+ exact: true,
36
40
  });
37
41
  this.deleteConnectorSecretSubButton = page.getByRole('button', {
38
42
  name: 'danger Delete',
@@ -45,10 +49,20 @@ class ClusterSecretsPage {
45
49
  .getByRole('dialog')
46
50
  .getByRole('button', { name: 'Import', exact: true });
47
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
+ });
48
62
  }
49
63
  async deleteConnectorSecretsIfExist() {
50
64
  try {
51
- await (0, test_1.expect)(this.operationsButton.first()).toBeVisible({
65
+ await (0, test_1.expect)(this.optionsButton.first()).toBeVisible({
52
66
  timeout: 10000,
53
67
  });
54
68
  }
@@ -56,9 +70,9 @@ class ClusterSecretsPage {
56
70
  return; //No Connector Secrets found in the list
57
71
  }
58
72
  try {
59
- let operations = await this.operationsButton.all();
60
- while (operations.length > 0) {
61
- const operationButton = operations[0];
73
+ let options = await this.optionsButton.all();
74
+ while (options.length > 0) {
75
+ const operationButton = options[0];
62
76
  if (await operationButton.isVisible()) {
63
77
  await operationButton.click({ timeout: 60000 });
64
78
  await this.deleteConnectorSecretButton.click({ timeout: 60000 });
@@ -70,9 +84,9 @@ class ClusterSecretsPage {
70
84
  }
71
85
  const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
72
86
  await sleep(3000);
73
- operations = await this.operationsButton.all();
87
+ options = await this.optionsButton.all();
74
88
  }
75
- await (0, test_1.expect)(this.operationsButton).not.toBeVisible({
89
+ await (0, test_1.expect)(this.optionsButton).not.toBeVisible({
76
90
  timeout: 30000,
77
91
  });
78
92
  }
@@ -80,26 +94,25 @@ class ClusterSecretsPage {
80
94
  console.error('Error during Connector Secrets deletion: ', error);
81
95
  }
82
96
  }
83
- async clickCreateNewSecretButton() {
97
+ async clickCreateNewSecretButton(cluster) {
84
98
  try {
85
99
  await this.createNewSecretButton.click({ timeout: 60000 });
86
100
  }
87
101
  catch (error) {
88
- await this.page
89
- .getByRole('banner')
90
- .getByRole('link', { name: 'Clusters' })
91
- .click({ timeout: 60000 });
92
- await this.page
93
- .getByRole('link', { name: 'Test Cluster' })
94
- .click({ timeout: 60000 });
95
- await this.page
96
- .getByRole('tab', {
97
- name: 'Connector Secrets',
98
- })
99
- .click({ timeout: 60000 });
100
- 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 });
101
106
  }
102
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
+ }
103
116
  async clickKeyInput() {
104
117
  await (0, test_1.expect)(this.keyInput).toBeVisible({ timeout: 60000 });
105
118
  await this.keyInput.click({ timeout: 30000 });
@@ -137,8 +150,8 @@ class ClusterSecretsPage {
137
150
  await (0, test_1.expect)(this.createButton).toBeVisible({ timeout: 60000 });
138
151
  await this.createButton.click({ timeout: 30000 });
139
152
  }
140
- async createNewSecret(key, value) {
141
- await this.clickCreateNewSecretButton();
153
+ async createNewSecret(key, value, cluster) {
154
+ await this.clickCreateNewSecretButton(cluster);
142
155
  await this.clickKeyInput();
143
156
  await this.fillKeyInput(key);
144
157
  await (0, sleep_1.sleep)(1000);
@@ -153,11 +166,11 @@ class ClusterSecretsPage {
153
166
  timeout: 60000,
154
167
  });
155
168
  }
156
- async createSetOfSecrets(secrets) {
169
+ async createSetOfSecrets(cluster, secrets) {
157
170
  await this.bulkImportSecrets(secrets);
158
- await this.assertSecretsOrCreate(secrets);
171
+ await this.assertSecretsOrCreate(cluster, secrets);
159
172
  }
160
- async assertSecretsOrCreate(secrets) {
173
+ async assertSecretsOrCreate(cluster, secrets) {
161
174
  for (const secret of secrets) {
162
175
  try {
163
176
  await (0, test_1.expect)(this.secretsSearchBox).toBeVisible();
@@ -170,7 +183,7 @@ class ClusterSecretsPage {
170
183
  }
171
184
  catch (error) {
172
185
  console.error(`Creating secret for ${secret.name}`);
173
- await this.createNewSecret(secret.name, secret.value);
186
+ await this.createNewSecret(secret.name, secret.value, cluster);
174
187
  }
175
188
  }
176
189
  }
@@ -5,20 +5,39 @@ declare class ClusterSecretsPage {
5
5
  readonly keyInput: Locator;
6
6
  readonly valueInput: Locator;
7
7
  readonly createButton: Locator;
8
- readonly operationsButton: Locator;
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
- operationsButton;
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.operationsButton = page.getByRole('button', {
25
- name: 'operations',
26
- exact: true,
27
- });
34
+ this.optionsButton = page
35
+ .getByRole('cell', { name: 'Options' })
36
+ .getByRole('button');
28
37
  this.deleteConnectorSecretButton = page.getByRole('menuitem', {
29
- name: 'delete',
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.operationsButton.first()).toBeVisible({
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 operations = await this.operationsButton.all();
47
- while (operations.length > 0) {
48
- const operationButton = operations[0];
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
- operations = await this.operationsButton.all();
87
+ options = await this.optionsButton.all();
61
88
  }
62
- await (0, test_1.expect)(this.operationsButton).not.toBeVisible({
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.page
76
- .getByRole('banner')
77
- .getByRole('link', { name: 'Clusters' })
78
- .click({ timeout: 60000 });
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
- console.log('Creating secret: ' + secret.name);
147
- await this.createNewSecret(secret.name, secret.value);
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
- throw new Error(`Error creating secret ${secret.name}:` + error);
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.8/UtilitiesPage");
9
9
  const UtilitiesPage_2 = require("../../pages/8.8/UtilitiesPage");
10
10
  const UtilitiesPage_3 = require("../../pages/8.8/UtilitiesPage");
11
11
  const apiHelpers_1 = require("../../utils/apiHelpers");
12
+ const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
12
13
  _8_8_1.test.describe.configure({ mode: 'parallel' });
13
14
  _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
14
- const clusterName = 'Test Cluster';
15
+ const defaultClusterName = 'Test Cluster';
16
+ const awsCluster = 'AWS Cluster';
15
17
  _8_8_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_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
39
41
  });
40
42
  await _8_8_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(clusterName);
44
+ await modelerCreatePage.runProcessInstance(defaultClusterName);
43
45
  });
44
46
  await _8_8_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({
@@ -77,7 +79,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
77
79
  });
78
80
  await _8_8_1.test.step('Create BPMN Diagram with REST Connector with Bearer Token Auth and Start Process Instance', async () => {
79
81
  await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'https://camunda.proxy.beeceptor.com/pre-prod/bearer-auth-test', 'bearer', '{message:response.body}');
80
- await modelerCreatePage.runProcessInstance(clusterName);
82
+ await modelerCreatePage.runProcessInstance(defaultClusterName);
81
83
  await (0, _setup_1.performBearerTokenAuthPostRequest)('https://camunda.proxy.beeceptor.com/pre-prod/bearer-auth-test', 'thisisabearertoken');
82
84
  });
83
85
  await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
@@ -129,7 +131,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
129
131
  await modelerCreatePage.clickAppendEndEventButton();
130
132
  await (0, sleep_1.sleep)(20000);
131
133
  await page.reload();
132
- await modelerCreatePage.deployDiagram(clusterName);
134
+ await modelerCreatePage.deployDiagram(defaultClusterName);
133
135
  });
134
136
  await _8_8_1.test.step('Assert Webhook Is Active In Cluster And Make Authorization Request', async () => {
135
137
  await modelerCreatePage.clickStartEventElement();
@@ -145,7 +147,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
145
147
  });
146
148
  await _8_8_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
147
149
  await appsPage.clickCamundaApps();
148
- await appsPage.clickOperate(clusterName);
150
+ await appsPage.clickOperate(defaultClusterName);
149
151
  await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({
150
152
  timeout: 120000,
151
153
  });
@@ -155,7 +157,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
155
157
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
156
158
  });
157
159
  });
158
- (0, _8_8_1.test)('Connector Secrets User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
160
+ (0, _8_8_1.test)('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
159
161
  _8_8_1.test.slow();
160
162
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
161
163
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -163,10 +165,9 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
163
165
  timeout: 20000,
164
166
  });
165
167
  await appsPage.clickCamundaApps();
166
- await (0, test_1.expect)(appsPage.modelerLink).toBeVisible({ timeout: 20000 });
167
168
  await appsPage.clickModeler();
168
169
  await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
169
- timeout: 120000,
170
+ timeout: 30000,
170
171
  });
171
172
  });
172
173
  await _8_8_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -176,21 +177,77 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
176
177
  });
177
178
  await _8_8_1.test.step('Create BPMN Diagram with REST Connector using secrets and Start Process Instance', async () => {
178
179
  await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'secrets.endpoint_url', 'basic', '{message:response.body.message}', 'result', { username: 'secrets.username', password: 'secrets.password' });
179
- await modelerCreatePage.runProcessInstance(clusterName);
180
- await (0, _setup_1.performBasicAuthPostRequest)('https://camunda.proxy.beeceptor.com/pre-prod/basic-auth-test', 'username', 'password');
180
+ await modelerCreatePage.runProcessInstance(defaultClusterName);
181
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible();
181
182
  });
182
183
  await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
183
- await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
184
- timeout: 90000,
184
+ await appsPage.clickCamundaApps();
185
+ await appsPage.clickOperate(defaultClusterName);
186
+ await (0, test_1.expect)(operateHomePage.operateBanner).toBeVisible();
187
+ await operateHomePage.clickProcessesTab();
188
+ await operateProcessesPage.clickProcessCompletedCheckbox();
189
+ await operateProcessesPage.clickProcessInstanceLink(processName);
190
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.completedIcon, {
191
+ postAction: async () => {
192
+ await page.reload();
193
+ },
194
+ });
195
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.variablesList, {
196
+ postAction: async () => {
197
+ await page.reload();
198
+ },
199
+ });
200
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.messageVariable.getByText('"Message from Mock!"'), {
201
+ postAction: async () => {
202
+ await page.reload();
203
+ },
204
+ });
205
+ });
206
+ });
207
+ (0, _8_8_1.test)('Connector Secrets User Flow - AWS', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
208
+ _8_8_1.test.slow();
209
+ const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
210
+ await _8_8_1.test.step('Navigate to Web Modeler', async () => {
211
+ await appsPage.clickCamundaApps();
212
+ await appsPage.clickModeler();
213
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
214
+ timeout: 30000,
215
+ });
216
+ });
217
+ await _8_8_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
218
+ await modelerHomePage.clickCrossComponentProjectFolder();
219
+ await modelerHomePage.clickDiagramTypeDropdown();
220
+ await modelerHomePage.clickBpmnTemplateOption();
221
+ });
222
+ await _8_8_1.test.step('Create BPMN Diagram with REST Connector using secrets and Start Process Instance', async () => {
223
+ await (0, UtilitiesPage_2.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'secrets.endpoint_url', 'basic', '{message:response.body.message}', 'result', { username: 'secrets.username', password: 'secrets.password' });
224
+ await modelerCreatePage.runProcessInstance(awsCluster);
225
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible();
226
+ });
227
+ await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
228
+ await appsPage.clickCamundaApps();
229
+ await appsPage.clickOperate(awsCluster);
230
+ await (0, test_1.expect)(operateHomePage.operateBanner).toBeVisible({
231
+ timeout: 30000,
232
+ });
233
+ await operateHomePage.clickProcessesTab();
234
+ await operateProcessesPage.clickProcessCompletedCheckbox();
235
+ await operateProcessesPage.clickProcessInstanceLink(processName);
236
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.completedIcon, {
237
+ postAction: async () => {
238
+ await page.reload();
239
+ },
240
+ });
241
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.variablesList, {
242
+ postAction: async () => {
243
+ await page.reload();
244
+ },
245
+ });
246
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.messageVariable.getByText('"Message from Mock!"'), {
247
+ postAction: async () => {
248
+ await page.reload();
249
+ },
185
250
  });
186
- await modelerCreatePage.clickViewProcessInstanceLink();
187
- const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
188
- const operateTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
189
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTabProcessInstancePage.completedIcon, 'Completed icon');
190
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTab.getByTestId('variables-list'), 'Variable list', 60000);
191
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTab
192
- .getByTestId('variable-message')
193
- .getByText('"Message from Mock!"'), 'Connector response message', 60000);
194
251
  });
195
252
  });
196
253
  (0, _8_8_1.test)('Marketplace Connector User Flow', async ({ page, homePage, appsPage, modelerHomePage, modelerCreatePage, connectorMarketplacePage, connectorSettingsPage, }) => {
@@ -241,7 +298,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
241
298
  await modelerCreatePage.clickAppendEndEventButton();
242
299
  await modelerCreatePage.clickCanvas();
243
300
  await modelerCreatePage.assertThreeElementsVisible();
244
- await modelerCreatePage.runProcessInstance(clusterName);
301
+ await modelerCreatePage.runProcessInstance(defaultClusterName);
245
302
  });
246
303
  await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
247
304
  await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
@@ -295,7 +352,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
295
352
  await modelerCreatePage.clickAppendEndEventButton();
296
353
  await (0, sleep_1.sleep)(10000);
297
354
  await page.reload();
298
- await modelerCreatePage.runProcessInstance(clusterName);
355
+ await modelerCreatePage.runProcessInstance(defaultClusterName);
299
356
  });
300
357
  await _8_8_1.test.step('Assert Webhook Is Active In Cluster And Make Authorization Request', async () => {
301
358
  await modelerCreatePage.clickSecondElement();
@@ -315,7 +372,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
315
372
  await _8_8_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
316
373
  await (0, sleep_1.sleep)(90000);
317
374
  await appsPage.clickCamundaApps();
318
- await appsPage.clickOperate(clusterName);
375
+ await appsPage.clickOperate(defaultClusterName);
319
376
  await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
320
377
  await operateHomePage.clickProcessesTab();
321
378
  await operateProcessesPage.clickProcessCompletedCheckbox();
@@ -331,7 +388,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
331
388
  let credentials = {};
332
389
  await _8_8_1.test.step('Create Zeebe API Client', async () => {
333
390
  await homePage.clickClusters();
334
- await clusterPage.clickClusterLink(clusterName);
391
+ await clusterPage.clickClusterLink(defaultClusterName);
335
392
  await clusterDetailsPage.clickAPITab();
336
393
  credentials = await clusterDetailsPage.createAPIClientAndReturnVariables(apiClientName, false);
337
394
  await clusterDetailsPage.clickCloseModalButton();
@@ -344,7 +401,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
344
401
  });
345
402
  });
346
403
  await _8_8_1.test.step('Open Cross Component Test Project and Create a REST Connector Document Handling Flow', async () => {
347
- await (0, UtilitiesPage_3.modelAndRunConnectorsDocHandlingDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, clusterName, `"${credentials.zeebeUrl}"`, `"${credentials.zeebeClientId}"`, `"${credentials.zeebeClientSecret}"`);
404
+ await (0, UtilitiesPage_3.modelAndRunConnectorsDocHandlingDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, defaultClusterName, `"${credentials.zeebeUrl}"`, `"${credentials.zeebeClientId}"`, `"${credentials.zeebeClientSecret}"`);
348
405
  });
349
406
  await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert variable values are correct', async () => {
350
407
  await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
@@ -383,7 +440,7 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
383
440
  });
384
441
  });
385
442
  await _8_8_1.test.step('Open Cross Component Test Project and Create a REST Connector Document Handling Flow', async () => {
386
- await (0, UtilitiesPage_1.modelAndRunConnectorsTimerEventDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, clusterName, connectorTemplatePage);
443
+ await (0, UtilitiesPage_1.modelAndRunConnectorsTimerEventDiagram)(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, defaultClusterName, connectorTemplatePage);
387
444
  });
388
445
  await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert variable values are correct', async () => {
389
446
  await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
@@ -68,7 +68,7 @@ _8_8_1.test.describe('IDP User Flow Tests', () => {
68
68
  await homePage.clickClusters();
69
69
  await clusterPage.clickClusterLink(clusterName);
70
70
  await clusterPage.clickConnectorSecretsTab(clusterName);
71
- await clusterSecretsPage.assertSecretsOrCreate(connectorSecrets_1.allConnectorSecrets[params.provider]);
71
+ await clusterSecretsPage.assertSecretsOrCreate(clusterName, connectorSecrets_1.allConnectorSecrets[params.provider]);
72
72
  });
73
73
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
74
74
  await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
@@ -140,7 +140,7 @@ _8_8_1.test.describe('IDP User Flow Tests', () => {
140
140
  await homePage.clickClusters();
141
141
  await clusterPage.clickClusterLink(clusterName);
142
142
  await clusterPage.clickConnectorSecretsTab(clusterName);
143
- await clusterSecretsPage.assertSecretsOrCreate(connectorSecrets_1.allConnectorSecrets[params.provider]);
143
+ await clusterSecretsPage.assertSecretsOrCreate(clusterName, connectorSecrets_1.allConnectorSecrets[params.provider]);
144
144
  });
145
145
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
146
146
  await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
@@ -43,13 +43,13 @@ _8_8_1.test.describe('Cluster Setup Tests', () => {
43
43
  await clusterDetailsPage.createAPIClientAndReturnVariables(apiClientName);
44
44
  await clusterDetailsPage.clickCloseModalButton();
45
45
  await clusterPage.clickConnectorSecretsTab(clusterName);
46
- await clusterSecretsPage.createSetOfSecrets(connectorSecrets_1.awsSecretsValues);
47
- await clusterSecretsPage.createSetOfSecrets(connectorSecrets_1.openAiSecretsValues);
48
- await clusterSecretsPage.createSetOfSecrets(connectorSecrets_1.gcpSecretsValues);
49
- await clusterSecretsPage.createSetOfSecrets(connectorSecrets_1.azureSecretsValues);
50
- await clusterSecretsPage.createSetOfSecrets(connectorSecrets_1.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);
51
51
  });
52
- (0, _8_8_1.test)('Create AWS Cluster', async ({ homePage, clusterPage, clusterDetailsPage, }) => {
52
+ (0, _8_8_1.test)('Create AWS Cluster', async ({ homePage, clusterPage, clusterDetailsPage, clusterSecretsPage, }) => {
53
53
  _8_8_1.test.slow();
54
54
  const clusterName = 'AWS Cluster';
55
55
  await homePage.clickClusters();
@@ -57,6 +57,8 @@ _8_8_1.test.describe('Cluster Setup Tests', () => {
57
57
  await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
58
58
  await clusterPage.clickClusterLink(clusterName);
59
59
  await clusterDetailsPage.assertComponentsHealth();
60
+ await clusterPage.clickConnectorSecretsTab(clusterName);
61
+ await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.connectorSecretsValues);
60
62
  });
61
63
  (0, _8_8_1.test)('Create Project Folder', async ({ homePage, appsPage, modelerHomePage, }) => {
62
64
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -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 clusterName = 'Test Cluster';
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(clusterName);
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(clusterName);
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(clusterName);
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(clusterName);
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: 120000,
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(clusterName);
184
- await (0, _setup_1.performBasicAuthPostRequest)('https://camunda.proxy.beeceptor.com/pre-prod/basic-auth-test', 'username', 'password');
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 (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
188
- timeout: 90000,
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(clusterName);
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(clusterName);
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(clusterName);
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(clusterName);
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, clusterName, `"${credentials.zeebeUrl}"`, `"${credentials.zeebeClientId}"`, `"${credentials.zeebeClientSecret}"`);
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, clusterName, connectorTemplatePage);
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 connectorSecretsValues = [
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 () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",