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

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

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

opened this

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'.
  • v12 is 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.

Closes #9281

commented

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'.
  • v12 is 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.

Approved

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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs