Skip to content

test(ios): harden lifecycle action assertions - #440

Merged
BunsDev merged 1 commit into
mainfrom
chore/reconcile-ios-lifecycle-beads
Sep 11, 2026
Merged

test(ios): harden lifecycle action assertions#440
BunsDev merged 1 commit into
mainfrom
chore/reconcile-ios-lifecycle-beads

Conversation

@BunsDev

@BunsDev BunsDev commented Sep 11, 2026

Copy link
Copy Markdown
Member

Summary

  • give remote-action scope values stable, scope-specific accessibility identifiers
  • verify the pane identifier from the rendered Scope section rather than the duplicate header value
  • force realization of the generic Cancel control before asserting that host-provided cancellation is the only path
  • retain only already-supported historical Beads transitions

Validation

  • PsycheAppTests/ActionSheetPresentationTests: passed
  • source compilation: passed
  • hosted exact-head CI at the prior code-identical head: all jobs passed, including iOS app and iOS Core
  • independent final diff review: no findings

Tracker 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.

@vercel

vercel Bot commented Sep 11, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
psyche-build-docs Ready Ready Preview Sep 11, 2026 3:07pm UTC

Request Review

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 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 and XCTWaiter.wait returns .timedOut; asserting .completed makes 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.

Comment thread native/ios/PsycheApp/Tests/PsycheAppUITests/PsycheAppUITests.swift Outdated
@BunsDev
BunsDev force-pushed the chore/reconcile-ios-lifecycle-beads branch from e7b041c to 61fb011 Compare September 11, 2026 13:24
@BunsDev BunsDev changed the title test(ios): cover lifecycle cancellation paths chore(beads): reconcile delivered mobile slices Sep 11, 2026
@BunsDev
BunsDev force-pushed the chore/reconcile-ios-lifecycle-beads branch from 61fb011 to c0fd2bf Compare September 11, 2026 14:25
@BunsDev BunsDev changed the title chore(beads): reconcile delivered mobile slices test(ios): harden lifecycle action assertions Sep 11, 2026
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
BunsDev force-pushed the chore/reconcile-ios-lifecycle-beads branch from c0fd2bf to a9c0e2c Compare September 11, 2026 15:07
@BunsDev
BunsDev merged commit 3660351 into main Sep 11, 2026
12 checks passed
@BunsDev
BunsDev deleted the chore/reconcile-ios-lifecycle-beads branch September 11, 2026 15:32
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