import { describe, it, expect } from "vitest"; import { checkEnvironment } from "../lib/preflight.js"; import type { CliConfig } from "../lib/config.js"; describe("checkEnvironment", () => { it("returns success when all required vars are present", () => { const config: CliConfig = { databaseUrl: "postgres://localhost/atbb", forumDid: "did:plc:test", pdsUrl: "https://bsky.social", forumHandle: "forum.example.com", forumPassword: "secret", missing: [], }; const result = checkEnvironment(config); expect(result.ok).toBe(true); expect(result.errors).toHaveLength(0); }); it("returns errors when required vars are missing", () => { const config: CliConfig = { databaseUrl: "", forumDid: "", pdsUrl: "https://bsky.social", forumHandle: "", forumPassword: "", missing: ["DATABASE_URL", "FORUM_DID", "FORUM_HANDLE", "FORUM_PASSWORD"], }; const result = checkEnvironment(config); expect(result.ok).toBe(false); expect(result.errors).toContain("DATABASE_URL"); expect(result.errors).toContain("FORUM_DID"); expect(result.errors).toContain("FORUM_HANDLE"); expect(result.errors).toContain("FORUM_PASSWORD"); }); });