From 9230b53ccd7f2bc150bbae7f042ae21f0b8011b7 Mon Sep 17 00:00:00 2001 From: JD Date: Thu, 8 Oct 2026 00:35:36 -0400 Subject: [PATCH] docs(wiki): say npm test is the CI gate, as CONTRIBUTING.md does The wiki's Contributing page still warned against bare npm test and pointed at test:ci, from before 947ff6f6 made npm test the CI gate and gave the browser, mobile and perf suites their own runners. It now matches .github/CONTRIBUTING.md and CLAUDE.md. --- docs/wiki/Contributing.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/wiki/Contributing.md b/docs/wiki/Contributing.md index c08229ee..ae03f0ee 100644 --- a/docs/wiki/Contributing.md +++ b/docs/wiki/Contributing.md @@ -43,8 +43,8 @@ npm run lint npm run format:check npm run check:frontend-syntax npm run check:browser-excludes -npm test -- test/.test.ts # one file, the normal way -npm run test:ci # the full CI sweep +npm test # the gate, exactly what CI runs +npm test -- test/.test.ts # one file ``` `npm install` installs a `pre-push` git hook that runs the static checks above (about 10-40s, @@ -53,9 +53,12 @@ something other than the checked-out HEAD, or when the tree has uncommitted chan checks would read. Skip it once with `CODEMAN_SKIP_PREPUSH=1 git push`; a `pre-push` hook of your own is never overwritten. -**Never run bare `npm test`.** The default configuration includes browser-driven Playwright -suites that need a live server, Chromium, and environment-specific baselines; they hang or -fail on a normal machine. `test:ci` is the honest "run everything". +`npm test` runs the same suite CI runs, so a green run locally means a green run there. It +leaves out three suites that cannot pass on an arbitrary machine, each with its own command: +`npm run test:browser` (Playwright, Chromium and a live server), `npm run test:mobile` (the +same plus environment-specific screenshot baselines) and `npm run test:perf` (wall-clock +benchmarks for an otherwise idle machine). Expect those to fail where the machine cannot +provide what they need; that means "not runnable here", not a regression. Tests are tmux-safe by design: under vitest the tmux layer becomes an in-memory mock, so tests cannot touch real sessions. If you add a test that binds a port, pick a unique one at