diff --git a/src/config.ts b/src/config.ts index 0974a75..14a363c 100644 --- a/src/config.ts +++ b/src/config.ts @@ -92,7 +92,10 @@ export function normalizeConfig( ignore: [...base.ignore], }; - if (Array.isArray(obj.disabledRules)) { + if (obj.disabledRules !== undefined) { + if (!Array.isArray(obj.disabledRules)) { + throw new Error("Invalid disabledRules; expected an array of rule ids."); + } config.disabledRules = obj.disabledRules.map(String); } if (Array.isArray(obj.enabledRules)) { diff --git a/test/config.test.ts b/test/config.test.ts index 660d9ef..a5fad9b 100644 --- a/test/config.test.ts +++ b/test/config.test.ts @@ -36,6 +36,12 @@ describe("normalizeConfig", () => { ); }); + it("rejects a non-array disabledRules value", () => { + expect(() => normalizeConfig({ disabledRules: "MCP001" })).toThrow( + /disabledRules.*array/i, + ); + }); + it("rejects an invalid severity override", () => { expect(() => normalizeConfig({ severityOverrides: { MCP001: "nope" } }),