Repository navigation
test: regression coverage for #175 (resolvedSeries active strap id threading) - #191
Merged
ryanbr merged 1 commit intoJul 10, 2026
Conversation
… id threading) Follow-up to ryanbr#175, which shipped without tests. Two new suites pin the fix: - ResolvedSeriesActiveStrapTest (behavioral, Proxy-stub dao, no Room): threading the active strap id resolves scores banked under "<activeStrapId>-noop" after a strap re-add; the legacy canonical default misses them (the ryanbr#172 'Calibrating / no data' symptom, kept as a documented failure shape); single-strap installs resolve identically threaded or not; the ryanbr#1008 union holds through the threaded read. - ResolvedSeriesCallSiteAuditTest (source census): scans com/noop/ui for resolvedSeries( call sites and fails any caller that doesn't name strapDeviceId — the regression ryanbr#175 fixed compiles silently otherwise. Refs ryanbr#172, ryanbr#175
TheBoroer
marked this pull request as ready for review
July 10, 2026 04:11
DX23876
pushed a commit
to DX23876/noop
that referenced
this pull request
Jul 22, 2026
… id threading) (ryanbr#191) Follow-up to ryanbr#175, which shipped without tests. Two new suites pin the fix: - ResolvedSeriesActiveStrapTest (behavioral, Proxy-stub dao, no Room): threading the active strap id resolves scores banked under "<activeStrapId>-noop" after a strap re-add; the legacy canonical default misses them (the ryanbr#172 'Calibrating / no data' symptom, kept as a documented failure shape); single-strap installs resolve identically threaded or not; the ryanbr#1008 union holds through the threaded read. - ResolvedSeriesCallSiteAuditTest (source census): scans com/noop/ui for resolvedSeries( call sites and fails any caller that doesn't name strapDeviceId — the regression ryanbr#175 fixed compiles silently otherwise. Refs ryanbr#172, ryanbr#175
simoncad7
pushed a commit
to simoncad7/noop
that referenced
this pull request
Aug 17, 2026
… id threading) (ryanbr#191) Follow-up to ryanbr#175, which shipped without tests. Two new suites pin the fix: - ResolvedSeriesActiveStrapTest (behavioral, Proxy-stub dao, no Room): threading the active strap id resolves scores banked under "<activeStrapId>-noop" after a strap re-add; the legacy canonical default misses them (the ryanbr#172 'Calibrating / no data' symptom, kept as a documented failure shape); single-strap installs resolve identically threaded or not; the ryanbr#1008 union holds through the threaded read. - ResolvedSeriesCallSiteAuditTest (source census): scans com/noop/ui for resolvedSeries( call sites and fails any caller that doesn't name strapDeviceId — the regression ryanbr#175 fixed compiles silently otherwise. Refs ryanbr#172, ryanbr#175
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.
What this PR does
Follow-up to #175, which fixed REST resolution after a strap re-add but shipped without tests. That bug surfaced in two places, both fed by the same
resolvedSeriesread: the Key Metrics REST card showing "no data", and the REST circle in the Today header (the "Charge / Effort / Rest" trio) stuck on "Calibrating". This adds two regression suites that pin the fix:ResolvedSeriesActiveStrapTest(behavioral,Proxy-stub dao, no Room): proves that threading the registry's active strap id resolves scores banked under"<activeStrapId>-noop"after a strap re-add, while the legacy canonical default misses them (the exact [sleep] Rest is not calculated/shown despite logged sleeps #172 symptom, kept as a documented failure shape); that single-strap installs resolve identically threaded or not; and that the HRV: default the nightly window to deep sleep, once deep staging holds up against PSG #1008 sleep-union survives the threaded read.ResolvedSeriesCallSiteAuditTest(source census): scanscom/noop/uiforresolvedSeries(call sites and fails any caller that doesn't passstrapDeviceId— the class of regression fix: thread the registry's active strap id into every resolvedSeries caller #175 fixed compiles silently, so this keeps future call sites honest.Refs #172, #175.
Type of change
How it was tested
No BLE or protocol changes — tests only.
./gradlew testFullDebugUnitTest: 2394 tests, 0 failures, 0 skipped (includes the 5 new tests). Both new suites were also verified to fail against the pre-#175 call sites (legacy canonical-default resolution reproduces the "no data" shape).Checklist
swift testinPackages/<name>)android/(./gradlew testFullDebugUnitTest)StrandDesigntokens — no hardcoded colors, fonts, or spacingdocs/CONTRIBUTING.mdStrand.xcodeproj/) or any secrets/keystoresRelated issues
Refs #172, #175