40 lines
1.6 KiB
TypeScript
40 lines
1.6 KiB
TypeScript
|
|
import { expect, type Page } from "@playwright/test";
|
||
|
|
|
||
|
|
import { createHttpServer } from "../lib/testUtils";
|
||
|
|
|
||
|
|
export function createWebhookPageFixture(page: Page) {
|
||
|
|
return {
|
||
|
|
createTeamReceiver: async () => {
|
||
|
|
const webhookReceiver = createHttpServer();
|
||
|
|
await page.goto(`/settings/developer/webhooks`);
|
||
|
|
await page.click('[data-testid="new_webhook"]');
|
||
|
|
await page.click('[data-testid="option-team-1"]');
|
||
|
|
await page.waitForURL((u) => u.pathname === "/settings/developer/webhooks/new");
|
||
|
|
const url = page.url();
|
||
|
|
const teamId = Number(new URL(url).searchParams.get("teamId")) as number;
|
||
|
|
await page.click('[data-testid="new_webhook"]');
|
||
|
|
await page.fill('[name="subscriberUrl"]', webhookReceiver.url);
|
||
|
|
await page.fill('[name="secret"]', "secret");
|
||
|
|
await Promise.all([
|
||
|
|
page.click("[type=submit]"),
|
||
|
|
page.waitForURL((url) => url.pathname.endsWith("/settings/developer/webhooks")),
|
||
|
|
]);
|
||
|
|
expect(page.locator(`text='${webhookReceiver.url}'`)).toBeDefined();
|
||
|
|
return { webhookReceiver, teamId };
|
||
|
|
},
|
||
|
|
createReceiver: async () => {
|
||
|
|
const webhookReceiver = createHttpServer();
|
||
|
|
await page.goto(`/settings/developer/webhooks`);
|
||
|
|
await page.click('[data-testid="new_webhook"]');
|
||
|
|
await page.fill('[name="subscriberUrl"]', webhookReceiver.url);
|
||
|
|
await page.fill('[name="secret"]', "secret");
|
||
|
|
await Promise.all([
|
||
|
|
page.click("[type=submit]"),
|
||
|
|
page.waitForURL((url) => url.pathname.endsWith("/settings/developer/webhooks")),
|
||
|
|
]);
|
||
|
|
expect(page.locator(`text='${webhookReceiver.url}'`)).toBeDefined();
|
||
|
|
return webhookReceiver;
|
||
|
|
},
|
||
|
|
};
|
||
|
|
}
|