Fixed useBuiltIns and modules validation when using 'false' as option (#11373)

* Fixed useBuiltIns and modules validation when using 'false' as option

* Added tests for 'validateUseBuiltInsOptions' and for 'validateModulesOption' when input is 'false'

Co-authored-by: Jovica Markoski <jovica@upshiftwork.com>
This commit is contained in:
Jovica Markoski 2020-04-03 21:41:32 +02:00 committed by GitHub
parent 2c31587aa1
commit 40db926170
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 3 deletions

View File

@ -167,8 +167,7 @@ export const validateModulesOption = (
modulesOpt: ModuleOption = ModulesOption.auto,
) => {
invariant(
ModulesOption[modulesOpt.toString()] ||
ModulesOption[modulesOpt.toString()] === ModulesOption.false,
ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,
`Invalid Option: The 'modules' option must be one of \n` +
` - 'false' to indicate no module processing\n` +
` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +
@ -184,7 +183,7 @@ export const validateUseBuiltInsOption = (
) => {
invariant(
UseBuiltInsOption[builtInsOpt.toString()] ||
UseBuiltInsOption[builtInsOpt.toString()] === UseBuiltInsOption.false,
builtInsOpt === UseBuiltInsOption.false,
`Invalid Option: The 'useBuiltIns' option must be either
'false' (default) to indicate no polyfill,
'"entry"' to indicate replacing the entry polyfill, or

View File

@ -6,6 +6,7 @@ const {
checkDuplicateIncludeExcludes,
validateBoolOption,
validateModulesOption,
validateUseBuiltInsOption,
normalizePluginName,
} = normalizeOptions;
describe("normalize-options", () => {
@ -242,10 +243,36 @@ describe("normalize-options", () => {
}).toThrow();
});
it("`'false'` option is invalid", () => {
expect(() => {
validateModulesOption("false");
}).toThrow();
});
it("array option is invalid", () => {
expect(() => {
validateModulesOption([]);
}).toThrow();
});
});
describe("validateUseBuiltInsOptions", () => {
it("usage option is valid", () => {
expect(validateUseBuiltInsOption("usage")).toBe("usage");
});
it("entry option is valid", () => {
expect(validateUseBuiltInsOption("entry")).toBe("entry");
});
it("`false` option returns false", () => {
expect(validateUseBuiltInsOption(false)).toBe(false);
});
it("`'false'` option is invalid", () => {
expect(() => {
validateUseBuiltInsOption("false");
}).toThrow();
});
});
});