falsy checking; improve tests; fix typo

This commit is contained in:
mc-zone 2018-02-22 20:57:20 +08:00
parent bc48785175
commit d045d57e1f
7 changed files with 60 additions and 19 deletions

View File

@ -16,26 +16,34 @@ class ModuleBuildError extends WebpackError {
if(from) {
this.message += ` (@ ${from})`;
}
this.message += ": ";
var message;
if(err !== null && typeof err === "object") {
if(typeof err.stack === "string" && err.stack) {
var stack = cutOffLoaderExecution(err.stack);
if(!err.hideStack) {
this.message += stack;
message = stack;
} else {
this.details = stack;
if(typeof err.message === "string" && err.message) {
this.message += err.message;
message = err.message;
} else {
this.message += err;
message = err;
}
}
} else if(typeof err.message === "string" && err.message) {
this.message += err.message;
message = err.message;
} else {
this.message += err;
message = err;
}
} else {
message = err;
}
if(message !== "") {
this.message += `: ${message}`;
}
this.module = module;
this.error = err;

View File

@ -17,8 +17,11 @@ class ModuleError extends WebpackError {
if(from) {
this.message += ` (@ ${from})`;
}
this.message += ": ";
this.message += err && typeof err === "object" && err.message ? err.message : err;
if(err && typeof err === "object" && err.message) {
this.message += `: ${err.message}`;
} else if(err) {
this.message += `: ${err}`;
}
this.error = err;
this.details = err && typeof err === "object" && err.stack ? cleanUp(err.stack, this.message) : undefined;

View File

@ -17,8 +17,11 @@ class ModuleWarning extends WebpackError {
if(from) {
this.message += ` (@ ${from})`;
}
this.message += ": ";
this.message += warning && typeof warning === "object" && warning.message ? warning.message : warning;
if(warning && typeof warning === "object" && warning.message) {
this.message += `: ${warning.message}`;
} else if(warning) {
this.message += `: ${warning}`;
}
this.warning = warning;
this.details = warning && typeof warning === "object" && warning.stack ? cleanUp(warning.stack, this.message) : undefined;

View File

@ -196,10 +196,10 @@ describe("Errors", () => {
}, (errors, warnings) => {
warnings.length.should.be.eql(1);
warnings[0].split("\n")[1].should.match(/^Module Warning \(@ emit-error-loader\)/);
warnings[0].split("\n")[1].should.match(/^Module Warning \(@ emit-error-loader\): [^\s]+/);
errors.length.should.be.eql(2);
errors[0].split("\n")[1].should.match(/^Module Error \(@ emit-error-loader\)/);
errors[1].split("\n")[1].should.match(/^Module build failed \(@ json-loader\)/);
errors[0].split("\n")[1].should.match(/^Module Error \(@ emit-error-loader\): [^\s]+/);
errors[1].split("\n")[1].should.match(/^Module build failed \(@ json-loader\): [^\s]+/);
}),
getErrorsPromise({
mode: "development",
@ -213,7 +213,7 @@ describe("Errors", () => {
}, (errors, warnings) => {
errors.length.should.be.eql(1);
errors[0].split("\n")[1].should.match(/^Module build failed \(@ async-error-loader\)/);
errors[0].split("\n")[1].should.match(/^Module build failed \(@ async-error-loader\): [^\s]+/);
}),
getErrorsPromise({
mode: "development",
@ -227,7 +227,27 @@ describe("Errors", () => {
}, (errors, warnings) => {
errors.length.should.be.eql(1);
errors[0].split("\n")[1].should.match(/^Module build failed \(@ throw-error-loader\)/);
errors[0].split("\n")[1].should.match(/^Module build failed \(@ throw-error-loader\): [^\s]+/);
}),
getErrorsPromise({
mode: "development",
entry: "./entry-point.js",
module: {
rules: [{
test: /entry-point\.js$/,
use: path.resolve(base, "./irregular-error-loader")
}]
}
}, (errors, warnings) => {
warnings.length.should.be.eql(2);
warnings[0].split("\n")[1].should.match(/^Module Warning \(@ irregular-error-loader\): [^\s]+/);
warnings[1].split("\n")[1].should.match(/^Module Warning \(@ irregular-error-loader\): [^\s]+/);
errors.length.should.be.eql(3);
errors[0].split("\n")[1].should.match(/^Module Error \(@ irregular-error-loader\): [^\s]+/);
errors[1].split("\n")[1].should.match(/^Module Error \(@ irregular-error-loader\): [^\s]+/);
errors[2].split("\n")[1].should.match(/^Module build failed \(@ irregular-error-loader\): [^\s]+/);
}),
]);

View File

@ -3,4 +3,3 @@ module.exports = function(source) {
const error = new Error("this is a callback error");
callback(error, source);
};

View File

@ -0,0 +1,10 @@
module.exports = function(source) {
var empty = null;
var emptyError = new Error();
this.emitWarning(empty);
this.emitWarning(emptyError);
this.emitError(empty);
this.emitError(emptyError);
throw "a string error";
return source;
};

View File

@ -1,5 +1,3 @@
module.exports = function(source) {
throw new Error("this is a threw error");
throw new Error("this is a thrown error");
};