// Rendu headless de chaque écran pour vérifier qu'aucun composant ne lève. // Lancement : npx tsx --tsconfig tsconfig.app.json scripts/smoke.tsx import { createElement } from 'react'; import { renderToString } from 'react-dom/server'; import { RouterProvider, createMemoryRouter } from 'react-router-dom'; import { PlanningProvider } from '@/app/planning-store'; import { routes } from '@/app/router'; const paths = [ '/grille', '/benevoles', '/publication', '/mobile-benevole', '/mobile-referent', '/configuration', ]; let failures = 0; for (const path of paths) { try { const router = createMemoryRouter(routes, { initialEntries: [path] }); const html = renderToString( createElement(PlanningProvider, null, createElement(RouterProvider, { router })), ); console.log(`ok ${path.padEnd(20)} ${html.length} octets`); } catch (error) { failures += 1; console.error(`FAIL ${path}`, error); } } process.exit(failures ? 1 : 0);