import { expect, test } from "bun:test";
import { snapshotRunStatus } from "./health";

const base = { finishedAt: new Date("2026-07-23T06:05:00Z"), sitesOk: 3, sitesFailed: 0, error: null };

test("run terminé sans échec → ok", () => {
  expect(snapshotRunStatus(base)).toBe("ok");
});

test("run non terminé → running (même avec des compteurs à 0)", () => {
  expect(snapshotRunStatus({ ...base, finishedAt: null, sitesOk: 0 })).toBe("running");
});

test("succès ET échecs mélangés → partial", () => {
  expect(snapshotRunStatus({ ...base, sitesFailed: 2 })).toBe("partial");
});

test("échecs sans aucun succès → failed", () => {
  expect(snapshotRunStatus({ ...base, sitesOk: 0, sitesFailed: 2 })).toBe("failed");
});

test("erreur globale → failed même si sitesFailed=0", () => {
  expect(snapshotRunStatus({ ...base, error: "token broker 500" })).toBe("failed");
});
