import { describe, expect, it } from "vitest"; import { SEVERITIES, compareSeverity, maxSeverity, severityLevel, severitySchema, sortBySeverity, } from "../severity.js"; describe("severity helpers", () => { it("keeps the canonical four-level vocabulary", () => { expect(SEVERITIES).toEqual(["critical", "serious", "moderate", "minor"]); expect(severitySchema.safeParse("warning").success).toBe(false); }); it("derives two-level CI/editor level from severity", () => { expect(severityLevel("critical")).toBe("error"); expect(severityLevel("serious")).toBe("error"); expect(severityLevel("moderate")).toBe("warn"); expect(severityLevel("minor")).toBe("warn"); }); it("compares and sorts from most severe to least severe", () => { expect(compareSeverity("critical", "minor")).toBeLessThan(0); expect(maxSeverity("moderate", "serious")).toBe("serious"); expect(sortBySeverity(["minor", "critical", "moderate"], (item) => item)).toEqual([ "critical", "moderate", "minor", ]); }); });