Deferred from #318's ship review, with reasons. Both item sources are covered by unit tests against an in-memory database; neither is ever exercised against a running server.
Why the shared seed can't carry them
The e2e fixture is shared by the whole suite, and adding either row breaks existing specs:
- A published sticker pack makes the stickers nav link appear, and
tests/e2e/nav-gating.spec.ts asserts a[href="/stickers"] has count 0 in the header, the mobile nav, and the gallery tab bar. The nav probe gates on a published pack existing, so seeding one inverts what that spec tests.
- A fursuit photo changes nothing, because both e2e wrangler configs set
FURTRACK_MODE = "off", so the feed's fursuit branch never runs. Turning it on would move the gallery specs too.
A build gate confirmed the live feed returns art and VR avatars only.
Also uncovered: the admin settings flow
Toggling the feed off, opting into NSFW, minting a key and regenerating it have no end-to-end coverage either. tests/e2e/feed.spec.ts is deliberately read-only because it shares the seeded database, and that flow writes settings.
What it would take
Its own webServer and database in playwright.config.ts, the way the recovery spec already does, or a second seed fixture. That is a fixture-strategy decision rather than a test to bolt on, which is why it wasn't done inside #318.
Worth weighing
The unit coverage is real: pack and fursuit entries, the license and FURTRACK_MODE gating, and the key lifecycle are all tested at the route level with an in-memory D1. What's missing is proof they survive the real worker runtime. Decide whether that gap justifies the fixture work before building it.
Deferred from #318's ship review, with reasons. Both item sources are covered by unit tests against an in-memory database; neither is ever exercised against a running server.
Why the shared seed can't carry them
The e2e fixture is shared by the whole suite, and adding either row breaks existing specs:
tests/e2e/nav-gating.spec.tsassertsa[href="/stickers"]has count 0 in the header, the mobile nav, and the gallery tab bar. The nav probe gates on a published pack existing, so seeding one inverts what that spec tests.FURTRACK_MODE = "off", so the feed's fursuit branch never runs. Turning it on would move the gallery specs too.A build gate confirmed the live feed returns art and VR avatars only.
Also uncovered: the admin settings flow
Toggling the feed off, opting into NSFW, minting a key and regenerating it have no end-to-end coverage either.
tests/e2e/feed.spec.tsis deliberately read-only because it shares the seeded database, and that flow writes settings.What it would take
Its own webServer and database in
playwright.config.ts, the way the recovery spec already does, or a second seed fixture. That is a fixture-strategy decision rather than a test to bolt on, which is why it wasn't done inside #318.Worth weighing
The unit coverage is real: pack and fursuit entries, the license and
FURTRACK_MODEgating, and the key lifecycle are all tested at the route level with an in-memory D1. What's missing is proof they survive the real worker runtime. Decide whether that gap justifies the fixture work before building it.