Don't mutate @babel/register options (#14107)
This commit is contained in:
parent
ed3036d11c
commit
d158a48945
@ -5,7 +5,10 @@
|
||||
const hook = require("./hook");
|
||||
const { LocalClient } = require("./worker-client");
|
||||
|
||||
const register = hook.register.bind(null, new LocalClient());
|
||||
const client = new LocalClient();
|
||||
function register(opts = {}) {
|
||||
return hook.register(client, { ...opts });
|
||||
}
|
||||
|
||||
module.exports = Object.assign(register, {
|
||||
revert: hook.revert,
|
||||
|
||||
@ -118,7 +118,33 @@ describe("@babel/register", function () {
|
||||
});
|
||||
}
|
||||
|
||||
buildTests(require.resolve(".."));
|
||||
const { setupRegister } = buildTests(require.resolve(".."));
|
||||
|
||||
it("does not mutate options", () => {
|
||||
const proxyHandler = {
|
||||
defineProperty: jest.fn(Reflect.defineProperty),
|
||||
deleteProperty: jest.fn(Reflect.deleteProperty),
|
||||
set: jest.fn(Reflect.set),
|
||||
};
|
||||
|
||||
setupRegister(
|
||||
new Proxy(
|
||||
{
|
||||
babelrc: true,
|
||||
sourceMaps: false,
|
||||
cwd: path.dirname(testFileMjs),
|
||||
extensions: [".js"],
|
||||
},
|
||||
proxyHandler,
|
||||
),
|
||||
);
|
||||
|
||||
currentHook(testFileContent, testFile);
|
||||
|
||||
expect(proxyHandler.defineProperty).not.toHaveBeenCalled();
|
||||
expect(proxyHandler.deleteProperty).not.toHaveBeenCalled();
|
||||
expect(proxyHandler.set).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@ -344,6 +370,32 @@ describe("@babel/register", function () {
|
||||
expect(convertSourceMap).toMatch("/* transformed */");
|
||||
});
|
||||
|
||||
test("does not mutate options", () => {
|
||||
const proxyHandler = {
|
||||
defineProperty: jest.fn(Reflect.defineProperty),
|
||||
deleteProperty: jest.fn(Reflect.deleteProperty),
|
||||
set: jest.fn(Reflect.set),
|
||||
};
|
||||
|
||||
setupRegister(
|
||||
new Proxy(
|
||||
{
|
||||
babelrc: true,
|
||||
sourceMaps: false,
|
||||
cwd: path.dirname(testFileMjs),
|
||||
extensions: [".js"],
|
||||
},
|
||||
proxyHandler,
|
||||
),
|
||||
);
|
||||
|
||||
currentHook(testFileContent, testFile);
|
||||
|
||||
expect(proxyHandler.defineProperty).not.toHaveBeenCalled();
|
||||
expect(proxyHandler.deleteProperty).not.toHaveBeenCalled();
|
||||
expect(proxyHandler.set).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
return { setupRegister, revertRegister };
|
||||
}
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user