test.social/core/reporters/card.reporter.test.ts

test.social/core/reporters/card.reporter.test.ts is a file in Codebase Testing. 21 lines of code and 0 definitions.

import { afterEach, describe, expect, it, vi } from "vitest";
import { conclude, say } from "@banes-lab/social-share/core/reporters/card.reporter.ts";
import process from "node:process";

describe("say and conclude", () => {
    afterEach(() => {
        vi.restoreAllMocks();
        process.exitCode = 0;
    });

    it("prints the clean line and passes when nothing was found", () => {
        const out = vi.spyOn(process.stdout, "write").mockReturnValue(true);
        say("hello");
        expect(conclude([], "clean")).toBe(true);
        expect(out.mock.calls.map(([text]) => text)).toStrictEqual(["hello\n", "clean\n"]);
    });

    it("prints every finding and fails the process", () => {
        const errors = vi.spyOn(process.stderr, "write").mockReturnValue(true);
        expect(conclude([{ card: "demo", message: "is broken." }], "clean")).toBe(false);
        expect(errors.mock.calls[0]?.[0]).toBe("  demo is broken.\n");
        expect(process.exitCode).toBe(1);
    });
});