var args = (function() { return arguments; })();
a.throws(makeBlock(a.deepEqual, [], args));
a.throws(makeBlock(a.deepEqual, args, []));
-
-console.log('All OK');
assert.ok(gotError);
assert.equal(e.generatedMessage, false,
'Message incorrectly marked as generated');
}
+
+// Verify that throws() and doesNotThrow() throw on non-function block
+function testBlockTypeError(method, block) {
+ var threw = true;
+
+ try {
+ method(block);
+ threw = false;
+ } catch (e) {
+ assert.equal(e.toString(), 'TypeError: block must be a function');
+ }
+
+ assert.ok(threw);
+}
+
+testBlockTypeError(assert.throws, 'string');
+testBlockTypeError(assert.doesNotThrow, 'string');
+testBlockTypeError(assert.throws, 1);
+testBlockTypeError(assert.doesNotThrow, 1);
+testBlockTypeError(assert.throws, true);
+testBlockTypeError(assert.doesNotThrow, true);
+testBlockTypeError(assert.throws, false);
+testBlockTypeError(assert.doesNotThrow, false);
+testBlockTypeError(assert.throws, []);
+testBlockTypeError(assert.doesNotThrow, []);
+testBlockTypeError(assert.throws, {});
+testBlockTypeError(assert.doesNotThrow, {});
+testBlockTypeError(assert.throws, /foo/);
+testBlockTypeError(assert.doesNotThrow, /foo/);
+testBlockTypeError(assert.throws, null);
+testBlockTypeError(assert.doesNotThrow, null);
+testBlockTypeError(assert.throws, undefined);
+testBlockTypeError(assert.doesNotThrow, undefined);
+
+console.log('All OK');