try to fix ci
Some checks failed
CI/CD Pipeline / test (push) Failing after 34m24s
CI/CD Pipeline / deploy-staging (push) Has been skipped
CI/CD Pipeline / deploy-main (push) Has been skipped

This commit is contained in:
Philipp Hofer
2025-11-20 16:58:16 +01:00
parent 0be1a35252
commit ee7c7bc0d6
2 changed files with 21 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
import { test, expect, Page } from "@playwright/test";
import { resetDatabase } from "./helpers";
import { resetDatabase, login } from "./helpers";
test.beforeEach(async () => {
await resetDatabase();
@@ -117,24 +117,14 @@ test.describe("cox can edit trips", () => {
// Someone registers...
await page.goto("/auth/logout");
await page.goto("/auth");
await page.getByPlaceholder("Name").click();
await page.getByPlaceholder("Name").fill("rower");
await page.getByPlaceholder("Name").press("Tab");
await page.getByPlaceholder("Passwort").fill("rower");
await page.getByPlaceholder("Passwort").press("Enter");
await login(page, "rower", "rower");
await page.goto("/planned");
await page.getByRole('link', { name: 'Mitrudern' }).nth(1).click();
// Login as cox again
await page.goto("/auth/logout");
await page.goto("/auth");
await page.getByPlaceholder("Name").click();
await page.getByPlaceholder("Name").fill("cox");
await page.getByPlaceholder("Name").press("Tab");
await page.getByPlaceholder("Passwort").fill("cox");
await page.getByPlaceholder("Passwort").press("Enter");
await login(page, "cox", "cox");
await page.goto("/planned");

View File

@@ -1,8 +1,26 @@
import { exec } from 'child_process';
import { promisify } from 'util';
import { Page } from '@playwright/test';
const execAsync = promisify(exec);
export async function resetDatabase(): Promise<void> {
await execAsync('cd .. && ./reset_test_data.sh');
}
export async function login(page: Page, username: string, password: string): Promise<void> {
// Clear cookies to ensure clean state
await page.context().clearCookies();
await page.goto("/auth");
await page.getByPlaceholder("Name").click();
await page.getByPlaceholder("Name").fill(username);
await page.getByPlaceholder("Passwort").click();
await page.getByPlaceholder("Passwort").fill(password);
// Wait for navigation after form submission
await Promise.all([
page.waitForURL(/\/(planned|log|$)/, { timeout: 10000 }),
page.getByPlaceholder("Passwort").press("Enter")
]);
}