Enable babel-register tests again (#7487)
This commit is contained in:
parent
653318b7e4
commit
f43bf7fcd5
5
packages/babel-register/test/__data__/.babelrc
Normal file
5
packages/babel-register/test/__data__/.babelrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"plugins": [
|
||||||
|
"@babel/transform-modules-commonjs"
|
||||||
|
]
|
||||||
|
}
|
||||||
@ -1,4 +0,0 @@
|
|||||||
/* eslint-disable */
|
|
||||||
module.exports = () => { 'use strict'; let error; try { const impossible_result = ''.toFixed(); } catch (e) { error = e; } return error.stack.toString().replace('\n', ''); }
|
|
||||||
|
|
||||||
|
|
||||||
@ -28,13 +28,13 @@ function resetCache() {
|
|||||||
process.env.BABEL_DISABLE_CACHE = oldBabelDisableCacheValue;
|
process.env.BABEL_DISABLE_CACHE = oldBabelDisableCacheValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
describe.skip("@babel/register - caching", () => {
|
describe("@babel/register - caching", () => {
|
||||||
describe("cache", () => {
|
describe("cache", () => {
|
||||||
let load, get, save;
|
let load, get, save;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
// Since lib/cache is a singleton we need to fully reload it
|
// Since lib/cache is a singleton we need to fully reload it
|
||||||
delete require.cache[require.resolve("../lib/cache")];
|
jest.resetModuleRegistry();
|
||||||
const cache = require("../lib/cache");
|
const cache = require("../lib/cache");
|
||||||
|
|
||||||
load = cache.load;
|
load = cache.load;
|
||||||
|
|||||||
@ -1,31 +1,46 @@
|
|||||||
import sourceMapSupport from "source-map-support";
|
import fs from "fs";
|
||||||
|
|
||||||
const DATA_ES2015 = require.resolve("./__data__/es2015");
|
let currentHook;
|
||||||
const GEN_ERROR = require.resolve("./__data__/gen_error");
|
let currentOptions;
|
||||||
|
let sourceMapSupport = false;
|
||||||
|
|
||||||
describe.skip("@babel/register", function() {
|
const registerFile = require.resolve("../lib/node");
|
||||||
|
const testFile = require.resolve("./__data__/es2015");
|
||||||
|
const testFileContent = fs.readFileSync(testFile);
|
||||||
|
|
||||||
|
jest.mock("pirates", () => {
|
||||||
|
return {
|
||||||
|
addHook(hook, opts) {
|
||||||
|
currentHook = hook;
|
||||||
|
currentOptions = opts;
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
currentHook = null;
|
||||||
|
currentOptions = null;
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
jest.mock("source-map-support", () => {
|
||||||
|
return {
|
||||||
|
install() {
|
||||||
|
sourceMapSupport = true;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
const defaultOptions = {
|
||||||
|
exts: [".js", ".jsx", ".es6", ".es", ".mjs"],
|
||||||
|
ignoreNodeModules: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
describe("@babel/register", function() {
|
||||||
let babelRegister;
|
let babelRegister;
|
||||||
let oldCompiler;
|
|
||||||
|
|
||||||
function setupRegister(config = {}) {
|
function setupRegister(config = { babelrc: false }) {
|
||||||
babelRegister = require("../lib/node");
|
babelRegister = require(registerFile);
|
||||||
babelRegister.default(
|
babelRegister.default(config);
|
||||||
Object.assign(
|
|
||||||
{
|
|
||||||
plugins: [
|
|
||||||
{
|
|
||||||
visitor: {
|
|
||||||
ImportDeclaration(path) {
|
|
||||||
path.remove();
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
babelrc: false,
|
|
||||||
},
|
|
||||||
config,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function revertRegister() {
|
function revertRegister() {
|
||||||
@ -35,69 +50,79 @@ describe.skip("@babel/register", function() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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(() => {
|
afterEach(() => {
|
||||||
revertRegister();
|
revertRegister();
|
||||||
delete require.cache[DATA_ES2015];
|
currentHook = null;
|
||||||
delete require.cache[GEN_ERROR];
|
currentOptions = null;
|
||||||
|
sourceMapSupport = false;
|
||||||
|
jest.resetModuleRegistry();
|
||||||
});
|
});
|
||||||
|
|
||||||
it("registers correctly", () => {
|
test("registers hook correctly", () => {
|
||||||
setupRegister();
|
setupRegister();
|
||||||
|
|
||||||
expect(require(DATA_ES2015)).toBeTruthy();
|
expect(typeof currentHook).toBe("function");
|
||||||
|
expect(currentOptions).toEqual(defaultOptions);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("reverts correctly", () => {
|
test("unregisters hook correctly", () => {
|
||||||
setupRegister();
|
setupRegister();
|
||||||
|
|
||||||
expect(require(DATA_ES2015)).toBeTruthy();
|
|
||||||
delete require.cache[DATA_ES2015];
|
|
||||||
|
|
||||||
revertRegister();
|
revertRegister();
|
||||||
|
|
||||||
expect(() => {
|
expect(currentHook).toBeNull();
|
||||||
require(DATA_ES2015);
|
expect(currentOptions).toBeNull();
|
||||||
}).toThrow(SyntaxError);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("does not install source map support if asked not to", () => {
|
test("installs source map support by default", () => {
|
||||||
|
setupRegister();
|
||||||
|
|
||||||
|
currentHook("const a = 1;", testFile);
|
||||||
|
|
||||||
|
expect(sourceMapSupport).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("installs source map support when requested", () => {
|
||||||
setupRegister({
|
setupRegister({
|
||||||
|
babelrc: false,
|
||||||
|
sourceMaps: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
currentHook("const a = 1;", testFile);
|
||||||
|
|
||||||
|
expect(sourceMapSupport).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
test("does not install source map support if asked not to", () => {
|
||||||
|
setupRegister({
|
||||||
|
babelrc: false,
|
||||||
sourceMaps: false,
|
sourceMaps: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
let gen_error;
|
currentHook("const a = 1;", testFile);
|
||||||
expect((gen_error = require(GEN_ERROR))).toBeDefined();
|
|
||||||
expect(gen_error()).toEqual(/gen_error\.js:8:34/);
|
expect(sourceMapSupport).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("installs source map support by default", () => {
|
test("hook transpiles with config", () => {
|
||||||
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({
|
setupRegister({
|
||||||
sourceMaps: "both",
|
babelrc: false,
|
||||||
|
sourceMaps: false,
|
||||||
|
plugins: ["@babel/transform-modules-commonjs"],
|
||||||
});
|
});
|
||||||
|
|
||||||
let gen_error;
|
const result = currentHook(testFileContent, testFile);
|
||||||
expect((gen_error = require(GEN_ERROR))).toBeDefined();
|
|
||||||
expect(gen_error()).toEqual(/gen_error\.js:2:86/);
|
expect(result).toBe('"use strict";\n\nrequire("assert");');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("hook transpiles with babelrc", () => {
|
||||||
|
setupRegister({
|
||||||
|
babelrc: true,
|
||||||
|
sourceMaps: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const result = currentHook(testFileContent, testFile);
|
||||||
|
|
||||||
|
expect(result).toBe('"use strict";\n\nrequire("assert");');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user