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 hook = require("./hook");
|
||||||
const { LocalClient } = require("./worker-client");
|
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, {
|
module.exports = Object.assign(register, {
|
||||||
revert: hook.revert,
|
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 */");
|
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 };
|
return { setupRegister, revertRegister };
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user