48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
let assert = require("assert");
|
|
let async = require("async");
|
|
let babel = require("../lib/api/node");
|
|
let fs = require("fs");
|
|
let path = require("path");
|
|
|
|
// Test that plugins & presets are resolved relative to `filename`.
|
|
suite("addon resolution", function () {
|
|
test("addon resolution", function (done) {
|
|
let fixtures = {};
|
|
let paths = {};
|
|
|
|
paths.fixtures = path.join(
|
|
__dirname,
|
|
"fixtures",
|
|
"resolution",
|
|
"resolve-addons-relative-to-file"
|
|
);
|
|
|
|
async.each(
|
|
["actual", "expected"],
|
|
function (key, mapDone) {
|
|
paths[key] = path.join(paths.fixtures, key + ".js");
|
|
fs.readFile(paths[key], { encoding: "utf8" }, function (err, data) {
|
|
if (err) return mapDone(err);
|
|
fixtures[key] = data.trim();
|
|
mapDone();
|
|
});
|
|
},
|
|
fixturesReady
|
|
);
|
|
|
|
function fixturesReady (err) {
|
|
if (err) return done(err);
|
|
|
|
let actual = babel.transform(fixtures.actual, {
|
|
filename: paths.actual,
|
|
plugins: ["addons/plugin"],
|
|
presets: ["addons/preset"],
|
|
}).code;
|
|
|
|
assert.equal(actual, fixtures.expected);
|
|
done();
|
|
}
|
|
// fixturesReady
|
|
});
|
|
});
|