Initial commit

This commit is contained in:
Rafael Dias Martins
2026-08-31 14:10:20 -03:00
commit 8fcb5aac66
454 changed files with 60207 additions and 0 deletions
+66
View File
@@ -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();
});
});