2017-06-27 12:15:00 -05:00

67 lines
1.3 KiB
JavaScript

import chai from "chai";
import path from "path";
import decache from "decache";
const DATA_ES2015 = require.resolve("./__data__/es2015");
describe("babel-register", function() {
let babelRegister;
let oldCompiler;
function setupRegister(config = {}) {
babelRegister = require("../lib/node");
babelRegister.default(
Object.assign(
{
presets: [path.join(__dirname, "../../babel-preset-es2015")],
babelrc: false,
},
config,
),
);
}
function revertRegister() {
if (babelRegister) {
babelRegister.revert();
babelRegister = null;
}
}
before(() => {
const js = require("default-require-extensions/js");
oldCompiler = require.extensions[".js"];
require.extensions[".js"] = js;
});
after(() => {
require.extensions[".js"] = oldCompiler;
});
afterEach(() => {
revertRegister();
decache(DATA_ES2015);
});
it("registers correctly", () => {
setupRegister();
chai.expect(require(DATA_ES2015)).to.be.ok;
});
it("reverts correctly", () => {
setupRegister();
chai.expect(require(DATA_ES2015)).to.be.ok;
decache(DATA_ES2015);
revertRegister();
chai
.expect(() => {
require(DATA_ES2015);
})
.to.throw(SyntaxError);
});
});