mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { test as base, expect, type Page } from "@playwright/test";
|
|||
|
|
|
||
|
|
export async function login(page: Page, username = "admin", password = "admin") {
|
||
|
|
await page.goto("/login");
|
||
|
|
await page.getByLabel("Username").fill(username);
|
||
|
|
await page.getByLabel("Password").fill(password);
|
||
|
|
await page.getByRole("button", { name: /login/i }).click();
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function getSessionViaApi(page: Page) {
|
||
|
|
const token = await page.evaluate(() => localStorage.getItem("snapotter-token") ?? "");
|
||
|
|
const res = await page.request.get("/api/auth/session", {
|
||
|
|
headers: { Authorization: `Bearer ${token}` },
|
||
|
|
});
|
||
|
|
return res.json();
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function setConsentViaApi(
|
||
|
|
page: Page,
|
||
|
|
data: { enabled?: boolean; remindLater?: boolean },
|
||
|
|
) {
|
||
|
|
const token = await page.evaluate(() => localStorage.getItem("snapotter-token") ?? "");
|
||
|
|
const apiBase = process.env.API_URL || "http://localhost:13491";
|
||
|
|
await page.request.put(`${apiBase}/api/v1/user/analytics`, {
|
||
|
|
headers: { Authorization: `Bearer ${token}` },
|
||
|
|
data,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
export const test = base.extend<{ loggedInPage: Page }>({
|
||
|
|
loggedInPage: async ({ page }, use) => {
|
||
|
|
await page.goto("/");
|
||
|
|
await use(page);
|
||
|
|
},
|
||
|
|
});
|
||
|
|
|
||
|
|
export { expect };
|