Skip to content

Commit 3f797d5

Browse files
author
Reza Ilmi
committed
docs(plans): 059 approved after revision — 91 dark tests revived, Lane B gated on TEST_DATABASE_URL
1 parent 6ad0210 commit 3f797d5

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

plans/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ subject of plan 059 and are *not* a green signal.
314314
| 056 | Collapse the Growth tab's ~15 serial statements into 2–3; verify the index gap | P2 | M | 059 (soft — its gated tests are the real verification) | TODO |
315315
| 057 | Memoize the History sheet's derived data | P2 | M | **046** (`CalendarPane.tsx`), **047** (`DayDetailCard.tsx` + `history-sheet.test.tsx`) | TODO |
316316
| 058 | Batch capture tag writes into two statements | P2 | S | **047**, **054** (both edit `queries.ts`) | TODO |
317-
| 059 | Revive the 128 permanently-skipped DB/handler tests | P1 | L | — | IN REVISION (round 1/2) — Lane A is excellent (**89 dark tests now executing; skips 128 → 40**), but the merge onto main exposed a defect the executor could not have seen: its Step-1 `dotenv/config` in `test/setup.ts` **silently opens every Lane B gate on any machine that has a `.env`**. The executor's worktree had none, so its 1001/40/0 was honest; the operator's tree has one pointing at a **live Neon database**. Merged, the suite went `23 failed / 1112 passed / **1** skipped` — and the passes mean Lane B tests actually connected to and exercised the live DB as table owner. **Merge rolled back** (main restored to 1006/128/0); the branch is intact. Sent back to gate Lane B on a dedicated `TEST_DATABASE_URL` that an ambient `.env` can never satisfy, with acceptance verified against a simulated `.env`. **Correct calls by the executor, preserved:** it refused to run `db:migrate`/`seed` against the operator's live database; it re-expressed five now-unexpressible "rejects empty studentId via Zod" cases as "tenancy comes from the counselor context, never from the caller" (a *stronger* assertion — reviewer verified); and it closed a hermeticity hazard where `MANAGED_AGENT_*` from `.env` would have made real outbound calls. **Plan 063's drizzle-bump gate stays CLOSED** — it needs `pnpm test:db` green against a real database, which still has not happened. |
317+
| 059 | Revive the 128 permanently-skipped DB/handler tests | P1 | L | — | DONE — reviewer-approved after 1 revision round, **merged**. Main went **1006 → 1097 passing, skips 128 → 40**: **91 previously-dark tests now execute**, including the Connector auto-apply chain, verifier-gated confirm/forget, Cartographer dispatch, VIPS page loading and the counsellor brief. `pnpm check` 18 warnings, 0 failures. **Round 1 was rolled back**: its `dotenv/config` opened every Lane B gate on any machine with a `.env`, and on the operator's tree that meant tests connecting to a **live Neon database** as table owner (`23 failed / 1112 passed / 1 skipped`). The fix gates Lane B on a dedicated `TEST_DATABASE_URL`, and — the structural half — `test/setup.ts` now **deletes** an ambient `DATABASE_URL` when that opt-in is absent, so a test escaping its gate dies on "DATABASE_URL is not set" rather than silently reaching production. The executor proved the gate both **shuts** (simulated `.env`, census byte-identical) and **opens** (bogus `TEST_DATABASE_URL` on port 2 → every error `ECONNREFUSED 127.0.0.1:2`, so the opt-in wins over the ambient value), and added a canary asserting no ambient `DATABASE_URL` survives into the test process. **Reviewer re-verified on the operator's real tree with the real `.env`:** 1097/40/0, canary green, Lane B still skipped, and `pnpm test:db` now exits 1 rather than reporting a false-green all-skipped run. **Still deferred (no Postgres anywhere):** Step 2 and Step 7b — `test/db.test.ts` keeps `@ts-nocheck` and its 26 gated tests. **Plan 063's drizzle-orm gate therefore remains CLOSED.** Scope note: README gained a "Running the database-backed tests" subsection — outside the plan's literal file list, but the reviewer's revision brief asked for the variable to be documented and that is where the DB runbook lives. |
318318
| 060 | Make the import-boundary guard cover every server function automatically | P2 | S || DONE — reviewer-approved, **not merged**. Branch `advisor/060-import-boundary-glob`, commit `1ee0f3fe`. Verified: hardcoded array gone, glob discovers all 24 `*.functions.ts`, `serverOnlyExemptions` empty, 1 file changed, 3 tests pass. Negative control run twice against the committed file (injected `~/db/client` → guard failed with the expected message → reverted), so the widened guard is proven to bite rather than pass vacuously. |
319319
| 061 | Typed sidecars for the capture-facing engine slices + one canonical capture type (**flagship DRY plan**) | P1 | M | 047 (soft — it touches capture fields) | TODO |
320320
| 062 | Migrate `@base-ui-components/react` (deprecated) → `@base-ui/react` | P2 | M || TODO |

0 commit comments

Comments
 (0)