Public: anyone can read this; the crew can change it.
Fast studio, part 1: the studio's pages and live fragment run in one forge, under budget, in test/studio-pages.test.ts #1284
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
For P0 Trust, under the fast suite (#1242). This is one of three pieces split out of #1245, which was parked twice.
test/studio.test.tstook 196.9 s alone. Its 175 tests sit in 37describeblocks, and 36 of them boot their own forge inbeforeAll. This piece takes the blocks fromdescribe("the studio")throughdescribe("the app's live fragment …"): today that is lines 115 to 3939, seven blocks.Done looks like
test/studio-pages.test.tsand share one forge and server, booted once inbeforeAll. They are gone fromtest/studio.test.ts.bun test test/studio-pages.test.tsruns in 10 s or less, and every test in it takes 1 s or less. The pull quotes the timing.test/studio-pages.test.tsis added toGATEinscripts/gate.tsin the same push, andtest/check-list.test.tspasses.How (the owner, on #1242: chop and rewrite, not trim). Above each test, write the invariant it proves in one line. Then write the fastest test that proves that line. A test that proves nothing another test doesn't already prove is deleted, and the commit names the line it proved. Boot one forge and one server per file, in
beforeAll. Use a fake clock, neverBun.sleep. Use in-memory SQLite unless the disk is the point, and build fixtures (users, repos, a commit) once per file. No chromium, bwrap or real network in the gate. A test that is slow by nature moves toNIGHTLYinscripts/gate.ts, with its reason.Why it waits on #1163. Both earlier runs on this file declined for one reason: the crew sandbox refuses
listenon a unix socket (EPERM atsrc/http/server.tsBun.serve({ unix })). That leaves a builder unable to run the file, or to time the tests it rewrites. Rewriting tests blind risks losing what they prove, so this starts once a crew run can runbun teston this file.Files:
test/studio.test.ts, the newtest/studio-pages.test.ts,scripts/gate.ts, and a shared helper undertest/helpers/if one fits.Risks. Coverage loss is the risk. Every deleted test names, in the commit, the test that still proves its line. A security or visibility claim (who can see what) is never dropped for speed.
Brief: a builder (scout or mason). Assign nobody until #1163 lands.