mascarpone/e2e/pages/util.ts

31 lines
945 B
TypeScript

import type { Page } from '@playwright/test';
export const login = async (page: Page) => {
await page.goto('/');
await page.getByLabel("Username").fill("test");
await page.getByLabel("Password").fill("test");
await page.getByRole("button", { name: /login/i }).click();
};
export const todate = () => new Date().toISOString().split('T')[0];
type UserFields = {
names?: Array<string>,
birthday?: string,
};
export const verifyCreateUser = async (page: Page, fields: UserFields) => {
await page.getByRole('button', { name: /add contact/i }).click();
const { names, ...simple } = fields;
for (const name of (names ?? [])) {
await page.getByRole('textbox', { name: 'New name' }).fill(name);
await page.getByRole('button', { name: 'Add', exact: true }).click();
}
for (const [label, value] of Object.entries(simple)) {
await page.getByLabel(label).fill(value);
}
await page.getByRole('button', { name: /save/i }).click();
};