Spaces:
Paused
Paused
File size: 1,314 Bytes
5a81b95 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | const { test, expect } = require('@playwright/test');
test.describe('Authentication Flow', () => {
test('should successfully login with valid credentials', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="email"]', 'admin@widgettdc.dev');
await page.fill('input[name="password"]', 'password');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.locator('text=Welcome')).toBeVisible();
});
test('should show error with invalid credentials', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="email"]', 'wrong@example.com');
await page.fill('input[name="password"]', 'wrongpass');
await page.click('button[type="submit"]');
await expect(page.locator('.error-message')).toBeVisible();
await expect(page.locator('.error-message')).toContainText('Invalid credentials');
});
test('should logout successfully', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="email"]', 'admin@widgettdc.dev');
await page.fill('input[name="password"]', 'password');
await page.click('button[type="submit"]');
await page.click('button[aria-label="Logout"]');
await expect(page).toHaveURL('/login');
});
});
|