import { describe, expect, it } from "vitest";
import { createPluginRecord } from "../plugins/status.test-helpers.js";
import { formatPluginLine } from "./plugins-list-format.js";

describe("formatPluginLine", () => {
  it("shows imported state in verbose output", () => {
    const output = formatPluginLine(
      createPluginRecord({
        id: "demo",
        name: "Demo Plugin",
        imported: false,
        activated: true,
        explicitlyEnabled: false,
      }),
      true,
    );

    expect(output).toContain("activated: yes");
    expect(output).toContain("imported: no");
    expect(output).toContain("explicitly enabled: no");
  });

  it("sanitizes activation reasons in verbose output", () => {
    const output = formatPluginLine(
      createPluginRecord({
        id: "demo",
        name: "Demo Plugin",
        activated: true,
        activationSource: "auto",
        activationReason: "\u001B[31mconfigured\nnext\tstep",
      }),
      true,
    );

    expect(output).toContain("activation reason: configured\\nnext\\tstep");
    expect(output).not.toContain("\u001B[31m");
    expect(output.match(/activation reason:/g)).toHaveLength(1);
  });
});
