import { beforeEach, describe, expect, mock, test } from "bun:test";
import { fakeD1 } from "../metering/fake-d1.test-helper";
import { scopedTestState } from "./scoped.test-helper";
let d1 = fakeD1();
const released: string[] = [];
mock.module("cloudflare:workers", () => ({
env: {
get DB() {
return d1.binding;
},
},
waitUntil: () => undefined,
}));
const scoped = scopedTestState();
scoped.install();
type Row = [string, string, string, string, number, number, number | null];
function addSites(...rows: Row[]): void {
for (const [id, owner, domain, status, claimed, updated, verified] of rows) {
scoped.site({
id,
owner_id: owner,
custom_domain: domain,
domain_status: status,
domain_claimed_at: claimed,
updated_at: updated,
domain_verified_at: verified,
});
}
}
mock.module("./site", () => ({ releaseSiteDomain: async (site: { id: string }) => void released.push(site.id) }));
const { sweepCustomDomains } = await import("./domain-sweep");
const { DOMAIN_GRACE_MS, saveDomainAddon } = await import("../billing/domain-addon");
const HOUR = 60 * 60 * 1000;
const NOW = 1_800_000_000_000;
beforeEach(() => {
d1 = fakeD1();