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