fix corner cases in test/reduce (#3709)

This commit is contained in:
Alex Lam S.L
2020-02-07 02:41:07 +00:00
committed by GitHub
parent 470a7d4df1
commit 44499a6643
3 changed files with 83 additions and 21 deletions

60
test/mocha/reduce.js Normal file
View File

@@ -0,0 +1,60 @@
var assert = require("assert");
var exec = require("child_process").exec;
var reduce_test = require("../reduce");
describe("test/reduce.js", function() {
it("Should handle test cases with --toplevel", function() {
var result = reduce_test([
"var Infinity = 42;",
"console.log(Infinity);",
].join("\n"), {
toplevel: true,
});
if (result.error) throw result.error;
assert.strictEqual(result.code, [
"// Can't reproduce test failure with minify options provided:",
'// {"toplevel":true}',
"",
].join("\n"));
});
it("Should handle test result of NaN", function() {
var result = reduce_test("throw 0 / 0;");
if (result.error) throw result.error;
assert.strictEqual(result.code, [
"// Can't reproduce test failure with minify options provided:",
'// {"compress":{},"mangle":false}',
"",
].join("\n"));
});
it("Should print correct output for irreducible test case", function() {
var result = reduce_test([
"console.log(function f(a) {",
" return f.length;",
"}());",
].join("\n"), {
compress: {
keep_fargs: false,
},
mangle: false,
});
if (result.error) throw result.error;
assert.strictEqual(result.code, [
"console.log(function f(a) {",
" return f.length;",
"}());",
"// output: 1",
"// minify: 0",
'// options: {"compress":{"keep_fargs":false},"mangle":false}',
].join("\n"));
});
it("Should fail when invalid option is supplied", function() {
var result = reduce_test("", {
compress: {
unsafe_regex: true,
},
});
var err = result.error;
assert.ok(err instanceof Error);
assert.strictEqual(err.stack.split(/\n/)[0], "DefaultsError: `unsafe_regex` is not a supported option");
});
});