- Issue 2 (coverage gap): add HoneyDueAPITests/AuthGatingAPITests — verifies the
backend's RequireVerified gate (unverified -> 403, verified -> 200) at the API
layer, since UI-test mode bypasses verification. NOTE: surfaced that the gate
is applied to only the share-code routes, not residence/task routes — unverified
users are NOT broadly blocked (flagged for product/backend).
- Issue 4: TaskCRUDUITests seedAccountPreconditions now guarantees a residence
(no silent early-return), so the cancelled-task precondition always populates;
XCTUnwrap replaces the misleading "not seeded" skip. The two uncancel tests now
skip with the ACCURATE reason: cancelled tasks are intentionally hidden from the
Tasks Kanban and the iOS Tasks view has no "show cancelled" surface (product gap).
- Issue 3: re-quarantine testF110 after a hardening attempt — the register->verify
transition is irreducibly flaky; coverage is redundant with OnboardingTaskCache
+ the F-series. Skip reason is now precise, with a TODO to stabilize the handoff.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Split the pure-API integration tests (no UI) out of the UITest target into
a dedicated standalone unit-test target that runs in seconds without launching
the simulator app.
- HoneyDueAPITests target: standalone unit-test bundle (no TEST_HOST — touches
no app code), shares the API client/seeder/cleaner support files from the
UITest target via explicit references, with its own shared scheme.
- MultiUserSharingTests -> HoneyDueAPITests/SharingAPITests.swift (18 tests).
Runs in ~2.3s vs. ~40-140s per UI test.
- run_ui_tests.sh: new Phase 1b runs the API target (fast) between Seed and the
parallel UI phase; the helper now takes a scheme so each phase targets the
right one; summary reports the API result.
Both targets build green; SharingAPITests passes (18/18) against the live stack.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>