test(ui): start the iPad tablet project with the iOS install hint dismissed

Merged
BI
1mo ago
+8-5

User description

Requested by Josh · project thread

Summary

Before: once #3487 let WebKit launch, the tablet (iPad Mini) legs of the release browser matrix showed about 21 failures (run 38236585559). Most were clicks that timed out with "pwa-notice-stack subtree intercepts pointer events". The app offers the one-time "Add to Home Screen" sheet to iPad user agents as well as iPhones (isIosBrowser() in pwa-lifecycle.tsx). The iPhone projects already start from the dismissed state, but tablet started from a first visit, so the sheet covered the page in every tablet journey.

After: the tablet project starts from the same dismissed state as the iPhone projects. The one first-visit test in ui-pwa.spec.ts that proves the sheet shows, dismisses and stays dismissed now also runs on tablet, so hiding the sheet elsewhere cannot hide it breaking on iPad.

How: storageState: iosInstallHintDismissed added to the tablet project in playwright.config.ts, and tablet added to the hint test's project list. No test skipped, disabled or quarantined.

Areas touched: Delivery and assurance

Verification

  • eslint and typecheck on the changed files; prettier clean; pre-commit hooks passed.
  • Not yet proven: WebKit is not installed in this container, and the release matrix only runs on main, release branches, schedule or dispatch. Proof needs a matrix run after #3487 (the WebKit launch fix) is on main.
  • Remaining non-overlay WebKit failures from run 38236585559 are tracked separately (ledger request in #3487).

Risk and rollout

  • Risk: low, test configuration only. No app code changes.
  • Rollback: revert this PR.
  • Provider or production effects: None.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr

Generated by Claude Code

Summary by cubic

Starts the iPad tablet Playwright project with the iOS install hint already dismissed, so the "Add to Home Screen" sheet no longer covers the page and breaks tablet test journeys, and makes the SQL stripper timing guard resistant to slow-runner noise.

  • The iPad user agent gets the same install sheet as iPhones; starting from a first visit caused ~21 WebKit test failures once the browser could launch, so tablet now starts from the same dismissed state as the iPhone projects.
  • The one first-visit install hint test now also runs on tablet, so hiding the sheet elsewhere cannot hide it breaking on iPad.
  • Times the SQL stripper as the fastest of five runs, so a single cold run under coverage no longer trips the 100 ms ReDoS ceiling.

Test changes only; no app code changes.


CodeAnt-AI Description

Keep iPad browser tests clear of the install hint and verify its dismissal

What Changed

  • iPad browser journeys now start with the “Add to Home Screen” hint dismissed so it does not cover unrelated interactions.
  • The first-visit hint test now also runs on iPad, checking that the hint appears, can be dismissed, and stays dismissed after a reload.

Impact

✅ Fewer iPad browser-test clicks blocked by the install hint
✅ iPad install prompt behavior remains verified

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.