2017-10-16 22:49:56 -04:00

73 lines
1.4 KiB
JavaScript

import chai from "chai";
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(
{
plugins: [
{
visitor: {
ImportDeclaration(path) {
path.remove();
},
},
},
],
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();
delete require.cache[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;
delete require.cache[DATA_ES2015];
revertRegister();
chai
.expect(() => {
require(DATA_ES2015);
})
.to.throw(SyntaxError);
});
});