import assert from "node:assert/strict";
import test from "node:test";
import { emptyProfile } from "@/lib/mortgage/schema";

async function call(env: { key?: string; disable?: string }) {
  const prevKey = process.env.OPENAI_API_KEY;
  const prevDisable = process.env.DISABLE_CHAT_MODEL;
  if (env.key) process.env.OPENAI_API_KEY = env.key;
  else delete process.env.OPENAI_API_KEY;
  if (env.disable) process.env.DISABLE_CHAT_MODEL = env.disable;
  else delete process.env.DISABLE_CHAT_MODEL;
  const { runChatModel } = await import("@/lib/openai");
  const out = await runChatModel({
    step: 0,
    profile: emptyProfile(),
    missing: ["state"],
    messages: [],
    userMessage: "Hi",
    knowledgeHits: [],
    verticalHits: [],
  });
  if (prevKey) process.env.OPENAI_API_KEY = prevKey;
  else delete process.env.OPENAI_API_KEY;
  if (prevDisable) process.env.DISABLE_CHAT_MODEL = prevDisable;
  else delete process.env.DISABLE_CHAT_MODEL;
  return out;
}

test("API-15 DISABLE_CHAT_MODEL=1 returns null even with key", async () => {
  const out = await call({ key: "sk-test", disable: "1" });
  assert.equal(out, null);
});
