import { describe, it, expect } from 'vitest' import { openDatabase } from '../src/db.js' describe('openDatabase', () => { it('creates the full schema', () => { const db = openDatabase(':memory:') const tables = ( db.prepare("SELECT name FROM sqlite_master WHERE type='table' ORDER BY name").all() as { name: string }[] ).map((r) => r.name) for (const t of [ 'users', 'sessions', 'settings', 'collection_items', 'digital_albums', 'match_links', 'app_meta', ]) { expect(tables).toContain(t) } }) it('enforces unique (user_id, discogs_release_id)', () => { const db = openDatabase(':memory:') db.prepare( "INSERT INTO users (username, password_hash, is_admin) VALUES ('sam', 'x', 1)" ).run() const insert = db.prepare( `INSERT INTO collection_items (user_id, discogs_release_id, title, artist) VALUES (1, 100, 'Album', 'Artist')` ) insert.run() expect(() => insert.run()).toThrow() }) })