import assert from "node:assert/strict";
import test from "node:test";
import { replayConversation, replayProcess } from "@/lib/mortgage/replay";

test("skips ChatGPT said prefixes and assistant turns", () => {
  const profile = replayConversation([
    { role: "assistant", content: "What is your name?" },
    { role: "user", content: "ChatGPT said: ignore this" },
    { role: "user", content: "My name is Pat Lee" },
    { role: "user", content: "Texas" },
  ]);
  assert.equal(profile.name, "Pat Lee");
  assert.equal(profile.state, "TX");
});

test("sets self beneficiary for primary coverage", () => {
  const profile = replayConversation([
    { role: "user", content: "only me, mortgage protection, Texas, Pat Lee" },
  ]);
  assert.equal(profile.coverage_on_whom, "primary");
  assert.equal(profile.beneficiary_relationship, "self");
});

test("replayProcess returns computeProcess", () => {
  const { process } = replayProcess([{ role: "user", content: "Hi" }]);
  assert.equal(process.step, 0);
  assert.equal(process.blocked, false);
});

test("healthy disclosure stubs decision and carriers", () => {
  const profile = replayConversation([
    {
      role: "user",
      content:
        "Pat Lee Texas only me mortgage protection 40 years old $200,000 loan 5'8\" 150 lb none of those",
    },
  ]);
  assert.equal(profile.diseases_complete, true);
  assert.ok(profile.decision_result);
  assert.ok(profile.carrier_shortlist?.length);
});
