Skip to content

Commit a878e86

Browse files
committedSep 17, 2017
Return rejection error. Closes #106
1 parent 50faff7 commit a878e86

File tree

3 files changed

+36
-26
lines changed

3 files changed

+36
-26
lines changed
 

‎lib/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ internals.reject = async function (/* type, message */) {
408408
const lastArg = arguments[1] || arguments[0];
409409
const message = typeof lastArg === 'string' || lastArg instanceof RegExp ? lastArg : null;
410410

411-
let thrown;
411+
let thrown = null;
412412
try {
413413
await this._ref;
414414
}
@@ -431,7 +431,8 @@ internals.reject = async function (/* type, message */) {
431431
this.assert(thrown, 'reject with an error', thrown);
432432
}
433433

434-
return this.assert(thrown, 'reject with an error');
434+
this.assert(thrown, 'reject with an error');
435+
return thrown;
435436
}
436437
catch (err) {
437438
return new Promise((resolve, reject) => {

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "code",
33
"description": "assertion library",
4-
"version": "5.0.0",
4+
"version": "5.1.0",
55
"repository": "git://github.com/hapijs/code",
66
"main": "lib/index.js",
77
"keywords": [

‎test/index.js

+32-23
Original file line numberDiff line numberDiff line change
@@ -2367,19 +2367,11 @@ describe('expect()', () => {
23672367

23682368
describe('reject()', () => {
23692369

2370-
const rejects = function () {
2371-
2372-
return new Promise((resolve, reject) => {
2373-
2374-
reject(new Error('kaboom'));
2375-
});
2376-
};
2377-
23782370
it('validates rejection', async () => {
23792371

23802372
let exception = false;
23812373
try {
2382-
await Code.expect(rejects()).to.reject();
2374+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject();
23832375
}
23842376
catch (err) {
23852377
exception = err;
@@ -2392,7 +2384,7 @@ describe('expect()', () => {
23922384

23932385
let exception = false;
23942386
try {
2395-
await Code.expect(new Promise((resolve, reject) => resolve(3))).to.not.reject();
2387+
await Code.expect(Promise.resolve(3)).to.not.reject();
23962388
}
23972389
catch (err) {
23982390
exception = err;
@@ -2405,7 +2397,7 @@ describe('expect()', () => {
24052397

24062398
let exception = false;
24072399
try {
2408-
await Code.expect(new Promise((resolve, reject) => resolve(3))).to.reject();
2400+
await Code.expect(Promise.resolve(3)).to.reject();
24092401
}
24102402
catch (err) {
24112403
exception = err;
@@ -2418,7 +2410,7 @@ describe('expect()', () => {
24182410

24192411
let exception = false;
24202412
try {
2421-
await Code.expect(rejects()).rejects();
2413+
await Code.expect(Promise.reject(new Error('kaboom'))).rejects();
24222414
}
24232415
catch (err) {
24242416
exception = err;
@@ -2444,7 +2436,7 @@ describe('expect()', () => {
24442436

24452437
let exception = false;
24462438
try {
2447-
await Code.expect(rejects()).to.not.reject('message');
2439+
await Code.expect(Promise.reject(new Error('kaboom'))).to.not.reject('message');
24482440
}
24492441
catch (err) {
24502442
exception = err;
@@ -2457,7 +2449,7 @@ describe('expect()', () => {
24572449

24582450
let exception = false;
24592451
try {
2460-
await Code.expect(rejects()).to.reject('kaboom');
2452+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject('kaboom');
24612453
}
24622454
catch (err) {
24632455
exception = err;
@@ -2470,7 +2462,7 @@ describe('expect()', () => {
24702462

24712463
let exception = false;
24722464
try {
2473-
await Code.expect(new Promise((resolve, reject) => reject(new Error('')))).to.reject('');
2465+
await Code.expect(Promise.reject(new Error(''))).to.reject('');
24742466
}
24752467
catch (err) {
24762468
exception = err;
@@ -2483,7 +2475,7 @@ describe('expect()', () => {
24832475

24842476
let exception = false;
24852477
try {
2486-
await Code.expect(rejects()).to.reject(/boom/);
2478+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject(/boom/);
24872479
}
24882480
catch (err) {
24892481
exception = err;
@@ -2498,7 +2490,7 @@ describe('expect()', () => {
24982490

24992491
let exception = false;
25002492
try {
2501-
await Code.expect(new Promise((resolve, reject) => reject(new Custom()))).to.reject('kaboom');
2493+
await Code.expect(Promise.reject(new Custom())).to.reject('kaboom');
25022494
}
25032495
catch (err) {
25042496
exception = err;
@@ -2511,7 +2503,7 @@ describe('expect()', () => {
25112503

25122504
let exception = false;
25132505
try {
2514-
await Code.expect(rejects()).to.reject('steve');
2506+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject('steve');
25152507
}
25162508
catch (err) {
25172509
exception = err;
@@ -2524,7 +2516,7 @@ describe('expect()', () => {
25242516

25252517
let exception = false;
25262518
try {
2527-
await Code.expect(rejects()).to.rejects('');
2519+
await Code.expect(Promise.reject(new Error('kaboom'))).to.rejects('');
25282520
}
25292521
catch (err) {
25302522
exception = err;
@@ -2537,7 +2529,7 @@ describe('expect()', () => {
25372529

25382530
let exception = false;
25392531
try {
2540-
await Code.expect(rejects()).to.reject(Error);
2532+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject(Error);
25412533
}
25422534
catch (err) {
25432535
exception = err;
@@ -2552,7 +2544,7 @@ describe('expect()', () => {
25522544

25532545
let exception = false;
25542546
try {
2555-
await Code.expect(new Promise((resolve, reject) => reject(new Custom()))).to.reject(Error);
2547+
await Code.expect(Promise.reject(new Custom())).to.reject(Error);
25562548
}
25572549
catch (err) {
25582550
exception = err;
@@ -2568,7 +2560,7 @@ describe('expect()', () => {
25682560

25692561
let exception = false;
25702562
try {
2571-
await Code.expect(rejects()).to.reject(Custom);
2563+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject(Custom);
25722564
}
25732565
catch (err) {
25742566
exception = err;
@@ -2581,7 +2573,24 @@ describe('expect()', () => {
25812573

25822574
let exception = false;
25832575
try {
2584-
await Code.expect(rejects()).to.reject(Error, 'kaboom');
2576+
await Code.expect(Promise.reject(new Error('kaboom'))).to.reject(Error, 'kaboom');
2577+
}
2578+
catch (err) {
2579+
exception = err;
2580+
}
2581+
2582+
Hoek.assert(!exception, exception);
2583+
});
2584+
2585+
it('returns rejection error', async () => {
2586+
2587+
const Custom = function () { };
2588+
delete Custom.name; // Ensure that the type is anonymous
2589+
2590+
let exception = false;
2591+
try {
2592+
const err = await Code.expect(Promise.reject(new Error('kaboom'))).to.reject();
2593+
Code.expect(err).to.be.an.error('kaboom');
25852594
}
25862595
catch (err) {
25872596
exception = err;

0 commit comments

Comments
 (0)
Please sign in to comment.