Auth implemented

This commit is contained in:
AG
2025-10-13 18:18:34 +03:00
parent 6e587e8aa7
commit 60e9c24440
28 changed files with 1251 additions and 47 deletions

View File

@@ -0,0 +1,47 @@
// tests/e2e/auth.e2e.test.ts
import { test, expect } from '@playwright/test';
test.describe('Authentication End-to-End Tests', () => {
test('should allow successful SPA access after correct passphrase entry', async ({ page }) => {
// Assuming the app is running on http://localhost:3000
await page.goto('http://localhost:3000');
// Expect to be on the login page
await expect(page.locator('h1', { hasText: 'Enter Passphrase' })).toBeVisible();
// Fill in the passphrase (replace with actual passphrase from .env)
await page.fill('#passphrase', 'YOUR_PASSPHRASE_HERE'); // Placeholder
// Click the submit button
await page.click('button[type="submit"]');
// Expect to be redirected to the SPA content (e.g., CreateSession page)
await expect(page.locator('h1', { hasText: 'Create New Session' })).toBeVisible();
// Verify session token is stored (e.g., in local storage)
const sessionToken = await page.evaluate(() => localStorage.getItem('sessionToken'));
expect(sessionToken).not.toBeNull();
expect(sessionToken).not.toBe('');
});
test('should deny SPA access and show error for incorrect passphrase entry', async ({ page }) => {
await page.goto('http://localhost:3000');
// Expect to be on the login page
await expect(page.locator('h1', { hasText: 'Enter Passphrase' })).toBeVisible();
// Fill in an incorrect passphrase
await page.fill('#passphrase', 'incorrect-passphrase');
// Click the submit button
await page.click('button[type="submit"]');
// Expect to remain on the login page and see an error message
await expect(page.locator('h1', { hasText: 'Enter Passphrase' })).toBeVisible();
await expect(page.locator('.MuiAlert-message', { hasText: 'Authentication failed' })).toBeVisible(); // Assuming the error message is "Authentication failed"
// Verify session token is NOT stored
const sessionToken = await page.evaluate(() => localStorage.getItem('sessionToken'));
expect(sessionToken).toBeNull();
});
});