All checks were successful
PR Checks / lint-test-and-docker-build (pull_request) Successful in 2m17s
26 lines
987 B
TypeScript
26 lines
987 B
TypeScript
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/upcoming';
|
|
|
|
async function submitLocalLogin(page: Page, username: string, password: string): Promise<void> {
|
|
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\/(upcoming|dashboard)/, { timeout: 15_000 });
|
|
await expect(page).not.toHaveURL(/\/trips\/auth/);
|
|
await expect(page).not.toHaveURL(/\/trips\/login/);
|
|
});
|