import { describe, it, expect, afterEach } from 'vitest' import { DatabaseSync } from 'node:sqlite' import { migrate } from '../../src/main/db/migrate' import type { SqliteDb } from '../../src/main/db/types' describe('migrate v9', () => { let db: SqliteDb afterEach(() => db?.close()) it('UT-MIG-09: fresh database migrates to v9 with chapter_tags', () => { db = new DatabaseSync(':memory:') migrate(db) const version = db.prepare('SELECT MAX(version) AS v FROM schema_version').get() as { v: number } expect(version.v).toBe(11) const table = db .prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='chapter_tags'") .get() expect(table).toBeTruthy() const chapterCols = db.prepare('PRAGMA table_info(chapters)').all() as Array<{ name: string }> expect(chapterCols.some((c) => c.name === 'published_at')).toBe(true) expect(chapterCols.some((c) => c.name === 'word_count_threshold')).toBe(true) }) })