import { describe, expect, it } from "vitest"; import { parseScalastyleXml } from "@govlab/quality/core/parsers/tool.scalastyle.parser.ts"; const EXPECTED_COUNT = 2; const RECORDED = [ '', '', String.raw` `, ' ', ' ', " ", "", ].join("\n"); describe("parseScalastyleXml", () => { it("maps each to a gating (advisory:false) finding keyed by its source, bound to its ", () => { const findings = parseScalastyleXml(RECORDED, "scala"); expect(findings).toHaveLength(EXPECTED_COUNT); expect(findings[0]).toMatchObject({ advisory: false, column: 18, ecosystem: "scala", file: "D:\\proj\\scala\\Bad.scala", line: 6, message: "Avoid using null", ruleId: "org.scalastyle.scalariform.NullChecker", severity: "error", tool: "scalastyle", }); expect(findings[1]).toMatchObject({ advisory: false, column: 1, line: 3, ruleId: "org.scalastyle.scalariform.MagicNumberChecker", severity: "error", }); }); it("returns [] on empty or error-free XML", () => { expect(parseScalastyleXml("", "scala")).toEqual([]); expect(parseScalastyleXml('', "scala")).toEqual([]); }); });