Saem gsap, motion, clsx e tailwind-merge; entram server-only, @playwright/test e @axe-core/playwright. Suíte e2e (rotas, axe, teclado, navegação, sem JS, rolagem) rodável com pnpm test:e2e contra BASE_URL.
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
/**
|
|
* Teste de fumaça de ponta a ponta (pasta e2e/), rodado contra um servidor que já está no ar:
|
|
* BASE_URL endereço do site (padrão http://localhost:3001)
|
|
* PW_CHROMIUM caminho do chrome.exe, para não baixar navegador do Playwright
|
|
* (ex.: %LOCALAPPDATA%\ms-playwright\chromium-1248\chrome-win64\chrome.exe)
|
|
* Este arquivo não sobe servidor nenhum: `pnpm build && pnpm start -p 3001` (ou `pnpm dev`) antes de rodar.
|
|
*/
|
|
const baseURL = process.env.BASE_URL ?? "http://localhost:3001";
|
|
const executablePath = process.env.PW_CHROMIUM || undefined;
|
|
|
|
export default defineConfig({
|
|
testDir: "./e2e",
|
|
// um servidor de desenvolvimento compila cada rota na primeira visita: com folga
|
|
timeout: 120_000,
|
|
expect: { timeout: 10_000 },
|
|
// um navegador por vez: o servidor local (principalmente o dev) não aguenta várias compilações juntas
|
|
workers: 1,
|
|
fullyParallel: false,
|
|
retries: 0,
|
|
reporter: [["list"]],
|
|
use: {
|
|
baseURL,
|
|
trace: "retain-on-failure",
|
|
screenshot: "only-on-failure",
|
|
launchOptions: { executablePath },
|
|
},
|
|
projects: [
|
|
{
|
|
name: "chromium",
|
|
use: {
|
|
...devices["Desktop Chrome"],
|
|
launchOptions: { executablePath },
|
|
},
|
|
},
|
|
],
|
|
});
|