import { Database } from "bun:sqlite"; import { expect, test } from "bun:test"; import { readFileSync } from "node:fs"; import { join } from "node:path"; test("normalizes only legacy CLI raw-hours invoice rows", () => { const db = new Database(":memory:"); db.exec(` CREATE TABLE invoice_line_items ( id TEXT PRIMARY KEY NOT NULL, quantity INTEGER NOT NULL, quantity_type TEXT, rate INTEGER NOT NULL, amount INTEGER NOT NULL ); INSERT INTO invoice_line_items VALUES ('raw-hours', 5, 'hours', 10000, 50000), ('stored-minutes', 300, 'hours', 10000, 50000), ('units', 5, 'units', 10000, 50000); `); const migration = readFileSync( join( import.meta.dir, "..", "migrations", "0011_normalize_cli_invoice_hours.sql", ), "utf8", ); db.exec(migration); const rows = db .query("SELECT id, quantity FROM invoice_line_items ORDER BY id") .all(); expect(rows).toEqual([ { id: "raw-hours", quantity: 300 }, { id: "stored-minutes", quantity: 300 }, { id: "units", quantity: 5 }, ]); db.close(); });