@camunda/e2e-test-suite 0.0.402 → 0.0.404

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.
@@ -2,14 +2,15 @@ import { Page, Locator } from '@playwright/test';
2
2
  declare class ConnectorMarketplacePage {
3
3
  private page;
4
4
  readonly searchForConnectorTextbox: Locator;
5
- readonly snackbar: Locator;
6
- readonly closeButton: Locator;
5
+ readonly downloadToProjectButton: Locator;
6
+ readonly replaceResourceButton: Locator;
7
+ readonly cancelButton: Locator;
7
8
  constructor(page: Page);
8
9
  clickSearchForConnectorTextbox(): Promise<void>;
9
10
  fillSearchForConnectorTextbox(connectorName: string): Promise<void>;
10
- private clickDownloadToProjectButton;
11
- clickSnackbar(): Promise<void>;
12
- clickCloseButton(): Promise<void>;
11
+ clickDownloadToProjectButton(): Promise<void>;
12
+ clickCancelButton(): Promise<void>;
13
+ clickReplaceResourceButton(): Promise<void>;
13
14
  downloadConnectorToProject(): Promise<void>;
14
15
  }
15
16
  export { ConnectorMarketplacePage };
@@ -1,50 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConnectorMarketplacePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- const loggingUtils_1 = require("../../utils/loggingUtils");
6
4
  const sleep_1 = require("../../utils/sleep");
