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(); }); });