diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-10-18 22:22:55 +0200 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-10-18 22:22:55 +0200 |
| commit | 4efed80a2f8dc238b420eadf97d56c3eccaadb76 (patch) | |
| tree | 7732a80745622c097a9e75dfb056603bceb10a23 /src/lib/server/services/references.test.ts | |
| parent | 0685e9ece66fbcb09c9457027cf7bb2107cc0171 (diff) | |
refactor: inject the database into every servicemain
Groceries, projects, references and routines become classes holding the
Drizzle handle, wired once in services/index.ts alongside categories. Tests
build their own instance on an in-memory database. Drops the unused
projects.loadAll and projects.rename.
Diffstat (limited to 'src/lib/server/services/references.test.ts')
| -rw-r--r-- | src/lib/server/services/references.test.ts | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/lib/server/services/references.test.ts b/src/lib/server/services/references.test.ts index fa3fc97..1f5d172 100644 --- a/src/lib/server/services/references.test.ts +++ b/src/lib/server/services/references.test.ts @@ -2,13 +2,15 @@ import { describe, it, expect, beforeEach } from 'vitest'; import { groceries, references } from '$lib/server/db/schema'; import { eq } from 'drizzle-orm'; import { createTestDb, type TestDb } from '$lib/server/db/test-helper'; -import { loadForGrocery, add, promote, deleteReference } from './references'; +import { ReferencesService } from './references'; describe('references service', () => { let db: TestDb['db']; + let service: ReferencesService; beforeEach(async () => { db = (await createTestDb()).db; + service = new ReferencesService(db); }); it('loadForGrocery returns refs for the given grocery', async () => { @@ -29,7 +31,7 @@ describe('references service', () => { { groceryId: g2.id, reference: 'Brand B' }, ]); - const refs = await loadForGrocery(g1.id, db); + const refs = await service.loadForGrocery(g1.id); expect(refs).toHaveLength(1); expect(refs[0].reference).toBe('Brand A'); }); @@ -49,7 +51,7 @@ describe('references service', () => { { groceryId: g.id, reference: 'D', qualityScore: 50 }, ]); - const refs = await loadForGrocery(g.id, db); + const refs = await service.loadForGrocery(g.id); expect(refs.map((r) => r.reference)).toEqual(['B', 'D', 'A', 'C']); }); @@ -62,7 +64,7 @@ describe('references service', () => { .values({ name: 'pasta', checked: false, createdAt: now }) .returning(); - const ref = await add(g.id, 'Barilla', 2.5, '€/kg', 85, db); + const ref = await service.add(g.id, 'Barilla', 2.5, '€/kg', 85); expect(ref.reference).toBe('Barilla'); expect(ref.price).toBe(2.5); @@ -90,12 +92,12 @@ describe('references service', () => { .values({ groceryId: g.id, reference: 'B' }) .returning(); - await promote(b.id, db); - let refs = await loadForGrocery(g.id, db); + await service.promote(b.id); + let refs = await service.loadForGrocery(g.id); expect(refs.map((r) => r.reference)).toEqual(['B', 'A']); - await promote(a.id, db); - refs = await loadForGrocery(g.id, db); + await service.promote(a.id); + refs = await service.loadForGrocery(g.id); expect(refs.map((r) => r.reference)).toEqual(['A', 'B']); const rows = await db @@ -119,7 +121,7 @@ describe('references service', () => { .values({ groceryId: g.id, reference: 'Brand X' }) .returning(); - await deleteReference(ref.id, db); + await service.deleteReference(ref.id); const rows = await db.select().from(references); expect(rows).toHaveLength(0); |
