mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-09-30 12:39:42 +02:00
test(mobile): serve the xterm vendor bundles the browser suite needs
The mobile suite drives a real browser against a WebServer started from TypeScript source, so fastify-static serves join(__dirname, 'public') = src/web/public — not dist/web/public, where `npm run build` puts the vendor bundles. Every /vendor/xterm* request 404s, so `Terminal` is never defined, initTerminal() never runs, and any test touching app.terminal dies with "Cannot read properties of null". Measured in one worktree, toggling only the vendor files: before: 404s=5 Terminal=undefined app.terminal=null 8 failed | 26 passed after: 404s=0 Terminal=function app.terminal=live 6 failed | 28 passed The 6 remaining failures are genuine pre-existing bugs (stale layout and accessory-bar expectations, a CJK timeout) and are left alone here. This went unnoticed because config/vitest.ci.config.ts excludes test/mobile/**, so CI never ran the suite. `npm run test:mobile` now runs it, with a pretest hook that builds the bundles. The asset list was derived from the actual 404s rather than from build.mjs — which is how xterm-addon-unicode11 and xterm-zerolag-input got included; reading the build file alone would have missed both. Outputs go to the gitignored src/web/public/vendor/, so they stay build artifacts. The script is idempotent (skips outputs newer than their source) and does not touch the normal build. Full CI suite unchanged: 4368 passed.
This commit is contained in:
@@ -21,6 +21,8 @@
|
||||
"test:watch": "vitest --config config/vitest.config.ts",
|
||||
"test:coverage": "vitest run --config config/vitest.config.ts --coverage",
|
||||
"test:ci": "vitest run --config config/vitest.ci.config.ts",
|
||||
"pretest:mobile": "node scripts/prepare-test-vendor.mjs",
|
||||
"test:mobile": "vitest run --config test/mobile/vitest.config.ts",
|
||||
"check:frontend-syntax": "node scripts/check-frontend-syntax.mjs",
|
||||
"fix:node-pty": "node scripts/fix-node-pty.mjs",
|
||||
"typecheck": "tsc --noEmit",
|
||||
|
||||
Reference in New Issue
Block a user