Skip to content

Commit 8d47119

Browse files
committed
Merge pull request #651 from sindresorhus/fix-enhanced-assert-throws-not-returning
Ensure t.throws() returns the error
2 parents 6cb7e6b + 26d2291 commit 8d47119

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

lib/test.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -277,31 +277,31 @@ function PublicApi(test) {
277277
}
278278

279279
function onAssertionEvent(event) {
280-
var promise = null;
281-
282280
if (event.assertionThrew) {
283281
event.error.powerAssertContext = event.powerAssertContext;
284282
event.error.originalMessage = event.originalMessage;
285283
this._test._setAssertError(event.error);
286-
} else {
287-
var ret = event.returnValue;
284+
this._test._assert(null);
285+
return null;
286+
}
288287

289-
if (isObservable(ret)) {
290-
ret = observableToPromise(ret);
291-
}
288+
var ret = event.returnValue;
292289

293-
if (isPromise(ret)) {
294-
promise = ret
295-
.then(null, function (err) {
296-
err.originalMessage = event.originalMessage;
297-
throw err;
298-
});
299-
}
290+
if (isObservable(ret)) {
291+
ret = observableToPromise(ret);
300292
}
301293

302-
this._test._assert(promise);
294+
if (isPromise(ret)) {
295+
var promise = ret.then(null, function (err) {
296+
err.originalMessage = event.originalMessage;
297+
throw err;
298+
});
299+
this._test._assert(promise);
300+
return promise;
301+
}
303302

304-
return promise;
303+
this._test._assert(null);
304+
return ret;
305305
}
306306

307307
PublicApi.prototype = enhanceAssert({

test/test.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,26 +205,31 @@ test('handle falsy testing of objects', function (t) {
205205
});
206206

207207
test('handle throws with error', function (t) {
208+
var expected = new Error('foo');
209+
var actual;
208210
var result = ava(function (a) {
209-
a.throws(function () {
210-
throw new Error('foo');
211+
actual = a.throws(function () {
212+
throw expected;
211213
});
212214
}).run();
213215

214216
t.is(result.passed, true);
215217
t.is(result.result.assertCount, 1);
218+
t.is(actual, expected);
216219
t.end();
217220
});
218221

219222
test('handle throws without error', function (t) {
223+
var actual;
220224
var result = ava(function (a) {
221-
a.throws(function () {
225+
actual = a.throws(function () {
222226
return;
223227
});
224228
}).run();
225229

226230
t.is(result.passed, false);
227231
t.ok(result.reason);
232+
t.is(actual, null);
228233
t.end();
229234
});
230235

0 commit comments

Comments
 (0)