test: add playwright config and e2e tests
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user