aboutsummaryrefslogtreecommitdiff
path: root/test/mocha
diff options
context:
space:
mode:
authorAlex Lam S.L <alexlamsl@gmail.com>2017-04-19 04:27:13 +0800
committerGitHub <noreply@github.com>2017-04-19 04:27:13 +0800
commitb4b9305db0d3c4682848ed0a4214f1fee332a078 (patch)
tree487db01afdbe5d9b00225d22ea599cbbf46b6489 /test/mocha
parent28cfb65c47e7a2adeec35d8a78dd8bb0cf06af12 (diff)
downloadtracifyjs-b4b9305db0d3c4682848ed0a4214f1fee332a078.tar.gz
tracifyjs-b4b9305db0d3c4682848ed0a4214f1fee332a078.zip
fix parser bugs & CLI reporting (#1827)
fixes #1825
Diffstat (limited to 'test/mocha')
-rw-r--r--test/mocha/cli.js79
1 files changed, 77 insertions, 2 deletions
diff --git a/test/mocha/cli.js b/test/mocha/cli.js
index 7162c816..697c09a3 100644
--- a/test/mocha/cli.js
+++ b/test/mocha/cli.js
@@ -296,14 +296,89 @@ describe("bin/uglifyjs", function () {
assert.ok(err);
assert.strictEqual(stdout, "");
assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
- "Parse error at test/input/invalid/assign_3.js:1,18",
+ "Parse error at test/input/invalid/assign_3.js:1,17",
"console.log(3 || ++this);",
- " ^",
+ " ^",
+ "ERROR: Invalid use of ++ operator"
+ ].join("\n"));
+ done();
+ });
+ });
+ it("Should throw syntax error (++null)", function(done) {
+ var command = uglifyjscmd + ' test/input/invalid/assign_4.js';
+
+ exec(command, function (err, stdout, stderr) {
+ assert.ok(err);
+ assert.strictEqual(stdout, "");
+ assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
+ "Parse error at test/input/invalid/assign_4.js:1,0",
+ "++null",
+ "^",
"ERROR: Invalid use of ++ operator"
].join("\n"));
done();
});
});
+ it("Should throw syntax error (a.=)", function(done) {
+ var command = uglifyjscmd + ' test/input/invalid/dot_1.js';
+
+ exec(command, function (err, stdout, stderr) {
+ assert.ok(err);
+ assert.strictEqual(stdout, "");
+ assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
+ "Parse error at test/input/invalid/dot_1.js:1,2",
+ "a.=",
+ " ^",
+ "ERROR: Unexpected token: operator (=)"
+ ].join("\n"));
+ done();
+ });
+ });
+ it("Should throw syntax error (%.a)", function(done) {
+ var command = uglifyjscmd + ' test/input/invalid/dot_2.js';
+
+ exec(command, function (err, stdout, stderr) {
+ assert.ok(err);
+ assert.strictEqual(stdout, "");
+ assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
+ "Parse error at test/input/invalid/dot_2.js:1,0",
+ "%.a;",
+ "^",
+ "ERROR: Unexpected token: operator (%)"
+ ].join("\n"));
+ done();
+ });
+ });
+ it("Should throw syntax error (a./();)", function(done) {
+ var command = uglifyjscmd + ' test/input/invalid/dot_3.js';
+
+ exec(command, function (err, stdout, stderr) {
+ assert.ok(err);
+ assert.strictEqual(stdout, "");
+ assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
+ "Parse error at test/input/invalid/dot_3.js:1,2",
+ "a./();",
+ " ^",
+ "ERROR: Unexpected token: operator (/)"
+ ].join("\n"));
+ done();
+ });
+ });
+ it("Should throw syntax error ({%: 1})", function(done) {
+ var command = uglifyjscmd + ' test/input/invalid/object.js';
+
+ exec(command, function (err, stdout, stderr) {
+ assert.ok(err);
+ assert.strictEqual(stdout, "");
+ assert.strictEqual(stderr.split(/\n/).slice(0, 4).join("\n"), [
+ "Parse error at test/input/invalid/object.js:1,13",
+ "console.log({%: 1});",
+ " ^",
+ "ERROR: Unexpected token: operator (%)"
+ ].join("\n"));
+ done();
+ });
+ });
it("Should handle literal string as source map input", function(done) {
var command = [
uglifyjscmd,