import test from "node:test"; import assert from "node:assert/strict"; import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from "node:fs"; import { join } from "node:path"; import { tmpdir } from "node:os"; import { readHouseCredential } from "../house-credential.js"; function houseRoot(contents: string): string { const dir = mkdtempSync(join(tmpdir(), "sb-house-")); mkdirSync(join(dir, "config")); writeFileSync(join(dir, "config", "cloudflare-house.env"), contents); return dir; } test("parses master token + account id", () => { const dir = houseRoot("CLOUDFLARE_API_TOKEN=cfat_abc\nCLOUDFLARE_ACCOUNT_ID=acc-house\n"); try { assert.deepEqual(readHouseCredential(dir), { apiToken: "cfat_abc", accountId: "acc-house" }); } finally { rmSync(dir, { recursive: true, force: true }); } }); test("throws when the token key is absent", () => { const dir = houseRoot("CLOUDFLARE_ACCOUNT_ID=acc-house\n"); try { assert.throws(() => readHouseCredential(dir), /CLOUDFLARE_API_TOKEN/); } finally { rmSync(dir, { recursive: true, force: true }); } }); test("throws when the file is absent", () => { assert.throws(() => readHouseCredential("/no/such/root"), /cloudflare-house\.env/); });