Skip to content

test(fixtures): give the agenda fixture a split-slot room - #20

Merged
JakeGinnivan merged 1 commit into
mainfrom
jakeginnivan/split-slot-agenda-fixture
Sep 23, 2026
Merged

JakeGinnivan merged 1 commit into
mainfrom
jakeginnivan/split-slot-agenda-fixture

Conversation

@JakeGinnivan

Copy link
Copy Markdown
Contributor

Upstreamed from dddwa/dddperth#166 (merged).

What

Gives the e2e Sessionize fixture a sixth room running 2x20 minute talks against the other rooms' 45, and regenerates this repo's 9 agenda visual baselines.

Why

The fixture timetable was a uniform rectangle — five rooms moving in lockstep through five identical slots. That made a session's time slot and its time span interchangeable, so anything relying on that equivalence looked correct against the fixture while being wrong on a real conference day: a 45 minute talk genuinely does run against two separate 20 minute talks in another room.

Groundwork for a "build my agenda" feature, where one-pick-per-slot has to mean interval overlap rather than slot identity. Every fork gets the better fixture on its next /core-pull.

What was and wasn't carried up

  • Upstreamed verbatim: website/e2e/fixtures/sessionize/model.ts, website/app/lib/sessionize-fixtures.test.ts. Both were byte-identical to the fork's pre-change versions beforehand, so this is a clean copy rather than a merge.
  • Not copied: the fork's 9 visual baselines, which are rendered with DDD Perth's theme, fonts and sponsor logos. This repo's own baselines were regenerated against conference-stub in the pinned Playwright container.
  • No conference/ changes existed, so no stub counterpart edits were needed.

Notes

  • The short track's gaps (11:05-11:10, 12:00-12:05) are deliberately not service sessions. The existing Changeover entries are isPlenumSession: true, meaning venue-wide, and a changeover in one room while every other room is mid-talk is not that.
  • The new test asserts the split-slot shape survives; negative-controlled by flattening the room back to uniform slots and confirming it fails (and only it).
  • Dropped a stale doc line pointing at nx generate-sessionize-fixtures — no such target exists; the views are projected in memory by sessionize-server.ts.

Verification

  • nx test website — 431 passed, 6 skipped
  • nx lint website — 0 errors
  • nx build website — clean
  • nx e2e website — 55 passed
  • pnpm vr — 81 passed, only the 9 agenda baselines changed

Forks

After this lands, forks should /core-pull. dddperth already has this content, so its pull should merge cleanly.

Upstreamed from dddwa/dddperth#166.

The fixture timetable was a uniform rectangle — five rooms moving in
lockstep through five identical slots. That made a session's time *slot*
and its time *span* interchangeable, so anything relying on that
equivalence looked correct against the fixture while being wrong on a
real conference day: a 45 minute talk genuinely does run against two
separate 20 minute talks in another room.

Adds a sixth room (Pelican Room) running 2x20 minute talks inside the
first two long slots, plus the `20 mins` session format the real
taxonomy would carry. One long talk now overlaps two short talks living
in different `timeSlots` entries, so slot identity and interval overlap
give different answers and code confusing the two fails.

The short track's gaps are deliberately not service sessions: the
existing Changeover entries are `isPlenumSession: true`, meaning
venue-wide, and a changeover in one room while every other room is
mid-talk is not that.

Also drops an editing note pointing at `nx generate-sessionize-fixtures`
— no such target exists; the views are projected in memory by
`sessionize-server.ts`.

Baselines are this repo's own, regenerated against conference-stub in
the pinned Playwright container — the fork's conference-branded ones
were deliberately not copied.
@JakeGinnivan
JakeGinnivan merged commit 9b163bc into main Sep 23, 2026
3 checks passed
@JakeGinnivan
JakeGinnivan deleted the jakeginnivan/split-slot-agenda-fixture branch September 23, 2026 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant