diff --git a/CHANGELOG.md b/CHANGELOG.md index cc61cba71..842211c3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ - Add support for TypeScript 4.6, #1877. - Support copying `@param` comments for nested members that target union and intersection types, #1876. +### Bug Fixes + +- Fixed validation for `--requiredToBeDocumented` option, #1872. + ## v0.22.12 (2022-02-20) ### Features diff --git a/src/lib/utils/options/sources/typedoc.ts b/src/lib/utils/options/sources/typedoc.ts index 883b478da..039cfe4e9 100644 --- a/src/lib/utils/options/sources/typedoc.ts +++ b/src/lib/utils/options/sources/typedoc.ts @@ -354,7 +354,7 @@ export function addTypeDocOptions(options: Pick) { ); for (const kind of values) { - if (validValues.includes(kind)) { + if (!validValues.includes(kind)) { throw new Error( `'${kind}' is an invalid value for 'requiredToBeDocumented'. Must be one of: ${validValues.join( ", " diff --git a/src/test/utils/options/default-options.test.ts b/src/test/utils/options/default-options.test.ts index 0d8a25093..c7855ec3c 100644 --- a/src/test/utils/options/default-options.test.ts +++ b/src/test/utils/options/default-options.test.ts @@ -1,4 +1,4 @@ -import { ok, throws, strictEqual } from "assert"; +import { ok, throws, strictEqual, doesNotThrow } from "assert"; import { BUNDLED_THEMES } from "shiki"; import { Logger, Options } from "../../../lib/utils"; @@ -54,4 +54,18 @@ describe("Default Options", () => { throws(() => opts.setValue("markedOptions", [])); }); }); + + describe("requiredToBeDocumented", () => { + it("Works with valid values", () => { + doesNotThrow(() => + opts.setValue("requiredToBeDocumented", ["Enum"]) + ); + }); + + it("Throws on invalid values", () => { + throws(() => + opts.setValue("requiredToBeDocumented", ["Enum2" as never]) + ); + }); + }); });