fixture.json

 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}