test(ios): simulator lifecycle e2e flows - #29657
Draft
chrisnojima wants to merge 1 commit into
Draft
chrisnojima wants to merge 1 commit into
chrisnojima wants to merge 1 commit into
Conversation
chrisnojima
added this pull request to stack #29658
September 21, 2026 18:56
…nd location Three Appium flows drive a real simulator through the lifecycle work in this stack: app-state transitions and the local http server, deep links and push taps, and native live location. The shared harness reads the Metro and simulator logs rather than driving the UI to assert, so a flow fails on what the app actually did. The app-state flow matches "Srv: start: addr: " and "kbhttp.Srv: server starting on: ", which are the lines the reconciling server logs. tsc now type-checks the suite as a third project, so an e2e file that stops compiling fails lint:all instead of only failing when someone runs the flows. eslint stops walking android/app/build, a gitignored gradle output that a local test run leaves behind.
chrisnojima
force-pushed
the
nojima/HOTPOT-as-09-e2e
branch
from
September 22, 2026 23:08
1ec29d2 to
4e70bd5
Compare
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.
Stack 9/9, splitting #29637. Parent: #29656.
Why
Everything below this PR changes behaviour that only appears on a real device: app-state transitions, whether the local http server is up, whether a deep link or a push tap reaches the right screen, and whether live location keeps reporting in the background. Unit tests cannot observe any of it. These flows drive a simulator and assert on what the app actually did.
What this adds
Three Appium flows — app state and the local http server, deep links and push taps, and native live location — over a shared harness. The harness asserts on the Metro and simulator logs rather than on the UI, so a flow fails on observed behaviour rather than on a rendering detail. The app-state flow matches
Srv: start: addr:andkbhttp.Srv: server starting on:, confirmed to be what the reconciling server from #29652 actually logs.Run with
yarn test:e2e:ios:lifecycle.Two pieces of wiring worth calling out
yarn tscnow type-checks the e2e suite as a third project. Previously an e2e file could stop compiling and nothing would notice until someone ran the flows — the failure mode where a test silently stops being a test.android/app/build, a gitignored gradle output that any local Android test run leaves behind. On master this makesyarn lint:allfail with 8 errors in a generated file; every PR in this stack had to work around it. This removes the workaround.Verification
yarn lint:allis clean end to end, including the new tsc project. Unit suite green at 241 suites / 2368 tests.The flows themselves were not executed here — they need a booted simulator and a running service.