import { expect, test } from "bun:test";
import { Database } from "bun:sqlite";
import { readFileSync } from "node:fs";
const migration = readFileSync(new URL("../../../migrations/0047_billing_release.sql", import.meta.url), "utf8");
test("0047 backfills past_due_since for subscriptions already past_due at deploy", () => {
const db = new Database(":memory:");
db.exec(`CREATE TABLE usage_days (account_id TEXT, meter TEXT, day TEXT, quantity REAL);
CREATE TABLE billing_customers (account_id TEXT PRIMARY KEY, stripe_customer_id TEXT, subscription_status TEXT);
INSERT INTO billing_customers VALUES ('a', 'cus_a', 'past_due'), ('b', 'cus_b', 'active');`);
const before = Date.now() - 1000;
db.exec(migration);
const rows = db.query("SELECT past_due_since AS since FROM billing_customers ORDER BY account_id").all() as {
since: number | null;
}[];
expect(rows[0].since).toBeGreaterThanOrEqual(before);
expect(rows[0].since).toBeLessThanOrEqual(Date.now() + 1000);
expect(rows[1].since).toBeNull();
});