[LiveObjects] Enable UTS integration test suites (17/17 objects tier passing) - #2235
Conversation
…t tiers) Applies the UTS integration test suites translated in #2226, now runnable against the completed LiveObjects implementation. The compile-only .disabled traits are removed; all suites pass against the Ably sandbox exactly as originally written (17/17 objects-tier + 27/27 rest-tier): - standard/objects: sync, lifecycle, and GC suites + helpers - proxy/objects: fault-injection suite (self-provisioning uts-proxy) - standard/rest: History/Presence/Publish suites - Package.swift: AblyLiveObjects dependency for the UTS target - deviations.md records and uts-to-swift skill routing updates
|
Warning Review limit reached
Next review available in: 50 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (13)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
This PR enables the UTS integration test suites for LiveObjects, originally translated from the UTS integration specs in #2226. When that PR was authored, the path-based API was a compile-only skeleton, so its suites carried a
.disabled("Compile-only until the implementation lands")trait. The implementation has now landed on the base branch (feature/liveobjects-implementation), and these tests run — and pass — exactly as originally written, with zero test adaptations.Results
All suites verified against the real (nonprod) Ably sandbox:
ObjectsSyncTestsObjectsLifecycleTestsObjectsGcTestsObjectsFaultsTestsHistoryTests/PresenceTests/PublishTestsEach
@Testruns both JSON and msgpack protocol variants. The proxy tier self-provisions theuts-proxybinary (checksum-verified GitHub release download).What's included
Test/UTS/integration/standard/objects/— the sync, lifecycle, and GC suites plus their helpers (ObjectsIntegrationHelpers,ObjectsRestProvisioning).Test/UTS/integration/proxy/objects/— the fault-injection suite (ObjectsFaultsTests: sync interruption, buffering across faults, detach/reattach, publish-ack loss).Test/UTS/integration/standard/rest/— the History/Presence/Publish suites from the same source PR.Package.swift— adds theAblyLiveObjectsdependency to theUTStest target (required by the objects suites).Test/UTS/deviations.md— appended records: theRSL1l1skip gate and the application record for this test-enablement pass..claude/skills/uts-to-swift/— skill routing updated so futureobjectsUTS ports land in the correct targets (unit →LiveObjects/Tests/AblyLiveObjectsTests/UTS/; integration/proxy →Test/UTS/integration/…), plus the refreshed objects mapping reference.Relationship to the base branch
These tests are the acceptance evidence for the implementation work on
feature/liveobjects-implementation. Three defects they exposed were fixed there (not here — this PR contains no library source changes):deiniton the internal queue tripped a dispatch precondition (SIGTRAP during ARC-driven teardown).get()did not implicitly attach the channel (RTL33b) — every integration spec's setup relies on it.siteCodewas never delivered to channels created after CONNECTED, silently disabling RTO20 local echo.The suites in this PR now pass with those fixes in place, unmodified from their spec translations.
Notes for reviewers
uts/objects/integration/in the specification repo; the test bodies are line-by-line translations (deviations, where unavoidable, are recorded inTest/UTS/deviations.md).uts-proxyrelease binary.swift test --filter ObjectsSyncTests(etc.) from the repo root, aftergit submodule update --init --recursive.