import { expect, test } from "@playwright/test";
import { createCase, openCaseOnStep, patchProfile } from "./helpers";

test("step 7 Carrier shortlist: needs at least one appointed path", async ({ request, page }) => {
  const created = await createCase(request);
  const atSeven = await patchProfile(request, created.caseId, {
    name: "Pat Lee",
    state: "FL",
    intent: "mortgage_protection",
    coverage_on_whom: "primary",
    age: 40,
    loan_balance: 180000,
    height_ft_in: "5'8\"",
    weight_lb: 160,
    tobacco_answered: true,
    tobacco_products: ["None"],
    diseases_complete: true,
    beneficiary_relationship: "self",
    annual_income: 85000,
    decision_result: {
      offer_family: "si_level",
      reasons: ["illustrative"],
      drivers: [],
      suggested_next_step: "agent",
    },
  });
  expect(atSeven.process.step).toBe(7);
  expect(atSeven.process.missingRequired).toEqual(expect.arrayContaining(["carrier_shortlist"]));

  await openCaseOnStep(page, atSeven.caseId);
  await expect(page.getByTestId("process-current")).toHaveText("Carrier shortlist");
  await expect(page.getByTestId("process-exit-gate")).toContainText("At least one path or postpone");

  const listed = await patchProfile(request, created.caseId, {
    carrier_shortlist: ["Appointed SI carrier A"],
  });
  expect((listed.profile.carrier_shortlist as string[]).length).toBeGreaterThan(0);
  expect(listed.process.step).toBe(8);
});
