Files
lpt-fe/e2e/auth-guard.spec.ts

39 lines
1.2 KiB
TypeScript

import { test, expect } from '@playwright/test';
test.describe('Auth guard', () => {
test('redirects to /login when not authenticated', async ({ page }) => {
// Ensure no auth state
await page.goto('/login');
await page.evaluate(() => localStorage.removeItem('isLoggedIn'));
await page.goto('/welcome');
await expect(page).toHaveURL(/\/login/);
await expect(page.locator('.login-page')).toBeVisible();
});
test('redirects / to /login when not authenticated', async ({ page }) => {
await page.goto('/login');
await page.evaluate(() => localStorage.removeItem('isLoggedIn'));
await page.goto('/');
await expect(page).toHaveURL(/\/login/);
});
test('allows access to /welcome when authenticated', async ({ page }) => {
await page.route('**/api/review/feed**', (route) =>
route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({ code: 200, data: [] }),
}),
);
await page.goto('/login');
await page.evaluate(() => localStorage.setItem('isLoggedIn', 'true'));
await page.goto('/welcome');
await expect(page).toHaveURL(/\/welcome/);
await expect(page.locator('.welcome-page')).toBeVisible();
});
});