7
5
  class ConnectorMarketplacePage {
8
6
  page;
9
7
  searchForConnectorTextbox;
10
- snackbar;
11
- closeButton;
8
+ downloadToProjectButton;
9
+ replaceResourceButton;
10
+ cancelButton;
12
11
  constructor(page) {
13
12
  this.page = page;
14
13
  this.searchForConnectorTextbox = page.getByPlaceholder('Search for a connector');
15
- this.snackbar = page.locator('[data-test="snackbar"]');
16
- this.closeButton = page.getByRole('button', { name: 'Close' });
14
+ this.downloadToProjectButton = page
15
+ .getByRole('button', { name: 'Download to project' })
16
+ .first();
17
+ this.cancelButton = page.getByRole('button', { name: 'Cancel' });
18
+ this.replaceResourceButton = page.getByRole('button', {
19
+ name: 'Replace resource',
20
+ });
17
21
  }
18
22
  async clickSearchForConnectorTextbox() {
19
23
  await this.searchForConnectorTextbox.click({ timeout: 60000 });
24
+ await (0, sleep_1.sleep)(2000);
20
25
  }
21
26
  async fillSearchForConnectorTextbox(connectorName) {
22
27
  await this.searchForConnectorTextbox.fill(connectorName, { timeout: 60000 });
28
+ await (0, sleep_1.sleep)(2000);
23
29
  }
24
30
  async clickDownloadToProjectButton() {
25
- await (0, sleep_1.sleep)(4000); // the modal for download to the project needs to be stable for this role to get it
26
- const downloadButton = this.page
27
- .getByRole('button', { name: 'Download to project' })
28
- .first();
29
- await downloadButton.click({ timeout: 60000 });
30
- (0, loggingUtils_1.logWithElapsed)('downloadButton clicked');
31
+ await this.downloadToProjectButton.click({ timeout: 60000 });
31
32
  }
32
- async clickSnackbar() {
33
- await this.snackbar.click({ timeout: 120000 });
33
+ async clickCancelButton() {
34
+ await this.cancelButton.click({ timeout: 30000 });
34
35
  }
35
- async clickCloseButton() {
36
- await this.closeButton.click({ timeout: 60000 });
36
+ async clickReplaceResourceButton() {
37
+ await this.replaceResourceButton.click({ timeout: 30000 });
37
38
  }
38
39
  async downloadConnectorToProject() {
40
+ await this.clickDownloadToProjectButton();
39
41
  try {
40
- await this.clickDownloadToProjectButton();
41
- await (0, test_1.expect)(this.snackbar).toBeVisible({
42
- timeout: 30000,
43
- });
44
- await this.clickSnackbar();
42
+ await Promise.race([
43
+ this.replaceResourceButton.click({ timeout: 20000 }),
44
+ this.cancelButton.click({ timeout: 20000 }),
45
+ ]);
45
46
  }
46
- catch {
47
- await this.clickCloseButton();
47
+ catch (e) {
48
+ return;
48
49
  }
49
50
  }
50
51
  }
@@ -579,7 +579,6 @@ class ModelerCreatePage {
579
579
  await (0, sleep_1.sleep)(5000);
580
580
  await connectorMarketplacePage.fillSearchForConnectorTextbox('REST Connector');
581
581
  await connectorMarketplacePage.downloadConnectorToProject();
582
- await this.clickChangeTypeButton();
583
582
  await this.restConnectorOption.click({ timeout: 120000 });
584
583
  }
585
584
  return;
@@ -74,24 +74,17 @@ async function modelRestConnector(modelerCreatePage, connectorSettingsPage, conn
74
74
  await modelerCreatePage.clickAppendElementButton();
75
75
  await modelerCreatePage.clickAppendTaskButton();
76
76
  await modelerCreatePage.clickChangeTypeButton();
77
- const result = await Promise.race([
78
- modelerCreatePage.restConnectorOption
79
- .waitFor({
80
- timeout: 15000,
81
- })
82
- .then(() => 'restConnectorOption'),
83
- modelerCreatePage.marketPlaceButton
84
- .waitFor({
77
+ try {
78
+ await (0, test_1.expect)(modelerCreatePage.restConnectorOption).toBeVisible({
85
79
  timeout: 15000,
86
- })
87
- .then(() => 'marketPlaceButton'),
88
- ]);
89
- if (result == 'marketPlaceButton') {
80
+ });
81
+ }
82
+ catch (error) {
90
83
  await modelerCreatePage.clickMarketPlaceButton();
91
84
  await connectorMarketplacePage.clickSearchForConnectorTextbox();
92
85
  await connectorMarketplacePage.fillSearchForConnectorTextbox('REST Connector');
86
+ await (0, sleep_1.sleep)(10000);
93
87
  await connectorMarketplacePage.downloadConnectorToProject();
94
- await modelerCreatePage.clickChangeTypeButton();
95
88
  }
96
89
  await modelerCreatePage.clickRestConnectorOption();
97
90
  if (auth == 'bearer') {
@@ -167,6 +160,7 @@ async function modelIntermediateWebhookConnector(modelerCreatePage, connectorMar
167
160
  await modelerCreatePage.clickMarketPlaceButton();
168
161
  await connectorMarketplacePage.clickSearchForConnectorTextbox();
169
162
  await connectorMarketplacePage.fillSearchForConnectorTextbox('Webhook Connector');
163
+ await (0, sleep_1.sleep)(10000);
170
164
  await connectorMarketplacePage.downloadConnectorToProject();
171
165
  await modelerCreatePage.clickChangeTypeButton();
172
166
  }
@@ -212,6 +206,7 @@ async function modelWebhookConnector(modelerCreatePage, connectorMarketplacePage
212
206
  await modelerCreatePage.clickMarketPlaceButton();
213
207
  await connectorMarketplacePage.clickSearchForConnectorTextbox();
214
208
  await connectorMarketplacePage.fillSearchForConnectorTextbox('Webhook Connector');
209
+ await (0, sleep_1.sleep)(10000);
215
210
  await connectorMarketplacePage.downloadConnectorToProject();
216
211
  await modelerCreatePage.clickChangeTypeButton();
217
212
  }
@@ -17,7 +17,8 @@ SM_8_7_1.test.describe.parallel('Connectors User Flow Tests', () => {
17
17
  await (0, _setup_1.captureScreenshot)(page, testInfo);
18
18
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
19
19
  });
20
- (0, SM_8_7_1.test)('REST Connector No Auth User Flow', async ({ page, operateHomePage, modelerHomePage, operateProcessInstancePage, modelerCreatePage, connectorSettingsPage, operateProcessesPage, connectorMarketplacePage, navigationPage, context, }) => {
20
+ // Skipped due to 320: https://github.com/camunda/marketplace-api/issues/320
21
+ SM_8_7_1.test.skip('REST Connector No Auth User Flow', async ({ page, operateHomePage, modelerHomePage, operateProcessInstancePage, modelerCreatePage, connectorSettingsPage, operateProcessesPage, connectorMarketplacePage, navigationPage, context, }) => {
21
22
  SM_8_7_1.test.slow();
22
23
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
23
24
  await SM_8_7_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -48,7 +49,8 @@ SM_8_7_1.test.describe.parallel('Connectors User Flow Tests', () => {
48
49
  });
49
50
  });
50
51
  });
51
- (0, SM_8_7_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, context, }) => {
52
+ // Skipped due to 320: https://github.com/camunda/marketplace-api/issues/320
53
+ SM_8_7_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, context, }) => {
52
54
  SM_8_7_1.test.slow();
53
55
  const processName = 'REST_Connector_Bearer_Auth_Process' +
54
56
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -120,7 +122,8 @@ SM_8_7_1.test.describe.parallel('Connectors User Flow Tests', () => {
120
122
  (0, test_1.expect)(result).toBe('completed');
121
123
  });
122
124
  });
123
- (0, SM_8_7_1.test)('Connector Secrets User Flow', async ({ page, operateHomePage, modelerHomePage, navigationPage, modelerCreatePage, connectorSettingsPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, context, }) => {
125
+ // Skipped due to 320: https://github.com/camunda/marketplace-api/issues/320
126
+ SM_8_7_1.test.skip('Connector Secrets User Flow', async ({ page, operateHomePage, modelerHomePage, navigationPage, modelerCreatePage, connectorSettingsPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, context, }) => {
124
127
  SM_8_7_1.test.slow();
125
128
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
126
129
  await SM_8_7_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -152,7 +152,8 @@ SM_8_7_1.test.describe.parallel('Smoke Tests', () => {
152
152
  });
153
153
  console.log(`[${testInfo.title}] Test end: timeout = ${testInfo.timeout}`);
154
154
  });
155
- (0, SM_8_7_1.test)('Most Common REST Connector User Flow', async ({ page, context, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessesPage, operateProcessInstancePage, connectorMarketplacePage, identityPage, identityUsersPage, }, testInfo) => {
155
+ // Skipped due to 320: https://github.com/camunda/marketplace-api/issues/320
156
+ SM_8_7_1.test.skip('Most Common REST Connector User Flow', async ({ page, context, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessesPage, operateProcessInstancePage, connectorMarketplacePage, identityPage, identityUsersPage, }, testInfo) => {
156
157
  console.log(`[${testInfo.title}] Test start: timeout = ${testInfo.timeout}`);
157
158
  const processName = 'REST_Connector_Basic_Auth_Process' +
158
159
  (await (0, _setup_1.generateRandomStringAsync)(3));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.402",
3
+ "version": "0.0.404",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",