import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import Database from 'better-sqlite3'; import { runMigrations } from '../../src/main/db/migrations/index.js'; describe('m009 notebook sort_order migration', () => { let db: Database.Database; beforeEach(() => { db = new Database(':memory:'); db.pragma('foreign_keys = ON'); }); afterEach(() => { db.close(); }); it('fresh DB: default notebook 의 sort_order = 0', () => { runMigrations(db); const r = db.prepare(`SELECT sort_order FROM notebooks`).get() as { sort_order: number }; expect(r.sort_order).toBe(0); }); it('새 notebook insert 시 DEFAULT 0 (caller 가 max+1 책임)', () => { runMigrations(db); db.prepare(`INSERT INTO notebooks(id,name,created_at,updated_at) VALUES('nb-x','회사','t','t')`).run(); const r = db.prepare(`SELECT sort_order FROM notebooks WHERE id='nb-x'`).get() as { sort_order: number }; expect(r.sort_order).toBe(0); }); it('user_version reaches 9 after all migrations', () => { runMigrations(db); const r = db.prepare('PRAGMA user_version').get() as { user_version: number }; expect(r.user_version).toBe(9); }); });