Étape 1 du refactor (voir PR) : met en place le vrai mode Component Testing de Cypress, séparé de l'e2e — monte un composant React isolé (pas de routeur, pas de backend), pour tester les composants génériques (components/ui/) indépendamment de tout parcours utilisateur. - cypress.config.ts : nouveau bloc `component` (devServer Vite, réutilise vite.config.ts de l'appli — même plugin React, même Sass). Le hook GPU-disable est factorisé (`disableGpu`) puisque e2e et component ont chacun leur propre `setupNodeEvents`, pas de config partagée par défaut. - cypress/support/component.ts + component-index.html : fichiers de support standards Cypress CT — importe le vrai global.scss de l'appli (les composants génériques sont stylés via lui, pas de CSS scopé à eux). - cypress/component/CheckboxOption.cy.tsx : 4 scénarios sur components/ui/Checkbox.tsx (rendu du label, reflet du prop `checked` sur l'input natif + la classe `is-selected`, callback `onChange` avec la valeur inversée, comportement contrôlé via un wrapper avec état). Dépendance ajoutée, épinglée : @cypress/vite-dev-server@5.2.1 (dernière version sans peer dependency cypress >=14 — 6.0.3+ l'exige explicitement, on est sur cypress@13.17.0). Testé en local jusqu'au mur GPU/Electron habituel (config + devServer Vite chargent sans erreur) — l'exécution réelle du montage reste à vérifier via la CI.
41 lines
1.1 KiB
JSON
41 lines
1.1 KiB
JSON
{
|
|
"name": "web",
|
|
"version": "0.2.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc -b && vite build",
|
|
"preview": "vite preview",
|
|
"test": "echo \"no unit tests yet\" && exit 0",
|
|
"cy:open": "cypress open",
|
|
"cy:run": "cypress run",
|
|
"e2e": "start-server-and-test dev http://localhost:5173 cy:run"
|
|
},
|
|
"dependencies": {
|
|
"@batch-cooking/date-tools": "workspace:*",
|
|
"@batch-cooking/shared": "workspace:*",
|
|
"i18next": "^26.3.6",
|
|
"lucide-react": "^1.32.0",
|
|
"react": "^18.3.1",
|
|
"react-dom": "^18.3.1",
|
|
"react-i18next": "^17.0.11",
|
|
"react-router-dom": "^7.18.2",
|
|
"zod": "^3.25.76"
|
|
},
|
|
"devDependencies": {
|
|
"@badeball/cypress-cucumber-preprocessor": "22.2.0",
|
|
"@bahmutov/cypress-esbuild-preprocessor": "2.2.8",
|
|
"@cypress/vite-dev-server": "5.2.1",
|
|
"@types/node": "^22.9.0",
|
|
"@types/react": "^18.3.12",
|
|
"@types/react-dom": "^18.3.1",
|
|
"@vitejs/plugin-react": "^4.3.3",
|
|
"cypress": "13.17.0",
|
|
"esbuild": "0.21.5",
|
|
"sass": "^1.102.0",
|
|
"start-server-and-test": "^2.0.8",
|
|
"typescript": "^5.7.2",
|
|
"vite": "^5.4.11"
|
|
}
|
|
}
|