Skip to content

Commit d4bd299

Browse files
authored
E2E: Kafka Connect tests (#1414)
1 parent 46e1536 commit d4bd299

File tree

6 files changed

+129
-6
lines changed

6 files changed

+129
-6
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
Feature: KafkaConnect page visibility and functions
2+
3+
Scenario: KafkaConnect search is working
4+
Given Kafka Connect is visible
5+
When click on Kafka Connect link
6+
Then Kafka Connect heading visible
7+
Given KafkaConnect cell element "first" is clicked
8+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
9+
Given KafkaConnect with name: "s3-sink" visible is: "true"
10+
When KafkaConnect searchfield input is: "sink_postgres"
11+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
12+
Given KafkaConnect with name: "s3-sink" visible is: "false"
13+
14+
Scenario: KafkaConnect main page functions
15+
Given Kafka Connect is visible
16+
When click on Kafka Connect link
17+
Then Kafka Connect heading visible
18+
Given KafkaConnect cell element "first" is clicked
19+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
20+
Given KafkaConnect with name: "s3-sink" visible is: "true"
21+
When KafkaConnect searchfield input is: "sink_postgres"
22+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
23+
Given KafkaConnect with name: "s3-sink" visible is: "false"
24+
Given KafkaConnect satus is: "RUNNING", type is: "SINK"
25+
Given KafkaConnect row menu menu item "Stop" is clicked
26+
Given KafkaConnect satus is: "STOPPED", type is: "SINK"
27+
Given KafkaConnect row menu menu item "Resume" is clicked
28+
Given KafkaConnect satus is: "RUNNING", type is: "SINK"
29+
Given KafkaConnect row menu menu item "Pause" is clicked
30+
Given KafkaConnect satus is: "PAUSED", type is: "SINK"
31+
Given KafkaConnect row menu menu item "Resume" is clicked
32+
Given KafkaConnect satus is: "RUNNING", type is: "SINK"
33+
34+
Scenario: KafkaConnect connector page
35+
Given Kafka Connect is visible
36+
When click on Kafka Connect link
37+
Then Kafka Connect heading visible
38+
Given KafkaConnect cell element "first" is clicked
39+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
40+
When KafkaConnect connector named: "sink_postgres_activities" clicked
41+
Then KafkaConnect connector page with label: "KafkaConnectsink_postgres_activities" open
42+
43+
Scenario: KafkaConnect connector page functions
44+
Given Kafka Connect is visible
45+
When click on Kafka Connect link
46+
Then Kafka Connect heading visible
47+
Given KafkaConnect cell element "first" is clicked
48+
Given KafkaConnect with name: "sink_postgres_activities" visible is: "true"
49+
When KafkaConnect connector named: "sink_postgres_activities" clicked
50+
Then KafkaConnect connector page with label: "KafkaConnectsink_postgres_activities" open
51+
Given KafkaConnect connector page status is: "RUNNING"
52+
When KafkaConnect connector menu item "Pause" clicked
53+
Given KafkaConnect connector page status is: "PAUSED"
54+
When KafkaConnect connector menu item "Resume" clicked
55+
Given KafkaConnect connector page status is: "RUNNING"
56+
When KafkaConnect connector menu item "Stop" clicked
57+
Given KafkaConnect connector page state is: "STOPPED"
58+
When KafkaConnect connector menu item "Resume" clicked

e2e-playwright/src/features/TopicsMessages.feature

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ Feature: Produce Messages page
154154
Then Topics TopicName Messages filter name starts with: "Filter" visible is: "true"
155155
Then Topics TopicName Messages exist is: "true"
156156

157-
158157
Given Topics TopicName Messages edit filter button click
159158
Given Topics TopicName AddFilter filterCode change value is: "3"
160159
Then Topics TopicName AddFilter EditFilter button click

e2e-playwright/src/features/navigation.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Feature: Navigation panel links
2828
Given Kafka Connect is visible
2929
When click on Kafka Connect link
3030
Then Kafka Connect heading visible
31-
Then the end of current URL should be "kafka-connect/clusters"
31+
Then the end of current URL should be "clusters"
3232

3333
Scenario: Navigate to KSQL DB
3434
Given KSQL DB is visible

e2e-playwright/src/pages/Connectors/ConnectorsLocators.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,20 @@ export default class ConnectorsLocators {
77
this.page = page;
88
}
99

10-
get clustersTab(): Locator { return this.page.getByRole('link', { name: 'Clusters' })};
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Kafka Connect' })};
11+
get searchBox(): Locator { return this.page.getByRole('textbox', { name: 'Search by Connect Name' })};
12+
get createConnectorButton(): Locator { return this.page.getByRole('button', { name: 'Create Schema' })};
13+
get rowMenu():Locator { return this.page.getByRole('cell', { name: 'Dropdown Toggle' })};
14+
get internalMenuButton(): Locator { return this.page.locator('button').filter({ hasText: 'Restart' })};
15+
16+
rowData(value:string): Locator { return this.page.getByRole('cell', { name: value })};
17+
rowMenuItem(value:string): Locator { return this.page.getByRole('menuitem', { name: value })};
18+
19+
cellData(value:string): Locator { return this.page.getByText(value, { exact: true })};
20+
21+
localMenuLabel(value:string): Locator { return this.page.getByText(value)};
22+
23+
internalMenuCell(value:string): Locator { return this.page.getByRole('cell', { name: value })};
24+
internalMenuButtonItem(value:string): Locator { return this.page.getByRole('menuitem', { name: value })};
25+
internalMenuState(value:string): Locator { return this.page.getByRole('group').getByText(value)};
1126
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
import { Given, When, Then, setDefaultTimeout } from "@cucumber/cucumber";
3+
import { expectVisibility } from "../services/uiHelper";
4+
import { PlaywrightWorld } from "../support/PlaywrightWorld";
5+
6+
setDefaultTimeout(60 * 1000 * 2);
7+
8+
Given('KafkaConnect with name: {string} visible is: {string}', async function(this: PlaywrightWorld, name: string, visible: string) {
9+
await expectVisibility(this.locators.connectors.rowData(name), visible);
10+
});
11+
12+
When('KafkaConnect cell element {string} is clicked', async function(this: PlaywrightWorld, value: string) {
13+
await this.locators.connectors.cellData(value).click();
14+
});
15+
16+
When('KafkaConnect searchfield input is: {string}', async function(this: PlaywrightWorld, value: string) {
17+
let inputField = this.locators.connectors.searchBox
18+
await inputField.isVisible()
19+
await inputField.fill(value);
20+
});
21+
22+
Given('KafkaConnect satus is: {string}, type is: {string}', async function(this: PlaywrightWorld, status: string, type: string) {
23+
await this.locators.connectors.cellData(status).isVisible();
24+
await this.locators.connectors.cellData(type).isVisible();
25+
});
26+
27+
Given('KafkaConnect row menu menu item {string} is clicked', async function(this: PlaywrightWorld, menuItem: string) {
28+
await this.locators.connectors.rowMenu.click();
29+
await this.locators.connectors.rowMenuItem(menuItem).click();
30+
});
31+
32+
When('KafkaConnect connector named: {string} clicked', async function(this: PlaywrightWorld, name: string) {
33+
await this.locators.connectors.rowData(name).click()
34+
});
35+
36+
Then('KafkaConnect connector page with label: {string} open', async function(this: PlaywrightWorld, label: string) {
37+
await this.locators.connectors.localMenuLabel(label).isVisible()
38+
});
39+
40+
Given('KafkaConnect connector page status is: {string}', async function(this: PlaywrightWorld, status: string) {
41+
await this.locators.connectors.internalMenuCell(status).isVisible();
42+
});
43+
44+
When('KafkaConnect connector menu item {string} clicked', async function(this: PlaywrightWorld, menuItem: string) {
45+
await this.locators.connectors.internalMenuButton.click();
46+
await this.locators.connectors.internalMenuButtonItem(menuItem).click();
47+
});
48+
49+
Given('KafkaConnect connector page state is: {string}', async function(this: PlaywrightWorld, state: string) {
50+
await this.locators.connectors.internalMenuState(state).isVisible();
51+
});

e2e-playwright/src/steps/navigation.steps.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,12 @@ Given('Kafka Connect is visible', async function() {
6262
await expect(this.locators.panel.kafkaConnectLink).toBeVisible();
6363
});
6464

65-
When('click on Kafka Connect link', async function() {
65+
When('click on Kafka Connect link', async function(this: PlaywrightWorld) {
6666
await this.locators.panel.kafkaConnectLink.click();
6767
});
6868

69-
Then('Kafka Connect heading visible', async function() {
70-
await this.locators.connectors.clustersTab.waitFor({ state: 'visible' });
69+
Then('Kafka Connect heading visible', async function(this: PlaywrightWorld) {
70+
await this.locators.connectors.heading.waitFor({ state: 'visible' });
7171
});
7272

7373
Given('KSQL DB is visible', async function() {

0 commit comments

Comments
 (0)