Skip to content

fix(smoke): robustness for log-habit modal + paywall plans-load - #289

Merged
thomasluizon merged 2 commits into
mainfrom
fix/smoke-log-habit-modal-wait
Jun 24, 2026
Merged

fix(smoke): robustness for log-habit modal + paywall plans-load#289
thomasluizon merged 2 commits into
mainfrom
fix/smoke-log-habit-modal-wait

Conversation

@thomasluizon

Copy link
Copy Markdown
Owner

Context

The prod smoke suite (#253) reached its flows for the first time once #288 fixed the BFF 204 that was breaking setup. It then failed 2 of 5 flows — both test-robustness, not app regressions (setup + Astra-create-habit + auth + create-habit + cleanup all pass).

Fixes

  1. log-habit — the create-habit modal (AppOverlay) closes on submit, but its backdrop briefly intercepts pointer events during the close animation; the test clicked the new row's toggle immediately and the click timed out (60s). Wait for the form to be hidden first.
  2. paywall/upgrade's plan radiogroup renders only once useSubscriptionPlans() resolves; on a cold post-deploy serverless start the query didn't resolve within the 15s default. Give the radiogroup + checkout 30s (a total plans failure still fails the test).

No production code touched — apps/web/e2e/** only.

🤖 Generated with Claude Code

thomasluizon and others added 2 commits June 23, 2026 23:17
…-habit

The create-habit modal (AppOverlay) closes on submit, but its backdrop briefly intercepts pointer events during the close animation. The test clicked the new row's status toggle immediately after submit, so the click timed out (60s). Wait for the form to be hidden first.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The /upgrade radiogroup only renders once useSubscriptionPlans() resolves. On the first real smoke run the plans query did not resolve within the 15s default, so the assertion failed and rolled back a healthy deploy. Give the plan selector + checkout 30s (a total plans failure still fails).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
orbit-ui-mobile-web Ignored Ignored Jun 24, 2026 2:19am

Request Review

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review: PR #289

Scope: PR #289 - fix(smoke): robustness for log-habit modal + paywall plans-load
Recommendation: APPROVE

Summary

Two apps/web/e2e/ smoke test files were hardened against timing failures. The log-habit fix correctly waits for the create-modal to fully close before interacting with the new row (eliminating the backdrop click-intercept race). The paywall fix raises the assertion timeout to 30s to tolerate cold-start serverless latency on the first post-deploy plan query. No production code was changed.

Findings

Critical

None

High

None

Medium

None

Low / Info

None

Subagents

Agent Verdict
parity-checker N/A - smoke tests are web-only by design (CLAUDE.md: no mobile E2E)
i18n-syncer N/A - no user-facing strings changed
contract-aligner N/A - no shared types or API contracts changed
security-reviewer N/A - no orbit-api code changed

Validation

Check Result
Lint N/A - E2E test files only; no production lint gate
Type check N/A - no source types changed
Tests N/A - no unit tests changed
Build (api) N/A - no backend touched

What is good

  • await expect(titleInput).toBeHidden() is the right fix: it anchors to the actual DOM state that unblocks the backdrop, not an arbitrary sleep. Robust and intention-revealing.
  • Scoping the 30s timeout only to the two assertions that need it (radiogroup + checkout CTA) rather than raising the global Playwright timeout keeps the test suite fast for every other assertion.
  • PR body clearly distinguishes test-robustness fixes from app regressions, which is exactly the right framing.
  • Diff is minimal: 4 lines changed, no production code, no scope creep.

Recommendation

Clean, targeted fixes with no correctness, parity, contract, or security concerns. Ready to merge.

@sonarqubecloud

Copy link
Copy Markdown

@thomasluizon
thomasluizon merged commit ef0eb30 into main Jun 24, 2026
10 checks passed
@thomasluizon
thomasluizon deleted the fix/smoke-log-habit-modal-wait branch June 24, 2026 02:26
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