Add tests to test the plugin ordering. (#5571)
This commit is contained in:
@@ -2,6 +2,7 @@ import * as babel from "../lib/index";
|
||||
import buildExternalHelpers from "../lib/tools/build-external-helpers";
|
||||
import sourceMap from "source-map";
|
||||
import assert from "assert";
|
||||
import path from "path";
|
||||
import Plugin from "../lib/config/plugin";
|
||||
import generator from "babel-generator";
|
||||
|
||||
@@ -271,6 +272,77 @@ describe("api", function () {
|
||||
|
||||
});
|
||||
|
||||
it("complex plugin and preset ordering", function() {
|
||||
function pushPlugin(str) {
|
||||
return {
|
||||
visitor: {
|
||||
Program(path) {
|
||||
path.pushContainer("body", babel.types.expressionStatement(babel.types.identifier(str)));
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function pushPreset(str) {
|
||||
return { plugins: [pushPlugin(str)] };
|
||||
}
|
||||
|
||||
const result = babel.transform("", {
|
||||
filename: path.join(__dirname, "fixtures", "config", "complex-plugin-config", "file.js"),
|
||||
presets: [
|
||||
pushPreset("argone"),
|
||||
pushPreset("argtwo"),
|
||||
],
|
||||
env: {
|
||||
development: {
|
||||
passPerPreset: true,
|
||||
presets: [
|
||||
pushPreset("argthree"),
|
||||
pushPreset("argfour"),
|
||||
],
|
||||
env: {
|
||||
development: {
|
||||
passPerPreset: true,
|
||||
presets: [
|
||||
pushPreset("argfive"),
|
||||
pushPreset("argsix"),
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
assert.equal(result.code, [
|
||||
"argtwo;",
|
||||
"argone;",
|
||||
"eleven;",
|
||||
"twelve;",
|
||||
"one;",
|
||||
"two;",
|
||||
"five;",
|
||||
"six;",
|
||||
"three;",
|
||||
"four;",
|
||||
"seventeen;",
|
||||
"eighteen;",
|
||||
"nineteen;",
|
||||
"twenty;",
|
||||
"thirteen;",
|
||||
"fourteen;",
|
||||
"fifteen;",
|
||||
"sixteen;",
|
||||
"argfive;",
|
||||
"argsix;",
|
||||
"argthree;",
|
||||
"argfour;",
|
||||
"seven;",
|
||||
"eight;",
|
||||
"nine;",
|
||||
"ten;",
|
||||
].join("\n"));
|
||||
});
|
||||
|
||||
it("source map merging", function () {
|
||||
const result = babel.transform([
|
||||
/* eslint-disable max-len */
|
||||
|
||||
21
packages/babel-core/test/fixtures/config/complex-plugin-config/.babelignore
vendored
Normal file
21
packages/babel-core/test/fixtures/config/complex-plugin-config/.babelignore
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
one.js
|
||||
two.js
|
||||
three.js
|
||||
four.js
|
||||
five.js
|
||||
six.js
|
||||
seven.js
|
||||
eight.js
|
||||
nine.js
|
||||
ten.js
|
||||
eleven.js
|
||||
twelve.js
|
||||
thirteen.js
|
||||
fourteen.js
|
||||
fifteen.js
|
||||
sixteen.js
|
||||
seventeen.js
|
||||
eighteen.js
|
||||
nineteen.js
|
||||
twenty.js
|
||||
plugin.js
|
||||
39
packages/babel-core/test/fixtures/config/complex-plugin-config/.babelrc
vendored
Normal file
39
packages/babel-core/test/fixtures/config/complex-plugin-config/.babelrc
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
extends: "./extended.babelrc",
|
||||
plugins: [
|
||||
"./one",
|
||||
"./two",
|
||||
],
|
||||
presets: [{
|
||||
plugins: [
|
||||
"./three",
|
||||
"./four",
|
||||
],
|
||||
}, {
|
||||
plugins: [
|
||||
"./five",
|
||||
"./six",
|
||||
],
|
||||
}, {
|
||||
passPerPreset: true,
|
||||
presets: [{
|
||||
plugins: [
|
||||
"./seven",
|
||||
"./eight",
|
||||
],
|
||||
}, {
|
||||
plugins: [
|
||||
"./nine",
|
||||
"./ten",
|
||||
],
|
||||
}],
|
||||
}],
|
||||
env: {
|
||||
development: {
|
||||
plugins: [
|
||||
"./eleven",
|
||||
"./twelve",
|
||||
]
|
||||
},
|
||||
},
|
||||
}
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eight.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eight.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("eight");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eighteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eighteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("eighteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eleven.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/eleven.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("eleven");
|
||||
26
packages/babel-core/test/fixtures/config/complex-plugin-config/extended.babelrc
vendored
Normal file
26
packages/babel-core/test/fixtures/config/complex-plugin-config/extended.babelrc
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
plugins: [
|
||||
"./thirteen",
|
||||
"./fourteen",
|
||||
],
|
||||
presets: [{
|
||||
plugins: [
|
||||
"./fifteen",
|
||||
"./sixteen",
|
||||
],
|
||||
}],
|
||||
env: {
|
||||
development: {
|
||||
plugins: [
|
||||
"./seventeen",
|
||||
"./eighteen",
|
||||
],
|
||||
presets: [{
|
||||
plugins: [
|
||||
"./nineteen",
|
||||
"./twenty",
|
||||
],
|
||||
}],
|
||||
},
|
||||
},
|
||||
}
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/fifteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/fifteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("fifteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/five.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/five.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("five");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/four.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/four.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("four");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/fourteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/fourteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("fourteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/nine.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/nine.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("nine");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/nineteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/nineteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("nineteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/one.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/one.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("one");
|
||||
13
packages/babel-core/test/fixtures/config/complex-plugin-config/plugin.js
vendored
Normal file
13
packages/babel-core/test/fixtures/config/complex-plugin-config/plugin.js
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
module.exports = function(str) {
|
||||
return function(babel) {
|
||||
return {
|
||||
visitor: {
|
||||
Program: function(path) {
|
||||
path.pushContainer("body", [
|
||||
babel.types.expressionStatement(babel.types.identifier(str)),
|
||||
]);
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
};
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/seven.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/seven.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("seven");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/seventeen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/seventeen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("seventeen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/six.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/six.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("six");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/sixteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/sixteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("sixteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/ten.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/ten.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("ten");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/thirteen.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/thirteen.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("thirteen");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/three.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/three.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("three");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/twelve.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/twelve.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("twelve");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/twenty.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/twenty.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("twenty");
|
||||
1
packages/babel-core/test/fixtures/config/complex-plugin-config/two.js
vendored
Normal file
1
packages/babel-core/test/fixtures/config/complex-plugin-config/two.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
module.exports = require("./plugin")("two");
|
||||
Reference in New Issue
Block a user