Skip to content

fix(stand): pin the UI journeys to the legacy shell - #2386

Merged
ktursunov merged 2 commits into
mainfrom
fix/stand-ui-legacy-shell
Aug 10, 2026
Merged

fix(stand): pin the UI journeys to the legacy shell#2386
ktursunov merged 2 commits into
mainfrom
fix/stand-ui-legacy-shell

Conversation

@ktursunov

@ktursunov ktursunov commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Why

#2358 made the portal opt-out: an absent insight.portal key now renders the portal, and only an explicit "false" returns the legacy dashboard shell. The stand UI journeys drive the legacy shell in fresh browser contexts — no localStorage key — so on any stand running the current frontend they land in the portal and time out on legacy selectors: 12 of 17 journeys failed (5.5-minute run, all timeout-shaped) in the first stand run after the frontend pin picked up the change. api-smoke stayed green throughout — the stand and data pipeline are fine; only the UI surface moved under the UI tests.

What changed

One context fixture override in tests/stand/ui/conftest.py: every journey context seeds insight.portal = "false" via add_init_script, which runs before any app code on every page — the one moment guaranteed to precede the flag's first read. The suite's tested surface stays the legacy shell, stated explicitly, until portal journeys exist (that coverage is its own scoping decision, not this fix).

Verification (live compose stand, frontend 2026.08.10.06.40)

  • Without the flag, a journey that had been green all day (test_single_metric_block_opens_that_metrics_dialog) fails on this frontend — the breakage reproduces locally.
  • With the flag: 17 passed, 17 total in 25 s.

Notes

Follow-up to #2336, which fixed the stand's seed/identity pipeline — this restores the UI lane on top of it.

Summary by CodeRabbit

  • Tests
    • Updated UI test setup to consistently run journeys using the legacy dashboard experience.
    • Preserved the existing 15-second assertion timeout for Playwright tests.

The portal became opt-out: an absent `insight.portal` key now renders
the portal, so a fresh browser context stopped meaning "the dashboard
shell these journeys were written against" and 12 of 17 journeys timed
out inside the portal UI.

The context fixture now seeds `insight.portal = "false"` via an init
script, which runs before any app code on every page — the one moment
the flag is guaranteed to precede the first read. The suite's tested
surface stays the legacy shell, stated explicitly, until portal
journeys exist.

Verified against a stand on the portal-default-on frontend: without
the flag a previously green journey fails; with it the UI suite passes
17 of 17.

Signed-off-by: Konstantin Tursunov <Konstantin.Tursunov@constructor.tech>
@ktursunov
ktursunov requested a review from a team as a code owner August 10, 2026 09:40
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 41fe0660-a58e-44ef-97ba-9a41061e6df6

📥 Commits

Reviewing files that changed from the base of the PR and between 57ea50c and aa3e98f.

📒 Files selected for processing (1)
  • tests/stand/ui/conftest.py

📝 Walkthrough

Walkthrough

The UI test setup adds a browser context fixture that sets insight.portal to false before application code runs. The existing 15-second Playwright assertion timeout remains configured.

Changes

UI test setup

Layer / File(s) Summary
Legacy dashboard context
tests/stand/ui/conftest.py
The new BrowserContext fixture sets insight.portal to false in local storage before returning the context. The 15-second assertion timeout remains configured.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: aleksdotbar

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: pinning stand UI journeys to the legacy shell.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/stand-ui-legacy-shell

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ktursunov
ktursunov enabled auto-merge August 10, 2026 09:51
@ktursunov
ktursunov added this pull request to the merge queue Aug 10, 2026
Merged via the queue into main with commit 0566a4f Aug 10, 2026
48 checks passed
@ktursunov
ktursunov deleted the fix/stand-ui-legacy-shell branch August 10, 2026 10:04
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.

2 participants