Daniel Tschinder fce92fa1ad Switch to pirates for babel-register. (#3670)
* Switch to pirates for babel-register.

Pirates is a simple module that enables easy require hooking. It makes sure that your require hook works properly. It also makes the implimentation of babel-register a lot simpler.

For more on pirates: http://ariporad.link/piratesjs

* Use modified version of pirates.

* Switch back to stable version

* Initial tests for babel-register

* Fix tests to work in new test env

* Fix for new ignore behaviour

* Update pirates to 3.0.1
2017-04-24 00:25:44 +02:00

58 lines
1.2 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);
});
});