Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 69043125ad764394a38aabd66ed3e36dbf78b04c
parent 75e9dae007999d929ef08583252b1a3e24703db9
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Mon, 28 Sep 2026 12:32:04 -0400

export: a `test` script for the 11 unit files no suite ran, named in the gate list and CONTRIBUTING

`pnpm --filter export test` is `tsx --test "app/**/*.test.ts"`: 11 files,
98 tests, all passing. The implementer gate list now names it and the
homepage's unit script (2 tests), and the editor's that W1 adds;
CONTRIBUTING's "Tests" lists every package's script. FACTS amended in the
two places that said export (and common, editor) had none.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
MCONTRIBUTING.md | 15+++++++++++++--
Mexport/package.json | 1+
Mplans/FACTS.md | 9+++++++++
Mplans/tools/implementer-rules.md | 10+++++++---
4 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md @@ -51,11 +51,22 @@ scheme and the shared-data caveat. ## Tests -Unit tests are plain `node:test` files run through `tsx`: +Unit tests are plain `node:test` files run through `tsx`. Each package's suite has a +script: + +```bash +pnpm --filter yt-dlp-transcript-common test # common/ (the globs are in its package.json) +pnpm --filter editor test # editor/app/**/*.test.ts +pnpm --filter export test # export/app/**/*.test.ts +pnpm --filter homepage test # homepage/app/**/*.test.ts +pnpm --filter yt-dlp-transcript-mcp test # mcp/src/*.test.ts +pnpm run test:scripts # scripts/*.test.mjs, umtool/report-to-video/*.test.mjs +``` + +One file on its own: ```bash node_modules/.bin/tsx --test common/jobs/autoQueuePolicy.test.ts -node --test scripts/*.test.mjs ``` Playwright covers the editor UI from `editor/e2e/`. Two ways to run it: diff --git a/export/package.json b/export/package.json @@ -16,6 +16,7 @@ "build:hub": "tsx ../common/bin/archilyzer.ts build hub", "start": "serve out", "lint": "eslint", + "test": "tsx --test \"app/**/*.test.ts\"", "e2e": "node ../scripts/queue-lock.mjs --ports EXPORT_E2E_PORT:3020 -- playwright test", "e2e:hub": "node ../scripts/queue-lock.mjs --ports HUB_PORT:3041 -- playwright test --config playwright.hub.config.ts", "e2e:2origin": "node ../scripts/queue-lock.mjs --ports ORIGIN_B_PORT:4610,HUB_A_PORT:4611 -- playwright test --config playwright.2origin.config.ts", diff --git a/plans/FACTS.md b/plans/FACTS.md @@ -88,6 +88,12 @@ script (`tsx --test src/*.test.ts`). `common/package.json` has **no `scripts` ke neither `editor` nor `export` has a `test` script. ~46 `*.test.ts` files across the repo are unrunnable as a suite today. +*(Amended 2026-09-28, release 13 slice W2: no longer true. Every package with unit tests has a +`test` script — `common` (`pnpm --filter yt-dlp-transcript-common test`), `mcp`, `homepage`, +`export` (added by W2: `tsx --test "app/**/*.test.ts"`, 11 files / 98 tests) and `editor` +(added by W1 in the same release). The list is in `CONTRIBUTING.md`, "Tests", and the gate list +in `plans/tools/implementer-rules.md`. Still no vitest or jest.)* + ### `subsCache.ts` has no IndexedDB - `common/components/subsCache.ts` — memory + react-query only. @@ -7052,6 +7058,9 @@ out. O3's facts are the section just above ("O3 — runner lows"). Anchors are a - `export/app/**/*.test.ts` — 11 files, 98 tests at `e1ef1923` (3 under `ask/`, 8 under `lib/`) — are in no suite script: `export/package.json` has no `test` script. Run them with `export/node_modules/.bin/tsx --test`. All 98 passed at O1c's review (2026-09-28). + - *Amended 2026-09-28 (release 13, slice W2):* `export/package.json` now has + `"test": "tsx --test \"app/**/*.test.ts\""` — `pnpm --filter export test`, 11 files, + 98 tests, all passing — and it is named in the implementer gate list. - **`normalizeSocialSvg` themes a SINGLE-colour icon only** (`common/lib/settingsSchema.ts:1373`). The solid colours of the root and every child outside a `<mask>` or `<clipPath>` are counted together (spellings folded by `paintKey` `:1304`: `#FFF`, `#ffffff`, `white`, `rgb(255,255,255)` diff --git a/plans/tools/implementer-rules.md b/plans/tools/implementer-rules.md @@ -73,9 +73,13 @@ the Next.js reference for this version. - `pnpm -r --no-bail --workspace-concurrency=1 exec tsc --noEmit` — clean. - `pnpm --filter yt-dlp-transcript-common test` (1738 at release 4; record the new count); - editor unit `pnpm exec tsx --test "app/**/*.test.ts"` run in `editor/` (72); `pnpm run - test:scripts` (156 + 1 skip); mcp `pnpm --filter yt-dlp-transcript-mcp test` (219) — check - `package.json` for the exact script names before running. + editor unit `pnpm --filter editor test` (the script lands in release 13; before it, `pnpm exec + tsx --test "app/**/*.test.ts"` run in `editor/`; 72 at release 4); `pnpm run test:scripts` + (156 + 1 skip); mcp `pnpm --filter yt-dlp-transcript-mcp test` (219); export unit `pnpm + --filter export test` (11 files, 98 tests at release 13); homepage unit `pnpm --filter + homepage test` (2 at release 13) — check `package.json` for the exact script names before + running. The export and homepage unit suites take seconds: run them whenever a slice touches + `export/`, `homepage/` or the `common/` code they import. - `pnpm --filter editor exec next build` and `pnpm --filter export exec next build`. - The slice's e2e spec list (in the prompt), detached and waited on as above. - The numbers tool the prompt names, diff-empty (or "none", stated).