Repository navigation
test(example-showcase): the related-heavy detail case pins the record page's tabbed tier - #27174
Merged
objectstack-fleet[bot] merged 2 commits intoOct 28, 2026
Merged
Conversation
… page's tabbed tier The synthesized record page lays itself out by its container width since 0d07de2: at the Desktop Chrome viewport the record view lands in the two-column tier, which has no tablist. Pin a 1200 px viewport for the case that opens the tab strip, as that commit did for the ui/e2e specs. Claude-Session: https://claude.ai/code/session_01QSeKYobVx7yTf1SUMMbKnP Co-authored-by: Claude <noreply@anthropic.com>
…owcase-detail-tabs
Contributor
Author
席位核对 — ACCEPT · domain:devx#2 · head
|
objectstack-fleet
Bot
deleted the
claude/issue-27114-showcase-detail-tabs
branch
October 28, 2026 09:37
This was referenced Oct 28, 2026
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.
Part of #27114
Clause-②: no
Metadata-protocol: none
维护者速读
examples/app-showcase/e2e/detail-shapes.spec.ts中 Contoso 用例开头新加的setViewportSize与注释。cd examples/app-showcase && CI=1 OS_TEST_TIERS=nightly pnpm exec vitest run test/showcase-smoke.live.test.ts,预期 53/53 通过(需先pnpm console:build)。What changes
examples/app-showcase/e2e/detail-shapes.spec.ts, the case "ungrouped + related-heavy: flat details and related-list tabs on Contoso": it now pins a 1200 x 800 viewport before opening the record. That keeps the synthesized record page in its tabbed tier. No assertion is removed, skipped, retried or moved to another tier.Bisect. The last green nightly ran on
b53322d5. The first red commit is0d07de2f(#26758, "the default record page is one page at two widths — resident columns on a wide page, the tabs in a drawer"). Both legs ran under the nightly invocation, each on a full tree at that commit:1f1eda4d(0d07de2f^): 53/53 passed.0d07de2f: 52/53, the same case failing at the same assertion (getByRole('tab', { name: /Details/i }), L165).Why the spec follows, not the product. #26758 implements the maintainer's ruling 1 on epic #26676, verbatim: 「抽屉和整页是同一张页在两个宽度。」 Its table rules it: a container of 1024 – 1279 px gets "Details · timeline; the related column folds into a rail opened from a Related (N) toggle", and only below 1024 px does it get "The tab strip, exactly as before". The red screenshot on
origin/mainshows exactly that tier: two columns, a Related 5 toggle, no tablist. Desktop Chrome's 1280 px viewport, less the console sidebar, gives the record view about 1024 px. #26758 handled the same thing inui/e2e/live/detail-related-list.spec.tsandrecord-history-display.spec.tswith a 1200 px viewport ("each now pins a 1200 px viewport to stay in the tabbed tier they test"). This PR does the same for the showcase case, which that PR missed. ADR-0085's prominence rule (related lists as tabs) still holds in the tabbed tier, and that tier is the one this case asserts.The viewport is pinned per case, not per file. The other three cases in the file pass at the default viewport, so their coverage stays as it was.
Tests
The showcase live tier ran under the nightly invocation (
CI=1 OS_TEST_TIERS=nightly,vitest run test/showcase-smoke.live.test.ts, with the dependency closure andpnpm console:buildbuilt first):Readings
origin/main24351cfe(reproduction): 1 failed, 52 passed. The failure isdetail-shapes.spec.ts:156atgetByRole('tab', { name: /Details/i }), failed on its retry too. Lock VERDICTcommand-exit 1.9bfc7e48(fix on24351cfe): 53 passed, Test Files 1 passed. VERDICTcommand-exit 0.f81fbddd(fix merged withorigin/main3346da26, whoseRecordDetailView.tsxchange is why this ran again): 53 passed, Test Files 1 passed. VERDICTcommand-exit 0.pnpm --filter @objectstack/example-showcase typecheck(its tsconfig includese2e/**/*, and--listFilescounts the spec once): exit 0.Acceptance notes
@objectstack/example-showcasegets a test-only edit, so it carriesskip-changeset.Verification
Derived gates at f81fbdd
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackderived 37 commands over the 1 changed path. All 37 exit 0, each exit captured before any pipe.pnpm check:dual-build-cjs-loadsfirst answeredPREREQUISITE NOT MET(exit 3: seven packages outside the showcase closure had nodist/). After building them it exits 0.--ranreports "37 derived famil(ies) accounted for — 37 run, 0 NOT-MEASURED (a DERIVED zero)". Every family CI runs beyond these is read from this PR's check-runs.Session:
session_01QSeKYobVx7yTf1SUMMbKnP, dispatched bysession_01QSeKYmTYfaPbLQD4BJfomW(claim 6463869260).Generated by Claude Code