66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import { Locator, Page } from '@playwright/test';
|
|
|
|
export class WebhooksSection {
|
|
private readonly createWebhookButton: Locator;
|
|
private readonly webhookURLInput: Locator;
|
|
private readonly webhookDescription: Locator;
|
|
private readonly deleteButton: Locator;
|
|
|
|
constructor(public readonly page: Page) {
|
|
this.page = page;
|
|
this.createWebhookButton = page.getByRole('link', {
|
|
name: 'Create Webhook',
|
|
});
|
|
this.webhookURLInput = page.getByPlaceholder('URL');
|
|
this.webhookDescription = page.getByPlaceholder('Write a description');
|
|
this.deleteButton = page.getByRole('button', { name: 'Delete' });
|
|
}
|
|
|
|
async deleteWebhook() {
|
|
await this.deleteButton.click();
|
|
}
|
|
|
|
async createWebhook() {
|
|
await this.createWebhookButton.click();
|
|
}
|
|
|
|
async typeWebhookURL(url: string) {
|
|
await this.webhookURLInput.clear();
|
|
await this.webhookURLInput.fill(url);
|
|
}
|
|
|
|
async typeWebhookDescription(description: string) {
|
|
await this.webhookDescription.fill(description);
|
|
}
|
|
|
|
async selectWebhookObject(index: number, object: string) {
|
|
await this.page
|
|
.locator(
|
|
`//div[aria-controls="object-webhook-type-select-${index}-options"]`,
|
|
)
|
|
.click();
|
|
await this.page.getByRole('option').getByText(object).click();
|
|
}
|
|
|
|
async selectWebhookAction(index: number, action: string) {
|
|
await this.page
|
|
.locator(
|
|
`//div[aria-controls="operation-webhook-type-select-${index}-options"]`,
|
|
)
|
|
.click();
|
|
await this.page.getByRole('option').getByText(action).click();
|
|
}
|
|
|
|
async deleteWebhookFilter(index: number) {
|
|
await this.page
|
|
.locator(
|
|
`//div[aria-controls="object-webhook-type-select-${index}-options"]/../..//button`,
|
|
)
|
|
.click();
|
|
}
|
|
|
|
async checkWebhookDetails(name: string) {
|
|
await this.page.locator(`//a/div[contains(.,'${name}')][first()]`).click();
|
|
}
|
|
}
|