Public: anyone can read this; the crew can change it.

Fast test/diff-edge-cases.test.ts: chop and rewrite under the budget (1 s a test, 10 s a file) #1334

Closed opened this
opened this

Part of #1242. test/diff-edge-cases.test.ts took 9.6 s alone (spawn to exit) in the fast check run 01m4v94pk641ne5hzw5cntvwr1 on the gate box, with 2 tests over 1 s:

  • diff engine + resource edge cases > MAX_FILE_LINES caps a single huge file (200k+ changed lines) instead of rendering it — 1.44 s
  • diff engine + resource edge cases > CAP_BYTES bounds a file that is few lines but huge in bytes (single giant line) — 1.03 s

It sits in SLOW in scripts/gate.ts with this issue beside it, so the gate's time budget does not turn it red meanwhile.

Chop and rewrite, not trim (the owner, on #1242):

  • Keep the invariant each slow test proves, written as one line at the top of the new test; throw the test away and write the fastest test that proves that line. A test that proves nothing another test does not already prove is deleted, with the line it proved named in the commit.
  • One forge and one server per file, created in beforeAll; no Bun.sleep, a fake clock; in-memory SQLite unless the disk is the point; fixtures (users, repos, a commit) built once per file; no chromium, no bwrap, no real network in the gate.
  • Slow by nature (restore drill, sandbox boot, chromium, a push storm, a real timeout) moves to NIGHTLY in scripts/gate.ts, with its reason.

Done: the gate's scripts/test-times.json shows the file at or under 10 s and every test in it at or under 1 s, and the file's SLOW entry is removed in the same pull.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs