Skip to content

Commit ccc11b8

Browse files
SamVerschuerensindresorhus
authored andcommitted
Close #125 PR: Add string support to throws.
1 parent 8d84f39 commit ccc11b8

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

lib/assert.js

+7
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,13 @@ x.throws = function (fn, err, msg) {
9090
}
9191

9292
try {
93+
if (typeof err === 'string') {
94+
var e = err;
95+
err = function (err) {
96+
return err.message === e;
97+
};
98+
}
99+
93100
assert.throws(fn, err, msg);
94101
} catch (err) {
95102
test(false, create(err.actual, err.expected, err.operator, err.message, x.throws));

readme.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ Assert that `value` is not deep equal to `expected`.
423423

424424
Assert that `function` throws an error or `promise` rejects.
425425

426-
`error` can be a constructor, regex or validation function.
426+
`error` can be a constructor, regex, error message or validation function.
427427

428428
### .doesNotThrow(function|promise, [message])
429429

test/test.js

+12
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,18 @@ test('handle throws with regex', function (t) {
240240
});
241241
});
242242

243+
test('handle throws with string', function (t) {
244+
ava(function (a) {
245+
a.plan(1);
246+
247+
var promise = Promise.reject(new Error('abc'));
248+
a.throws(promise, 'abc');
249+
}).run().then(function (a) {
250+
t.false(a.assertionError);
251+
t.end();
252+
});
253+
});
254+
243255
test('handle throws with false-positive promise', function (t) {
244256
ava(function (a) {
245257
a.plan(1);

0 commit comments

Comments
 (0)