Problem
(verified) The samplingTable double-count bug (lib/view_models/cards/measurements_data_model.dart:22-29) was invisible precisely because no test pushes synthetic measurements through these view-models; test/heart_rate_data_model_test.dart already shows the pattern (mocked controller + streams).
Proposed fix
Reuse that harness for steps/activity/mobility/measurements after the leak-EPIC fixes; assert single-subscription behavior on re-init.
Acceptance criteria
Effort: M · Priority: P2 · Change risk: None
Problem
(verified) The
samplingTabledouble-count bug (lib/view_models/cards/measurements_data_model.dart:22-29) was invisible precisely because no test pushes synthetic measurements through these view-models;test/heart_rate_data_model_test.dartalready shows the pattern (mocked controller + streams).Proposed fix
Reuse that harness for steps/activity/mobility/measurements after the leak-EPIC fixes; assert single-subscription behavior on re-init.
Acceptance criteria
Effort: M · Priority: P2 · Change risk: None