aboutsummaryrefslogtreecommitdiff
path: root/src/lib/shared/routine-metrics.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/shared/routine-metrics.test.ts')
-rw-r--r--src/lib/shared/routine-metrics.test.ts15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/shared/routine-metrics.test.ts b/src/lib/shared/routine-metrics.test.ts
index a63069c..1df39ab 100644
--- a/src/lib/shared/routine-metrics.test.ts
+++ b/src/lib/shared/routine-metrics.test.ts
@@ -63,6 +63,21 @@ describe('computeRoutineState', () => {
const state = computeRoutineState(routine, [], now);
expect(state.health).toBe(75);
});
+ it('is due the calendar day after completion for a daily routine', () => {
+ const daily = { ...routine, frequencyDays: 1 };
+ const doneAt = '2026-09-07T20:00:00.000Z'; // yesterday evening
+ const now = Date.parse('2026-09-08T08:00:00.000Z'); // this morning, <24h later
+ const state = computeRoutineState(daily, [{ routineId: 1, doneAt }], now);
+ expect(state.status).toBe('due');
+ });
+
+ it('is ok later the same day it was done for a daily routine', () => {
+ const daily = { ...routine, frequencyDays: 1 };
+ const doneAt = '2026-09-08T08:00:00.000Z';
+ const now = Date.parse('2026-09-08T20:00:00.000Z');
+ const state = computeRoutineState(daily, [{ routineId: 1, doneAt }], now);
+ expect(state.status).toBe('ok');
+ });
});
describe('computeHealthSeries', () => {