From 40db92617030342d89cbbe55c630aa4783376b73 Mon Sep 17 00:00:00 2001 From: Jovica Markoski <57507433+JMarkoski@users.noreply.github.com> Date: Fri, 3 Apr 2020 21:41:32 +0200 Subject: [PATCH] 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 --- .../babel-preset-env/src/normalize-options.js | 5 ++-- .../test/normalize-options.spec.js | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index 5abac3c9bbae..1095880a3eba 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -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 diff --git a/packages/babel-preset-env/test/normalize-options.spec.js b/packages/babel-preset-env/test/normalize-options.spec.js index abe1ba25b9ea..62636e4882cf 100644 --- a/packages/babel-preset-env/test/normalize-options.spec.js +++ b/packages/babel-preset-env/test/normalize-options.spec.js @@ -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(); + }); + }); });