test(ios): harden lifecycle action assertions - #440
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
BunsDev
force-pushed
the
chore/reconcile-ios-lifecycle-beads
branch
from
September 11, 2026 12:57
27f1083 to
e7b041c
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The inverted wait assertions must expect .timedOut at lines 1015 and 1035.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Adds iOS UI coverage for stop and cleanup cancellation flows, asynchronous assertions, and Beads transition records.
Changes:
- Tests cancellation while preserving panes and preventing remote workflows.
- Adds run-loop-aware presence and absence assertions.
- Records reviewed Beads lifecycle transitions.
Blocking finding: inverted waits compare against .completed instead of .timedOut at lines 1015 and 1035.
File summaries
| File | Description |
|---|---|
native/ios/PsycheApp/Tests/PsycheAppUITests/PsycheAppUITests.swift |
Adds cancellation coverage and asynchronous assertion helpers. |
.beads/interactions.jsonl |
Records reviewed Beads status transitions. |
Review details
Suppressed comments (1)
native/ios/PsycheApp/Tests/PsycheAppUITests/PsycheAppUITests.swift:1037
- [P1] Expect the inverted wait to time out. With
appearance.isInverted = true, keeping the action sheet absent means the expectation is not fulfilled for the entire interval andXCTWaiter.waitreturns.timedOut; asserting.completedmakes this new cancellation test fail on the intended success path. Replace this result with.timedOut.
XCTAssertEqual(
XCTWaiter.wait(for: [appearance], timeout: duration),
.completed,
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
BunsDev
force-pushed
the
chore/reconcile-ios-lifecycle-beads
branch
from
September 11, 2026 13:24
e7b041c to
61fb011
Compare
BunsDev
force-pushed
the
chore/reconcile-ios-lifecycle-beads
branch
from
September 11, 2026 14:25
61fb011 to
c0fd2bf
Compare
Identify scoped metadata rows, force realization of the generic cancel control before asserting absence, and retain only supported Beads transitions. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
BunsDev
force-pushed
the
chore/reconcile-ios-lifecycle-beads
branch
from
September 11, 2026 15:07
c0fd2bf to
a9c0e2c
Compare
54 tasks
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.
Summary
Validation
PsycheAppTests/ActionSheetPresentationTests: passedTracker boundary
Phase 9 closure records are intentionally deferred until this pull request is merged. Mirror #220 remains open until the post-merge Beads audit is reviewed and published. Mirror #231 remains open for missing stress-adapter and performance-metric work. #435 remains the separate unknown-outcome authority gap.