mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 04:10:04 +02:00
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
jest.autoMockOff();
|
|
|
|
const babel = require("@babel/core");
|
|
const helper = require("../src");
|
|
|
|
function getPath(source) {
|
|
let path;
|
|
|
|
babel.transform(source, {
|
|
babelrc: false,
|
|
plugins: [
|
|
function({ traverse }) {
|
|
(traverse.clearCache || traverse.cache.clear)();
|
|
return {
|
|
visitor: {
|
|
Program(programPath) {
|
|
path = programPath;
|
|
}
|
|
}
|
|
};
|
|
}
|
|
]
|
|
});
|
|
|
|
return path;
|
|
}
|
|
|
|
describe("babel-helper-mark-eval-scopes", () => {
|
|
it("getEvalScopes - should give a set of scopes which contains eval", () => {
|
|
const source = `
|
|
function foo() {
|
|
function bar() {
|
|
eval(";");
|
|
}
|
|
function baz() {
|
|
noeval();
|
|
}
|
|
}
|
|
`;
|
|
|
|
const program = getPath(source);
|
|
const evalScopes = [...helper.getEvalScopes(program)];
|
|
|
|
expect(evalScopes).toContain(program.scope);
|
|
expect(evalScopes).toContain(program.get("body.0.body.body.0").scope);
|
|
expect(evalScopes).not.toContain(program.get("body.0.body.body.1").scope);
|
|
});
|
|
});
|