mirror of
https://github.com/lukevella/rallly.git
synced 2025-04-30 02:36:30 +02:00
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import type { Page } from "@playwright/test";
|
|
import { PollPage } from "tests/poll-page";
|
|
|
|
export class NewPollPage {
|
|
constructor(public readonly page: Page) {}
|
|
|
|
async goto() {
|
|
await this.page.goto("/new");
|
|
}
|
|
|
|
async createPollAndCloseDialog({ name }: { name: string }) {
|
|
await this.goto();
|
|
const pollPage = await this.createPoll({ name });
|
|
await pollPage.closeDialog();
|
|
return pollPage;
|
|
}
|
|
async createPoll({ name }: { name: string }) {
|
|
const page = this.page;
|
|
|
|
await page.fill('[placeholder="Monthly Meetup"]', name);
|
|
// click on label to focus on input
|
|
await page.click('text="Location"');
|
|
await page.keyboard.type("Online");
|
|
|
|
await page.click('text="Description"');
|
|
|
|
await page.keyboard.type("Hey everyone, what time can you meet?");
|
|
|
|
await page.click('[title="Next month"]');
|
|
|
|
// Select a few days
|
|
await page.click("text=/^5$/");
|
|
await page.click("text=/^7$/");
|
|
await page.click("text=/^10$/");
|
|
await page.click("text=/^15$/");
|
|
|
|
await page.click('text="Create poll"');
|
|
|
|
return new PollPage(page);
|
|
}
|
|
}
|