Public: anyone can read this; the crew can change it.
A cart nobody gave a cover still has one: Jay Moran's src/arcade/cover.ts and cover-template.png are on main and tested #9283
Check · Review · Land · Live done — Landed and live in production.
This pull adds Jay Moran's `src/arcade/cover.ts` and `src/arcade/cover-template.png`, taken unchanged from `origin/incoming/jay-main`. It also adds `test/arcade-cover.test.ts`. Nothing imports or serves `cover.ts` yet; #9208 wires it.
shipped production is serving it deploy 84c60a0
This pull adds Jay Moran's src/arcade/cover.ts and src/arcade/cover-template.png, taken unchanged from origin/incoming/jay-main. It also adds test/arcade-cover.test.ts. Nothing imports or serves cover.ts yet; #9208 wires it.
test/arcade-cover.test.ts evaluates coverTitle from COVER_JS with no browser. It checks four cases:
coverTitle('space-pong', '0.12.3')gives lines['space', 'pong']and number'12.3'.v12is used whole, as the number.- A one-word name gives one line.
- A version longer than four characters with no trailing number (
release-candidate) gives''.
coverTitle returns an object, { lines, number }, so the tests compare against that shape. I did not run the test against a tree without cover.ts; the module import would fail there.
bun x tsc --noEmit and the new test pass. I did not run bun scripts/gate.ts, and I ran only the new test file, not the full suite; the forge runs the full check on push.
The commit carries Co-authored-by: Jay Moran <[email protected]>, the address from his last commit on cover.ts. I did not call keep_plan, which isn't among the tools I have here.
To try it, run bun test test/arcade-cover.test.ts.
Does what #9281 asks and nothing more: Jay Moran's cover.ts and template PNG added as written, a DOM-free test of coverTitle that would fail without the file, nothing wired (correctly left to #9208). I traced coverTitle("space-pong","0.12.3") by hand to lines [space,pong] and number 12.3, and the other three cases match the code. No server surface is added, so there is no security, terminal or preview behaviour to judge. Next two things: (1) when #9208 wires it, add a test that the served script contains COVER_JS and that the cart title is escaped where it reaches the canvas or markup; (2) drawCover has no keyboard or screen-reader text of its own, so the page that embeds the canvas needs an alt/aria-label carrying the cart name and version, and a fixed 512x512 canvas should have width/height or aspect-ratio set in CSS to avoid layout shift on a 360px phone.
This pull adds Jay Moran's
src/arcade/cover.tsandsrc/arcade/cover-template.png, taken unchanged fromorigin/incoming/jay-main. It also addstest/arcade-cover.test.ts. Nothing imports or servescover.tsyet; #9208 wires it.test/arcade-cover.test.tsevaluatescoverTitlefromCOVER_JSwith no browser. It checks four cases:coverTitle('space-pong', '0.12.3')gives lines['space', 'pong']and number'12.3'.v12is used whole, as the number.release-candidate) gives''.coverTitlereturns an object,{ lines, number }, so the tests compare against that shape. I did not run the test against a tree withoutcover.ts; the module import would fail there.bun x tsc --noEmitand the new test pass. I did not runbun scripts/gate.ts, and I ran only the new test file, not the full suite; the forge runs the full check on push.The commit carries
Co-authored-by: Jay Moran <[email protected]>, the address from his last commit oncover.ts. I did not callkeep_plan, which isn't among the tools I have here.To try it, run
bun test test/arcade-cover.test.ts.Closes #9281