@ -0,0 +1,48 @@
|
||||
import { Locator, Page } from '@playwright/test';
|
||||
|
||||
export class MembersSection {
|
||||
private readonly inviteMembersField: Locator;
|
||||
private readonly inviteMembersButton: Locator;
|
||||
private readonly inviteLinkButton: Locator;
|
||||
|
||||
constructor(public readonly page: Page) {
|
||||
this.page = page;
|
||||
this.inviteMembersField = page.getByPlaceholder(
|
||||
'tim@apple.com, jony.ive@apple',
|
||||
);
|
||||
this.inviteMembersButton = page.getByRole('button', { name: 'Invite' });
|
||||
this.inviteLinkButton = page.getByRole('button', { name: 'Copy link' });
|
||||
}
|
||||
|
||||
async copyInviteLink() {
|
||||
await this.inviteLinkButton.click();
|
||||
}
|
||||
|
||||
async sendInviteEmail(email: string) {
|
||||
await this.inviteMembersField.click();
|
||||
await this.inviteMembersField.fill(email);
|
||||
await this.inviteMembersButton.click();
|
||||
}
|
||||
|
||||
async deleteMember(email: string) {
|
||||
await this.page
|
||||
.locator(`//div[contains(., '${email}')]/../../div[last()]/div/button`)
|
||||
.click();
|
||||
}
|
||||
|
||||
async deleteInviteEmail(email: string) {
|
||||
await this.page
|
||||
.locator(
|
||||
`//div[contains(., '${email}')]/../../div[last()]/div/button[first()]`,
|
||||
)
|
||||
.click();
|
||||
}
|
||||
|
||||
async refreshInviteEmail(email: string) {
|
||||
await this.page
|
||||
.locator(
|
||||
`//div[contains(., '${email}')]/../../div[last()]/div/button[last()]`,
|
||||
)
|
||||
.click();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user