diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-09-30 22:13:07 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-09-30 22:13:07 +0200 |
| commit | a725d4c7d28fee701b6997cc46cffddefbcd26bf (patch) | |
| tree | 1e0899dc9fa67f8c74d7e4b7023881959d571d4f /src/lib/server/services/routines.test.ts | |
| parent | a17b24b8e95bf85a8522fc0c2cbbdb8da31bf018 (diff) | |
Allow granular routine frequencies like 5/2w
Diffstat (limited to 'src/lib/server/services/routines.test.ts')
| -rw-r--r-- | src/lib/server/services/routines.test.ts | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/src/lib/server/services/routines.test.ts b/src/lib/server/services/routines.test.ts index eda8824..2ad409a 100644 --- a/src/lib/server/services/routines.test.ts +++ b/src/lib/server/services/routines.test.ts @@ -24,46 +24,46 @@ describe('routines service', () => { }); it('creates a routine with version 1', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); expect(r.id).toBe(1); expect(r.version).toBe(1); - expect(r.frequencyDays).toBe(7); + expect(r.frequency).toBe('7d'); }); it('edit inserts a new snapshot version and keeps history', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); const updated = await edit( r.id, - { name: 'clean kitchen deeply', frequencyDays: 3 }, + { name: 'clean kitchen deeply', frequency: '3d' }, db, ); expect(updated.version).toBe(2); - expect(updated.frequencyDays).toBe(3); + expect(updated.frequency).toBe('3d'); const versions = await loadAllVersions(r.id, db); expect(versions).toHaveLength(2); - expect(versions[0].frequencyDays).toBe(7); - expect(versions[1].frequencyDays).toBe(3); + expect(versions[0].frequency).toBe('7d'); + expect(versions[1].frequency).toBe('3d'); }); it('new routines start with an empty description', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); expect(r.description).toBe(''); }); it('edit is partial: name/frequency edits keep the description and vice-versa', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); const described = await edit(r.id, { description: 'wax on, wax off' }, db); expect(described.name).toBe('clean kitchen'); - expect(described.frequencyDays).toBe(7); + expect(described.frequency).toBe('7d'); expect(described.description).toBe('wax on, wax off'); const renamed = await edit(r.id, { name: 'clean the whole kitchen' }, db); expect(renamed.version).toBe(3); expect(renamed.description).toBe('wax on, wax off'); - expect(renamed.frequencyDays).toBe(7); + expect(renamed.frequency).toBe('7d'); - const refreq = await edit(r.id, { frequencyDays: 14 }, db); + const refreq = await edit(r.id, { frequency: '14d' }, db); expect(refreq.version).toBe(4); expect(refreq.name).toBe('clean the whole kitchen'); expect(refreq.description).toBe('wax on, wax off'); @@ -75,7 +75,7 @@ describe('routines service', () => { }); it('archive inserts an archived snapshot without removing history', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); await archive(r.id, db); const versions = await loadAllVersions(r.id, db); expect(versions).toHaveLength(2); @@ -92,8 +92,8 @@ describe('routines service', () => { }); it('loadArchived lists archived routines; edits keep the archive date', async () => { - const a = await add(projectId, 'clean kitchen', 7, db); - await add(projectId, 'water plants', 3, db); + const a = await add(projectId, 'clean kitchen', '7d', db); + await add(projectId, 'water plants', '3d', db); await archive(a.id, db); const stamped = (await loadAllVersions(a.id, db))[1].archivedAt; expect(stamped).toBeTruthy(); @@ -105,13 +105,13 @@ describe('routines service', () => { const archived = await loadArchived(projectId, db); expect(archived.map((r) => r.id)).toEqual([a.id]); expect(archived[0].name).toBe('clean kitchen deeply'); - expect(archived[0].frequencyDays).toBe(7); + expect(archived[0].frequency).toBe('7d'); expect(archived[0].archivedAt).toBe(stamped); }); it('loadArchived sorts most recently archived first', async () => { - const a = await add(projectId, 'first', 1, db); - const b = await add(projectId, 'second', 1, db); + const a = await add(projectId, 'first', '1d', db); + const b = await add(projectId, 'second', '1d', db); await archive(a.id, db); await archive(b.id, db); @@ -126,8 +126,8 @@ describe('routines service', () => { }); it('complete records the snapshot version it was made against', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); - await edit(r.id, { frequencyDays: 5 }, db); + const r = await add(projectId, 'clean kitchen', '7d', db); + await edit(r.id, { frequency: '5d' }, db); const doneAt = Temporal.Now.instant().toString({ smallestUnit: 'millisecond', }); @@ -137,7 +137,7 @@ describe('routines service', () => { }); it('dashboard computes urgency and health from completions', async () => { - const r = await add(projectId, 'clean kitchen', 7, db); + const r = await add(projectId, 'clean kitchen', '7d', db); const created = Temporal.Instant.from(r.createdAt); await complete( r.id, @@ -157,9 +157,9 @@ describe('routines service', () => { }); it('overview aggregates per-project health and a global score', async () => { - await add(projectId, 'clean kitchen', 7, db); + await add(projectId, 'clean kitchen', '7d', db); const growth = await addProject('Personal growth', db); - await add(growth.id, 'read 30 minutes', 1, db); + await add(growth.id, 'read 30 minutes', '1d', db); const now = Temporal.Now.instant(); const overview = await loadOverview(now, db); |
