@ -0,0 +1,54 @@
|
||||
import { Locator, Page } from '@playwright/test';
|
||||
|
||||
export class AccountsSection {
|
||||
private readonly addAccountButton: Locator;
|
||||
private readonly deleteAccountButton: Locator;
|
||||
private readonly addBlocklistField: Locator;
|
||||
private readonly addBlocklistButton: Locator;
|
||||
private readonly connectWithGoogleButton: Locator;
|
||||
|
||||
constructor(public readonly page: Page) {
|
||||
this.page = page;
|
||||
this.addAccountButton = page.getByRole('button', { name: 'Add account' });
|
||||
this.deleteAccountButton = page
|
||||
.getByTestId('tooltip')
|
||||
.getByText('Remove account');
|
||||
this.addBlocklistField = page.getByPlaceholder(
|
||||
'eddy@gmail.com, @apple.com',
|
||||
);
|
||||
this.addBlocklistButton = page.getByRole('button', {
|
||||
name: 'Add to blocklist',
|
||||
});
|
||||
this.connectWithGoogleButton = page.getByRole('button', {
|
||||
name: 'Connect with Google',
|
||||
});
|
||||
}
|
||||
|
||||
async clickAddAccount() {
|
||||
await this.addAccountButton.click();
|
||||
}
|
||||
|
||||
async deleteAccount(email: string) {
|
||||
await this.page
|
||||
.locator(`//span[contains(., "${email}")]/../div/div/div/button`)
|
||||
.click();
|
||||
await this.deleteAccountButton.click();
|
||||
}
|
||||
|
||||
async addToBlockList(domain: string) {
|
||||
await this.addBlocklistField.fill(domain);
|
||||
await this.addBlocklistButton.click();
|
||||
}
|
||||
|
||||
async removeFromBlocklist(domain: string) {
|
||||
await this.page
|
||||
.locator(
|
||||
`//div[@data-testid='tooltip' and contains(., '${domain}')]/../../div[last()]/button`,
|
||||
)
|
||||
.click();
|
||||
}
|
||||
|
||||
async linkGoogleAccount() {
|
||||
await this.connectWithGoogleButton.click();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user