Skip to content

Commit d6d78df

Browse files
committed
locators as getters
better named locators
1 parent 90150a5 commit d6d78df

File tree

15 files changed

+182
-178
lines changed

15 files changed

+182
-178
lines changed

e2e-playwright/src/hooks/hooks.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { BeforeAll, AfterAll, Before, After, Status, setDefaultTimeout, setWorld
33
import { Browser } from "@playwright/test";
44
import { invokeBrowser } from "../helper/browsers/browserManager";
55
import fs from 'fs';
6-
import { PlaywrightCustomWorld } from '../support/PlaywrightCustomWorld';
6+
import { PlaywrightWorld } from '../support/PlaywrightWorld';
77

88
let browser: Browser;
99

@@ -13,9 +13,9 @@ BeforeAll(async function() {
1313

1414
setDefaultTimeout(60 * 1000);
1515

16-
setWorldConstructor(PlaywrightCustomWorld);
16+
setWorldConstructor(PlaywrightWorld);
1717

18-
Before(async function(this: PlaywrightCustomWorld, { pickle }) {
18+
Before(async function(this: PlaywrightWorld, { pickle }) {
1919
const scenarioName = pickle.name + pickle.id
2020
const context = await browser.newContext({
2121
recordVideo: { dir: 'test-results/videos/' },
@@ -30,7 +30,7 @@ Before(async function(this: PlaywrightCustomWorld, { pickle }) {
3030
await this.init(context, scenarioName);
3131
});
3232

33-
After({ timeout: 30000 }, async function(this: PlaywrightCustomWorld, { pickle, result }) {
33+
After({ timeout: 30000 }, async function(this: PlaywrightWorld, { pickle, result }) {
3434
let img: Buffer | undefined;
3535
const path = `./test-results/trace/${pickle.id}.zip`;
3636
try {

e2e-playwright/src/pages/BaseLocators.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ export class BaseLocators {
44
// eslint-disable-next-line no-unused-vars
55
constructor(private page: Page) {}
66

7-
loadingSpinner:Locator = this.page.locator('div[role="progressbar"]');
8-
submitBtn:Locator = this.page.locator('button[type="submit"]');
9-
tableGrid:Locator = this.page.locator('table');
10-
searchFld:Locator = this.page.locator('input[type="text"][id*=":r"]');
11-
dotMenuBtn:Locator = this.page.locator('button[aria-label="Dropdown Toggle"]');
12-
alertHeader:Locator = this.page.locator('div[role="alert"] div[role="heading"]');
13-
alertMessage:Locator = this.page.locator('div[role="alert"] div[role="contentinfo"]');
14-
confirmationMdl:Locator = this.page.locator('text=Confirm the action').locator('..');
15-
confirmBtn:Locator = this.page.locator('button:has-text("Confirm")');
16-
cancelBtn:Locator = this.page.locator('button:has-text("Cancel")');
17-
backBtn:Locator = this.page.locator('button:has-text("Back")');
18-
previousBtn:Locator = this.page.locator('button:has-text("Previous")');
19-
nextBtn:Locator = this.page.locator('button:has-text("Next")');
20-
ddlOptions:Locator = this.page.locator('li[value]');
21-
gridItems:Locator = this.page.locator('tr[class]');
7+
get loadingSpinner(): Locator { return this.page.locator('div[role="progressbar"]'); }
8+
get submitBtn(): Locator { return this.page.locator('button[type="submit"]'); }
9+
get tableGrid(): Locator { return this.page.locator('table'); }
10+
get searchFld(): Locator { return this.page.locator('input[type="text"][id*=":r"]'); }
11+
get dotMenuBtn(): Locator { return this.page.locator('button[aria-label="Dropdown Toggle"]'); }
12+
get alertHeader(): Locator { return this.page.locator('div[role="alert"] div[role="heading"]'); }
13+
get alertMessage(): Locator { return this.page.locator('div[role="alert"] div[role="contentinfo"]'); }
14+
get confirmationMdl(): Locator { return this.page.locator('text=Confirm the action').locator('..'); }
15+
get confirmBtn(): Locator { return this.page.locator('button:has-text("Confirm")'); }
16+
get cancelBtn(): Locator { return this.page.locator('button:has-text("Cancel")'); }
17+
get backBtn(): Locator { return this.page.locator('button:has-text("Back")'); }
18+
get previousBtn(): Locator { return this.page.locator('button:has-text("Previous")'); }
19+
get nextBtn(): Locator { return this.page.locator('button:has-text("Next")'); }
20+
get ddlOptions(): Locator { return this.page.locator('li[value]'); }
21+
get gridItems(): Locator { return this.page.locator('tr[class]'); }
2222

2323
tableElementNameLocator = (name: string):Locator => this.page.locator(`tbody a:has-text("${name}")`);
2424
pageTitleFromHeader = (title: string):Locator => this.page.locator(`h1:has-text("${title}")`);

e2e-playwright/src/pages/Brokers/BrokersLocators.ts

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

10-
brokersHeading = (): Locator => this.page.getByRole('heading', { name: 'Brokers' });
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Brokers' })};
1111
}

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

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

10-
connectorsHeading = (): Locator => this.page.getByRole('heading', { name: 'Connectors' });
11-
connectorsSearchBox = (): Locator => this.page.getByRole('textbox', { name: 'SSearch by Connect Name' });
12-
connectorsCreateConnectorButton = (): Locator => this.page.getByRole('button', { name: 'Create Schema' });
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Connectors' })};
11+
get searchBox(): Locator { return this.page.getByRole('textbox', { name: 'SSearch by Connect Name' })};
12+
get createConnectorButton(): Locator { return this.page.getByRole('button', { name: 'Create Schema' })};
1313
}

e2e-playwright/src/pages/Consumers/ConsumersLocators.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default class ConsumersLocators {
77
this.page = page;
88
}
99

10-
consumersHeading = (): Locator => this.page.getByRole('heading', { name: 'Consumers' });
11-
consumersSearchBox = (): Locator => this.page.getByRole('textbox', { name: 'Search by Consumer Group ID' });
12-
consumersSearchByGroupId = (): Locator => this.page.getByText('Group ID');
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Consumers' })};
11+
get searchBox(): Locator { return this.page.getByRole('textbox', { name: 'Search by Consumer Group ID' })};
12+
get searchByGroupId(): Locator { return this.page.getByText('Group ID')};
1313
}

e2e-playwright/src/pages/Dashboard/DashboardLocators.ts

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

10-
dashboardHeading = (): Locator => this.page.getByRole('heading', { name: 'Dashboard' });
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Dashboard' })};
1111
}

e2e-playwright/src/pages/KSQLDB/ksqldbLocators.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ export default class ksqlDbLocators {
77
this.page = page;
88
}
99

10-
ksqlDbHeading = (): Locator => this.page.getByRole('heading', { name: 'KSQL DB' });
11-
ksqlDbExecuteKSQLREquestButton = (): Locator => this.page.getByRole('button', { name: 'Execute KSQL Request' });
12-
ksqlDbTablesLink = (): Locator => this.page.getByRole('link', { name: 'Tables' });
13-
ksqlDbStreamsLink = (): Locator => this.page.getByRole('link', { name: 'Streams' });
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'KSQL DB' })};
11+
get executeKSQLREquestButton(): Locator { return this.page.getByRole('button', { name: 'Execute KSQL Request' })};
12+
get tablesLink(): Locator { return this.page.getByRole('link', { name: 'Tables' })};
13+
get streamsLink(): Locator { return this.page.getByRole('link', { name: 'Streams' })};
1414

1515
}

e2e-playwright/src/pages/Panel/PanelLocators.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ export default class PanelLocators {
1111
return this.page.getByRole('link', { name });
1212
}
1313

14-
brokersLink(): Locator { return this.linkByName('Brokers');}
15-
topicsLink(): Locator { return this.page.getByTitle('Topics');}
16-
consumersLink(): Locator { return this.linkByName('Consumers');}
17-
schemaRegistryLink(): Locator { return this.linkByName('Schema Registry');}
18-
ksqlDbLink(): Locator { return this.linkByName('KSQL DB');}
19-
getDashboardLink(): Locator { return this.linkByName('Dashboard');}
20-
kafkaConnectLink(): Locator { return this.linkByName('Kafka Connect');}
14+
get brokersLink(): Locator { return this.linkByName('Brokers');}
15+
get topicsLink(): Locator { return this.page.getByTitle('Topics');}
16+
get consumersLink(): Locator { return this.linkByName('Consumers');}
17+
get schemaRegistryLink(): Locator { return this.linkByName('Schema Registry');}
18+
get ksqlDbLink(): Locator { return this.linkByName('KSQL DB');}
19+
get getDashboardLink(): Locator { return this.linkByName('Dashboard');}
20+
get kafkaConnectLink(): Locator { return this.linkByName('Kafka Connect');}
2121
}

e2e-playwright/src/pages/SchemaRegistry/SchemaRegistryLocators.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default class SchemaRegistryLocators {
77
this.page = page;
88
}
99

10-
schemaRegistryHeading = (): Locator => this.page.getByRole('heading', { name: 'Schema Registry' });
11-
schemaRegistrySearchBox = (): Locator => this.page.getByRole('textbox', { name: 'Search by Schema Name' });
12-
schemaRegistryCreateSchemaButton = (): Locator => this.page.getByRole('button', { name: 'Create Schema' });
10+
get heading(): Locator { return this.page.getByRole('heading', { name: 'Schema Registry' })};
11+
get searchBox(): Locator { return this.page.getByRole('textbox', { name: 'Search by Schema Name' })};
12+
get createSchemaButton(): Locator { return this.page.getByRole('button', { name: 'Create Schema' })};
1313
}

e2e-playwright/src/pages/Topics/TopicsCreateLocators.ts

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,24 @@ export default class TopicCreateLocators {
77
this.page = page;
88
}
99

10-
topicsCreateHeading = (): Locator => this.page.getByText('TopicsCreate');
11-
topicsCreateTopicName = ():Locator => this.page.getByRole('textbox', { name: 'Topic Name *' });
12-
topicsCreateNumberOfPartitions = ():Locator => this.page.getByRole('spinbutton', { name: 'Number of Partitions *' });
13-
topicsCreateCleanupPolicy = (): Locator => this.page.getByRole('listbox', { name: 'Cleanup policy' });
14-
topicsCreateCleanupPolicySelect = (value : string): Locator => this.page.getByRole('list').getByRole('option', { name: value, exact: true });
15-
topicsCreateMinInSyncReplicas = (): Locator => this.page.getByRole('spinbutton', { name: 'Min In Sync Replicas' });
16-
topicsCreateReplicationFactor = (): Locator => this.page.getByRole('spinbutton', { name: 'Replication Factor' });
17-
topicsCreateTimeToRetainData = (): Locator => this.page.getByRole('spinbutton', { name: 'Time to retain data (in ms)' });
18-
topicsCreate12Hours = (): Locator => this.page.getByRole('button', { name: 'hours' });
19-
topicsCreate1Day = (): Locator => this.page.getByRole('button', { name: '1 day' });
20-
topicsCreate2Day = (): Locator => this.page.getByRole('button', { name: '2 days' });
21-
topicsCreate7Day = (): Locator => this.page.getByRole('button', { name: '7 days' });
22-
topicsCreate4Weeks = (): Locator => this.page.getByRole('button', { name: 'weeks' });
23-
topicsCreateMaxPartitionSize = (): Locator => this.page.getByRole('listbox', { name: 'Max partition size in GB' });
24-
topicsCreateMaxPartitionSizeSelect = (value: string): Locator => this.page.getByRole('option', { name: value });
25-
topicsCreateMaxMessageSize = (): Locator => this.page.getByRole('spinbutton', { name: 'Maximum message size in bytes' });
26-
topicsCreateAddCustomParameter = (): Locator => this.page.getByRole('button', { name: 'Add Custom Parameter' });
27-
topicsCreateCancel = (): Locator => this.page.getByRole('button', { name: 'Cancel' });
28-
topicCreateCreateTopicButton = (): Locator => this.page.getByRole('button', { name: 'Create topic' });
10+
get heading(): Locator { return this.page.getByText('TopicsCreate'); }
11+
get topicName(): Locator { return this.page.getByRole('textbox', { name: 'Topic Name *' }); }
12+
get numberOfPartitions(): Locator { return this.page.getByRole('spinbutton', { name: 'Number of Partitions *' }); }
13+
get cleanupPolicy(): Locator { return this.page.getByRole('listbox', { name: 'Cleanup policy' }); }
14+
get minInSyncReplicas(): Locator { return this.page.getByRole('spinbutton', { name: 'Min In Sync Replicas' }); }
15+
get replicationFactor(): Locator { return this.page.getByRole('spinbutton', { name: 'Replication Factor' }); }
16+
get timeToRetainData(): Locator { return this.page.getByRole('spinbutton', { name: 'Time to retain data (in ms)' }); }
17+
get button12Hours(): Locator { return this.page.getByRole('button', { name: 'hours' }); }
18+
get button1Day(): Locator { return this.page.getByRole('button', { name: '1 day' }); }
19+
get button2Day(): Locator { return this.page.getByRole('button', { name: '2 days' }); }
20+
get button7Day(): Locator { return this.page.getByRole('button', { name: '7 days' }); }
21+
get button4Weeks(): Locator { return this.page.getByRole('button', { name: 'weeks' }); }
22+
get maxPartitionSize(): Locator { return this.page.getByRole('listbox', { name: 'Max partition size in GB' }); }
23+
get maxMessageSize(): Locator { return this.page.getByRole('spinbutton', { name: 'Maximum message size in bytes' }); }
24+
get addCustomParameter(): Locator { return this.page.getByRole('button', { name: 'Add Custom Parameter' }); }
25+
get cancel(): Locator { return this.page.getByRole('button', { name: 'Cancel' }); }
26+
get createTopicButton(): Locator { return this.page.getByRole('button', { name: 'Create topic' }); }
27+
28+
maxPartitionSizeSelect(value: string): Locator { return this.page.getByRole('option', { name: value }); }
29+
cleanupPolicySelect(value: string): Locator { return this.page.getByRole('list').getByRole('option', { name: value, exact: true }); }
2930
}

0 commit comments

Comments
 (0)