corentin_wakdo/playwright.config.js
Imugiii aff246aa10
All checks were successful
CI / js-tests (pull_request) Successful in 25s
CI / secret-scan (pull_request) Successful in 13s
CI / php-lint (pull_request) Successful in 24s
CI / static-tests (pull_request) Successful in 53s
CI / auto-merge (pull_request) Successful in 6s
test(e2e): parcours borne Playwright (conteneur, stack jetable)
Premier test E2E : welcome -> categories -> produit -> ajout panier -> panier ->
paiement -> confirmation. Tourne headless dans le conteneur Playwright officiel,
contre une stack JETABLE isolee (tests/e2e/run.sh : `-p wakdoe2e`, override
container_name + sans port hote, jointe par --add-host). Zero dependance Node/browser
sur l'hote, ne touche aucune stack existante.

- playwright.config.js (CJS), tests/e2e/borne.spec.js, tests/e2e/run.sh,
  tests/e2e/docker-compose.e2e.yml (override jetable).
- @playwright/test en devDep ; le job CI js-tests skip le download des browsers
  (PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1, validee : npm ci + 7 tests JS verts).
- Hostnames de test en .test (Chromium resout *.localhost en dur vers 127.0.0.1).

Etape 1 de l'initiative E2E (lance a la main). Suite : parcours admin, puis job CI.
2026-06-17 14:36:56 +00:00

23 lines
894 B
JavaScript

// Configuration Playwright (E2E borne). CommonJS : la racine n'est pas "type:module".
// La stack est montee a part (tests/e2e/run.sh) ; BASE_URL pointe vers wakdo-web.
const { defineConfig, devices } = require('@playwright/test');
module.exports = defineConfig({
testDir: './tests/e2e',
// Headless : tourne sur serveur sans ecran (dans le conteneur Playwright officiel).
fullyParallel: false,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 1 : 0,
workers: 1,
reporter: [['list'], ['html', { open: 'never', outputFolder: 'playwright-report' }]],
use: {
// run.sh fixe BASE_URL (hostname .test, joignable via --add-host).
baseURL: process.env.BASE_URL || 'http://kiosk.wakdo.test',
headless: true,
trace: 'on-first-retry',
screenshot: 'only-on-failure',
},
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
],
});