throw new Error("Wrong value");
},
function(err) {
- if ( !(err instanceof Error) || !/value/.test(err) ) {
- return false;
+ if ( (err instanceof Error) && /value/.test(err) ) {
+ return true;
}
},
"unexpected error"
}
if (expected instanceof RegExp) {
- if (expected.test(actual)) {
- return true;
- }
- } else if (actual instanceof expected ||
- expected.call({}, actual) !== false) {
+ return expected.test(actual);
+ } else if (actual instanceof expected) {
+ return true;
+ } else if ( expected.call({}, actual) === true ) {
return true;
}
+
+ return false;
}
function _throws(shouldThrow, block, expected, message) {
assert.doesNotThrow(function() {assert.ifError(null)});
assert.doesNotThrow(function() {assert.ifError()});
+// make sure that validating using constructor really works
+threw = false;
+try {
+ assert.throws(
+ function() {
+ throw {};
+ },
+ Array
+ );
+} catch(e) {
+ threw = true;
+}
+assert.ok(threw, "wrong constructor validation");
+
// use a RegExp to validate error message
a.throws(makeBlock(thrower, TypeError), /test/);
// use a fn to validate error object
a.throws(makeBlock(thrower, TypeError), function(err) {
- if (!(err instanceof TypeError) || !/test/.test(err)) {
- return false;
+ if ( (err instanceof TypeError) && /test/.test(err)) {
+ return true;
}
});