web ci: run the bun:test suite in the Build: Web gate #230

Open
web wants to merge 2 commits from web/ci-bun-test-gate into main
Member

Refs #16

What

The 17 bun:test suites under Web/ (extension + mail, 165 tests, ~2 s) had no runner: lint_build in bazel/web/runner.sh did biome lint + builds + web-ext lint, build-web.yml called that plus the wasm smoke, and no bun test existed in any workflow, the flake or the Makefile — even though Web/apps/mail/IMPLEMENTATION.md and the shared-auth runbook name cd Web && bun test apps/mail as the verify step.

  • bazel/web/runner.sh: bun test runs in lint_build right after bun x biome lint, before the builds. The heredoc is set -euo pipefail, so a red suite fails Build: Web.
  • Web/package.json: adds test (bun test) and folds it into check.

No new workflow step, so build-web.yml and the yaml guard are untouched; the suite reports inside the existing Lint & Build step. No test files, deploy/release lanes, secrets or nixos/ touched.

Verification

nix develop .#web -c bash -c 'cd Web && bun install --frozen-lockfile --linker=hoisted && bun test' → 165 pass / 0 fail, 875 expect() calls, Ran 165 tests across 17 files. [2.09s] on bun 1.3.13. Full bazel/web/runner.sh lint-build green locally in 21 s.

CI run links (green, and a temporary broken-expect commit proving the gate bites) follow in a comment below.

Refs #16 ## What The 17 `bun:test` suites under `Web/` (extension + mail, 165 tests, ~2 s) had no runner: `lint_build` in `bazel/web/runner.sh` did biome lint + builds + `web-ext lint`, `build-web.yml` called that plus the wasm smoke, and no `bun test` existed in any workflow, the flake or the Makefile — even though `Web/apps/mail/IMPLEMENTATION.md` and the shared-auth runbook name `cd Web && bun test apps/mail` as the verify step. - `bazel/web/runner.sh`: `bun test` runs in `lint_build` right after `bun x biome lint`, before the builds. The heredoc is `set -euo pipefail`, so a red suite fails **Build: Web**. - `Web/package.json`: adds `test` (`bun test`) and folds it into `check`. No new workflow step, so `build-web.yml` and the yaml guard are untouched; the suite reports inside the existing **Lint & Build** step. No test files, deploy/release lanes, secrets or `nixos/` touched. ## Verification `nix develop .#web -c bash -c 'cd Web && bun install --frozen-lockfile --linker=hoisted && bun test'` → 165 pass / 0 fail, 875 expect() calls, `Ran 165 tests across 17 files. [2.09s]` on bun 1.3.13. Full `bazel/web/runner.sh lint-build` green locally in 21 s. CI run links (green, and a temporary broken-expect commit proving the gate bites) follow in a comment below.
web ci: run the bun:test suite in the Build: Web gate
Some checks failed
Build: Web / Build (Web) (pull_request) Failing after 3m1s
b544e0fec2
The 17 bun:test suites under Web/ (165 tests, ~2s) were honor-system: no
workflow, flake target or Makefile rule ran them. lint_build now runs
`bun test` between the biome lint and the builds, so Build: Web fails on a
red suite, and Web/package.json exposes it as `bun run test`.
lately mail: stop the oidc suites leaking a window stub across test files
All checks were successful
Build: Web / Build (Web) (pull_request) Successful in 41s
8d00c961c3
First red run of the new gate (Build: Web #19742) caught an order-dependent
break the honor-system suite never showed: bun shares one global across test
files, oidc-flow.test.ts installed a `window` stub and only restored it when
one already existed, so on the runner's file order pwa.test.ts then imported
pwa.ts and its top-level window.addEventListener threw — 163 tests, 1 error.
Both suites now delete the stub when there was no prior descriptor.
founder approved these changes 2026-09-13 12:10:40 +00:00
founder left a comment

Founder sign-off, recorded by Codex at Conrad’s explicit request on 2026-09-13: this first-work-wave change is approved. Resolve any conflicts and satisfy the required checks before merging. This records the founder’s approval; it does not assert that failing checks have passed.

Founder sign-off, recorded by Codex at Conrad’s explicit request on 2026-09-13: this first-work-wave change is approved. Resolve any conflicts and satisfy the required checks before merging. This records the founder’s approval; it does not assert that failing checks have passed.
All checks were successful
Build: Web / Build (Web) (pull_request) Successful in 41s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin web/ci-bun-test-gate:web/ci-bun-test-gate
git switch web/ci-bun-test-gate
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
key-store/key.store!230
No description provided.