From 7aecf807a3dd3a2df50a7abbb728e79aee1d51e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 9 Jan 2020 20:29:31 -0500 Subject: [PATCH] chore: add more test cases --- .../test/__snapshots__/option-manager.js.snap | 11 +++++++++++ packages/babel-core/test/option-manager.js | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/packages/babel-core/test/__snapshots__/option-manager.js.snap b/packages/babel-core/test/__snapshots__/option-manager.js.snap index 89112efc6f88..423a2dac00b8 100644 --- a/packages/babel-core/test/__snapshots__/option-manager.js.snap +++ b/packages/babel-core/test/__snapshots__/option-manager.js.snap @@ -1,5 +1,16 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`option-manager config plugin/preset flattening and overriding should throw when an option is following a preset 1`] = ` +"[BABEL] unknown: Unknown option: .useSpread. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options. +- Maybe you meant to use +\\"preset\\": [ + [\\"./fixtures/option-manager/babel-preset-bar\\", { + \\"useSpread\\": true +}] +] +To be a valid preset, its name and options should be wrapped in a pair of brackets" +`; + exports[`option-manager config plugin/preset flattening and overriding should throw when an option is provided as a plugin 1`] = ` "[BABEL] unknown: .useSpread is not a valid Plugin property - Maybe you meant to use diff --git a/packages/babel-core/test/option-manager.js b/packages/babel-core/test/option-manager.js index ca1ab31f40e7..880d80f411d7 100644 --- a/packages/babel-core/test/option-manager.js +++ b/packages/babel-core/test/option-manager.js @@ -49,6 +49,18 @@ describe("option-manager", () => { }).toThrowErrorMatchingSnapshot(); }); + it("should throw when an option is following a preset", () => { + expect(() => { + loadOptions({ + presets: [ + "./fixtures/option-manager/babel-plugin-foo", + "./fixtures/option-manager/babel-preset-bar", + { useSpread: true }, + ], + }); + }).toThrowErrorMatchingSnapshot(); + }); + it("should not throw when a preset string followed by valid preset object", () => { const { plugin } = makePlugin("my-plugin"); expect(