From defa43d46c2ad24500de4b5d14c4d8ce5432d708 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 31 Oct 2026 11:54:28 +0100 Subject: [PATCH] test(parity): fold the whole fixture history so the walk keeps the rollup path The fixtures built their rollups with the read refresh, which folds ninety days. Under the stricter coverage a type folded only that far takes the live path; the fixtures now fold the whole history first, as the boot backfill does, so the walk still reads the rollup tier. The analytics snapshots change only in what the old coverage hid: the summaries count all 120 weight and blood-pressure readings instead of the 91 the folded window held, with the means and the all-time in-target share that follow from them. --- .../analytics.02-summaries-cold.json.snap | 10 +++++----- .../analytics.03-summaries-warm.json.snap | 8 ++++---- .../__snapshots__/analytics.04-default-cold.json.snap | 10 +++++----- .../__snapshots__/analytics.05-default-warm.json.snap | 10 +++++----- .../analytics.06-summaries-modules-off.json.snap | 8 ++++---- .../analytics.07-default-de-personal-target.json.snap | 8 ++++---- .../integration/routes/parity/analytics.parity.test.ts | 4 ++++ .../parity/insights-comprehensive.parity.test.ts | 8 ++++++++ 8 files changed, 39 insertions(+), 27 deletions(-) diff --git a/tests/integration/routes/parity/__snapshots__/analytics.02-summaries-cold.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.02-summaries-cold.json.snap index ff13f7158..f4c49c6c7 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.02-summaries-cold.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.02-summaries-cold.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, @@ -1425,7 +1425,7 @@ "meta": { "analytics": { "slim_summaries": { - "row_count": 566, + "row_count": 624, "type_count": 11, "path": "rollup", "year_over_year_types": 0, diff --git a/tests/integration/routes/parity/__snapshots__/analytics.03-summaries-warm.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.03-summaries-warm.json.snap index 5a7a94006..08cc16339 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.03-summaries-warm.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.03-summaries-warm.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, diff --git a/tests/integration/routes/parity/__snapshots__/analytics.04-default-cold.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.04-default-cold.json.snap index b53383052..f077c24f2 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.04-default-cold.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.04-default-cold.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, @@ -1293,7 +1293,7 @@ "bpInTargetPct": 11, "bpInTargetPct7d": 14, "bpInTargetPct30d": 17, - "bpInTargetPctAllTime": 12, + "bpInTargetPctAllTime": 13, "bpInTargetPctPriorMonth": 10, "bpInTargetPctPriorYear": null, "bpInTargetCount90": 90, diff --git a/tests/integration/routes/parity/__snapshots__/analytics.05-default-warm.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.05-default-warm.json.snap index c84149b13..90a9545cb 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.05-default-warm.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.05-default-warm.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, @@ -1293,7 +1293,7 @@ "bpInTargetPct": 11, "bpInTargetPct7d": 14, "bpInTargetPct30d": 17, - "bpInTargetPctAllTime": 12, + "bpInTargetPctAllTime": 13, "bpInTargetPctPriorMonth": 10, "bpInTargetPctPriorYear": null, "bpInTargetCount90": 90, diff --git a/tests/integration/routes/parity/__snapshots__/analytics.06-summaries-modules-off.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.06-summaries-modules-off.json.snap index 2e0f796dc..7cf513ac4 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.06-summaries-modules-off.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.06-summaries-modules-off.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, diff --git a/tests/integration/routes/parity/__snapshots__/analytics.07-default-de-personal-target.json.snap b/tests/integration/routes/parity/__snapshots__/analytics.07-default-de-personal-target.json.snap index e19efe263..191bb9d1a 100644 --- a/tests/integration/routes/parity/__snapshots__/analytics.07-default-de-personal-target.json.snap +++ b/tests/integration/routes/parity/__snapshots__/analytics.07-default-de-personal-target.json.snap @@ -27,11 +27,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_SYS": { - "count": 91, + "count": 120, "latest": 123, "min": 123, "max": 137, - "mean": 129.92, + "mean": 130, "median": 130, "avg7": 131.14, "avg30": 130, @@ -49,11 +49,11 @@ "avg30LastYear": null }, "BLOOD_PRESSURE_DIA": { - "count": 91, + "count": 120, "latest": 78, "min": 78, "max": 86, - "mean": 81.96, + "mean": 81.95, "median": 82, "avg7": 81.43, "avg30": 81.8, diff --git a/tests/integration/routes/parity/analytics.parity.test.ts b/tests/integration/routes/parity/analytics.parity.test.ts index 72fb3c738..d68a489d9 100644 --- a/tests/integration/routes/parity/analytics.parity.test.ts +++ b/tests/integration/routes/parity/analytics.parity.test.ts @@ -195,6 +195,10 @@ beforeAll(async () => { const rollups = await vi.importActual< typeof import("@/lib/rollups/measurement-rollups") >("@/lib/rollups/measurement-rollups"); + // The whole history, as the boot backfill folds it: the read refresh + // alone covers ninety days, and a type folded only that far is not + // covered, so the walk would take the live path for it. + await rollups.recomputeUserRollups(OWNER_ID); await rollups.ensureUserRollupsFresh(OWNER_ID); await settleBackgroundTasks(); owner = await makeSession(ownerRow); diff --git a/tests/integration/routes/parity/insights-comprehensive.parity.test.ts b/tests/integration/routes/parity/insights-comprehensive.parity.test.ts index e8275e128..72c1ae5b9 100644 --- a/tests/integration/routes/parity/insights-comprehensive.parity.test.ts +++ b/tests/integration/routes/parity/insights-comprehensive.parity.test.ts @@ -362,6 +362,10 @@ beforeAll(async () => { const rollups = await vi.importActual< typeof import("@/lib/rollups/measurement-rollups") >("@/lib/rollups/measurement-rollups"); + // The whole history, as the boot backfill folds it: the read refresh + // alone covers ninety days, and a type folded only that far is not + // covered, so the walk would take the live path for it. + await rollups.recomputeUserRollups(OWNER_ID); await rollups.ensureUserRollupsFresh(OWNER_ID); const moodRollups = await vi.importActual< typeof import("@/lib/rollups/mood-rollups") @@ -378,6 +382,10 @@ beforeAll(async () => { }); await seedSparseRecord(SPARSE_ID); // Measurement rollups only: the mood tier stays empty on purpose. + // The whole history, as the boot backfill folds it: the read refresh + // alone covers ninety days, and a type folded only that far is not + // covered, so the walk would take the live path for it. + await rollups.recomputeUserRollups(SPARSE_ID); await rollups.ensureUserRollupsFresh(SPARSE_ID); await settleBackgroundTasks(); sparse = await makeSession(sparseRow);