2018-03-03 10:58:19 +01:00

104 lines
2.3 KiB
JavaScript

import sourceMapSupport from "source-map-support";
const DATA_ES2015 = require.resolve("./__data__/es2015");
const GEN_ERROR = require.resolve("./__data__/gen_error");
describe.skip("@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;
}
}
beforeAll(() => {
const js = require("default-require-extensions/js");
oldCompiler = require.extensions[".js"];
require.extensions[".js"] = js;
sourceMapSupport.install({
emptyCacheBetweenOperations: true,
});
});
afterAll(() => {
require.extensions[".js"] = oldCompiler;
});
afterEach(() => {
revertRegister();
delete require.cache[DATA_ES2015];
delete require.cache[GEN_ERROR];
});
it("registers correctly", () => {
setupRegister();
expect(require(DATA_ES2015)).toBeTruthy();
});
it("reverts correctly", () => {
setupRegister();
expect(require(DATA_ES2015)).toBeTruthy();
delete require.cache[DATA_ES2015];
revertRegister();
expect(() => {
require(DATA_ES2015);
}).toThrow(SyntaxError);
});
it("does not install source map support if asked not to", () => {
setupRegister({
sourceMaps: false,
});
let gen_error;
expect((gen_error = require(GEN_ERROR))).toBeDefined();
expect(gen_error()).toEqual(/gen_error\.js:8:34/);
});
it("installs source map support by default", () => {
setupRegister();
let gen_error;
expect((gen_error = require(GEN_ERROR))).toBeDefined();
expect(gen_error()).toEqual(/gen_error\.js:2:86/);
});
it("installs source map support when requested", () => {
setupRegister({
sourceMaps: "both",
});
let gen_error;
expect((gen_error = require(GEN_ERROR))).toBeDefined();
expect(gen_error()).toEqual(/gen_error\.js:2:86/);
});
});