Repository navigation
Bring the sponsor portal up to date with the fork - #19
Merged
JakeGinnivan merged 1 commit intoSep 8, 2026
Merged
JakeGinnivan merged 1 commit into
JakeGinnivan merged 1 commit into
Conversation
Upstreams five fork PRs' worth of sponsor portal work that was built in dddwa/dddperth and never pushed back. Core's portal was still at "add sponsor portal" plus the additional-emails change; everything since had accumulated only in the fork, which surfaced when Vicki's testing feedback (dddwa/dddperth#157) modified files core had never received. The work happened in the fork because that is the only place with real Jira credentials and real sponsors to test against — the intended build-in-fork, upstream-after cycle. This is the "upstream after" that was owed. What lands: - Exhibition logistics: `sponsors/logistics.ts`, `portal.logistics.tsx` and migration 0019, letting sponsors supply bump-in/out, equipment, parking and raffle details themselves. - Exhibitor spreadsheet export: `sponsors/exhibitor-export.ts` plus its admin route, so the committee can produce the venue's supplier list. - Per-workstream Jira status flips: `statusFlips` in the manifest, with `progress.ts` deriving what the sponsor still owes. Replaces the old multi-checkbox `sponsorTasks` field, which Jira can't filter by — the committee needs one JQL-filterable single-select per workstream. - Portal dashboard, shared form components (`portal-form.tsx`, `portal-saved-banner.tsx`, `sponsor-progress-list.tsx`) and the Jira client rework that reads `editmeta` to adapt to committee field-type changes rather than hardcoding shapes. Fork-owned config (`conference/config/sponsor-portal.ts`, carrying DDD Perth's customfield ids) deliberately stays in the fork; the manifest types are what make that possible. Fork-shape files (project.json, tsconfigs, e2e/routes.ts, date-states.spec.ts) and the fork's baselines are excluded as usual. One fix on the way through: `sponsor-portal-config.test.ts` read `portal.jira` at suite scope under `describe.runIf(portal)`. `runIf` skips the tests but the suite body still runs during collection, so it threw for any conference without a sponsor portal — conference-stub included. Now resolved per test, so it asserts in the fork and skips cleanly here. Verified both ways. Verified: 430 unit tests pass (6 skipped — the portal-config suite, correctly, since the stub configures no portal), typecheck, lint and build clean, and the visual suite passes with **zero baseline changes**, which is the expected result for auth-gated portal routes that render nothing public. Claude-Session: https://claude.ai/code/session_019eNk5wET3eWEqRFFtLihTV
JakeGinnivan
deleted the
jakeginnivan/bring-the-sponsor-portal-up-to-date-with-the-fork
branch
September 8, 2026 04:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upstreams five fork PRs' worth of sponsor portal work that was built in dddwa/dddperth and never pushed back.
Why this is one large PR
Core's portal was still at "add sponsor portal" plus the additional-emails change. Everything since had accumulated only in the fork, which surfaced when Vicki's testing feedback (dddperth#157) modified files core had never received — that PR couldn't be upstreamed alone, because its changes sit on top of four earlier ones.
The work happened in the fork because that's the only place with real Jira credentials and real sponsors to test against — the intended build-in-fork, upstream-after cycle. This is the "upstream after" that was owed.
What lands
sponsors/logistics.ts,portal.logistics.tsx, migration0019. Sponsors supply their own bump-in/out slots, equipment, parking and raffle details.sponsors/exhibitor-export.ts+ admin route, producing the venue's supplier list.statusFlipsin the manifest, withprogress.tsderiving what a sponsor still owes. Replaces the old multi-checkboxsponsorTasksfield: Jira can't filter by multi-checkbox, so the committee needs one JQL-filterable single-select per workstream.portal-form.tsx,portal-saved-banner.tsx,sponsor-progress-list.tsx, and the Jira client rework that readseditmetato adapt to committee field-type changes rather than hardcoding shapes.Layer split
Fork-owned config (
conference/config/sponsor-portal.ts, carrying DDD Perth'scustomfield_*ids) deliberately stays in the fork — the manifest types added here are what make that separation work. Fork-shape files (project.json, tsconfigs,e2e/routes.ts,date-states.spec.ts) and the fork's visual baselines are excluded as usual; verified against agit subtree splitof the fork, where every remaining difference is one of those.One fix on the way through
sponsor-portal-config.test.tsreadportal.jiraat suite scope underdescribe.runIf(portal).runIfskips the tests, but the suite body still executes during collection — so it threw for any conference without a sponsor portal, conference-stub included. Now resolved per test. Verified both ways: asserts in the fork against its real config (6 passing), skips cleanly here (6 skipped).Verification
Caveat for review
The Jira integration can't be exercised end-to-end here: conference-stub configures no portal, so coverage is unit tests plus
stub-jira-client.server.ts. The live paths were exercised against the real SPN board from the fork.After this lands
Forks should
/core-pull. DDD Perth's own copy is identical content, so it should merge cleanly.https://claude.ai/code/session_019eNk5wET3eWEqRFFtLihTV