import { test, expect, type Page } from '@playwright/test'; import { TEST_USERS } from './setup/test-users.js'; const LOGIN_URL = '/trips/login'; const UPCOMING_URL = '/trips/trips/upcoming'; async function submitLocalLogin(page: Page, username: string, password: string): Promise { await page.fill('input[name="identifier"]', username); await page.fill('input[name="password"]', password); await page.click('button[type="submit"]:has-text("Sign in locally")'); } test.beforeEach(async ({ context }) => { await context.clearCookies(); }); test('redirects back to protected route after local login', async ({ page }) => { await page.goto(UPCOMING_URL); await expect(page).toHaveURL(/\/trips\/login/); await submitLocalLogin(page, TEST_USERS.regular.username, TEST_USERS.regular.password); await page.waitForURL(/\/trips\/(trips\/upcoming|dashboard)/, { timeout: 15_000 }); await expect(page).not.toHaveURL(/\/trips\/auth/); await expect(page).not.toHaveURL(/\/trips\/login/); });