1{
2 "name": "Vite 8 + React Router 7 (multi-route SPA)",
3 "config": {
4 "files": ["index.html"],
5 "insertBefore": "</body>",
6 "commentSyntax": "html"
7 },
8 "sourceFiles": [
9 "index.html",
10 "src/main.jsx",
11 "src/routes/Home.jsx",
12 "src/routes/About.jsx",
13 "src/styles.css",
14 "vite.config.js"
15 ],
16 "generatedFiles": [],
17 "wrapCases": [
18 {
19 "name": "wraps About hero in routes/About.jsx",
20 "args": { "classes": "hero-title", "tag": "h1" },
21 "expectedFile": "src/routes/About.jsx"
22 }
23 ],
24 "runtime": {
25 "styling": "plain-css",
26 "install": ["npm", "install", "--no-audit", "--no-fund", "--loglevel=error"],
27 "devCommand": ["npx", "vite", "--host", "127.0.0.1"],
28 "readyPattern": "Local:\\s+https?://[^:]+:(\\d+)",
29 "readyTimeoutMs": 120000,
30 "preActions": [
31 { "type": "click", "selector": "[data-testid='nav-about']" },
32 { "type": "wait", "selector": "h1.hero-title" }
33 ],
34 "reloadProbe": {
35 "preActions": [
36 { "type": "click", "selector": "[data-testid='nav-about']" },
37 { "type": "wait", "selector": "h1.hero-title" }
38 ],
39 "expectSelector": "h1.hero-title"
40 },
41 "probe": {
42 "expectLiveInit": true,
43 "expectConsoleClean": true
44 }
45 }
46}