Initial commit
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
import { test, expect } from '@playwright/test';
|
||||
|
||||
test.describe('Login', () => {
|
||||
test.beforeEach(async ({ page }) => {
|
||||
await page.goto('/auth/login');
|
||||
});
|
||||
|
||||
test('deve mostrar o formulário de login', async ({ page }) => {
|
||||
await expect(page.locator('h1, h2')).toContainText('Login');
|
||||
await expect(page.getByLabel(/email/i)).toBeVisible();
|
||||
await expect(page.getByLabel(/senha/i)).toBeVisible();
|
||||
await expect(page.getByRole('button', { name: /entrar|login/i })).toBeVisible();
|
||||
});
|
||||
|
||||
test('deve mostrar erro com credenciais inválidas', async ({ page }) => {
|
||||
await page.getByLabel(/email/i).fill('[email protected]');
|
||||
await page.getByLabel(/senha/i).fill('senhaerrada');
|
||||
await page.getByRole('button', { name: /entrar|login/i }).click();
|
||||
|
||||
// Deve mostrar mensagem de erro ou redirecionar para login
|
||||
await expect(page).toHaveURL(/\/auth\/login/);
|
||||
});
|
||||
|
||||
test('deve redirecionar para dispatcher após login bem-sucedido', async ({ page }) => {
|
||||
// TODO: Criar usuário de teste antes de executar
|
||||
// await page.getByLabel(/email/i).fill('[email protected]');
|
||||
// await page.getByLabel(/senha/i).fill('123456');
|
||||
// await page.getByRole('button', { name: /entrar|login/i }).click();
|
||||
|
||||
// await expect(page).toHaveURL(/\/dispatcher/);
|
||||
});
|
||||
|
||||
test('deve redirecionar para login se tentar acessar rota protegida', async ({ page }) => {
|
||||
await page.goto('/admin/dashboard');
|
||||
await expect(page).toHaveURL(/\/auth\/login/);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Navbar - Estado Autenticado', () => {
|
||||
test('não autenticado: mostra Home, Cadastro, Login', async ({ page }) => {
|
||||
await page.goto('/');
|
||||
|
||||
const nav = page.locator('nav ul');
|
||||
await expect(nav.getByRole('link', { name: 'Home' })).toBeVisible();
|
||||
await expect(nav.getByRole('link', { name: 'Cadastro' })).toBeVisible();
|
||||
await expect(nav.getByRole('button', { name: 'Login' })).toBeVisible();
|
||||
await expect(nav.getByRole('link', { name: 'Dashboard' })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('autenticado: mostra Home, Dashboard, Logout (esconde Cadastro)', async ({ page }) => {
|
||||
// TODO: Fazer login primeiro
|
||||
// await page.goto('/auth/login');
|
||||
// await page.getByLabel(/email/i).fill('[email protected]');
|
||||
// await page.getByLabel(/senha/i).fill('123456');
|
||||
// await page.getByRole('button', { name: /entrar|login/i }).click();
|
||||
|
||||
// await page.waitForURL(/\/dispatcher|\/dashboard/);
|
||||
// await page.goto('/');
|
||||
|
||||
// const nav = page.locator('nav ul');
|
||||
// await expect(nav.getByRole('link', { name: 'Home' })).toBeVisible();
|
||||
// await expect(nav.getByRole('link', { name: 'Cadastro' }).not.toBeVisible();
|
||||
// await expect(nav.getByRole('link', { name: 'Dashboard' })).toBeVisible();
|
||||
// await expect(nav.getByRole('button', { name: /logout|sair/i })).toBeVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user