import { describe, it, expect, beforeEach } from 'vitest'; import { groceries, categories } from '$lib/server/db/schema'; import { eq } from 'drizzle-orm'; import { createTestDb } from './test-helper'; describe('category delete behavior', () => { let db: Awaited>['db']; beforeEach(async () => { const testDb = await createTestDb(); db = testDb.db; }); it('sets category_id to null when a referenced category is deleted', async () => { await db.insert(categories).values({ name: 'Boissons' }); const cats = await db.select().from(categories); const catId = cats[0].id; await db.insert(groceries).values({ name: 'lait', checked: false, createdAt: new Date().toISOString(), categoryId: catId, }); await db.delete(categories).where(eq(categories.id, catId)); const items = await db.select().from(groceries); expect(items).toHaveLength(1); expect(items[0].categoryId).toBeNull(); }); });