@@ -12,18 +12,43 @@ let b = 0;
12
12
process . on ( 'warning' , common . mustCall ( ( warning ) => {
13
13
switch ( b ++ ) {
14
14
case 0 :
15
- assert . strictEqual ( warning . name , 'UnhandledPromiseRejectionWarning' ) ;
16
- assert ( / U n h a n d l e d p r o m i s e r e j e c t i o n / . test ( warning . message ) ) ;
15
+ // String rejection error displayed
16
+ assert . strictEqual ( warning . message , 'This was rejected' ) ;
17
17
break ;
18
18
case 1 :
19
- assert . strictEqual ( warning . name , 'DeprecationWarning' ) ;
19
+ // Warning about rejection not being handled (will be next tick)
20
+ assert . strictEqual ( warning . name , 'UnhandledPromiseRejectionWarning' ) ;
21
+ assert (
22
+ / U n h a n d l e d p r o m i s e r e j e c t i o n / . test ( warning . message ) ,
23
+ 'Expected warning message to contain "Unhandled promise rejection" ' +
24
+ 'but did not. Had "' + warning . message + '" instead.'
25
+ ) ;
20
26
break ;
21
27
case 2 :
28
+ // One time deprecation warning, first unhandled rejection
29
+ assert . strictEqual ( warning . name , 'DeprecationWarning' ) ;
30
+ break ;
31
+ case 3 :
32
+ // Number rejection error displayed. Note it's been stringified
33
+ assert . strictEqual ( warning . message , '42' ) ;
34
+ break ;
35
+ case 4 :
36
+ // Unhandled rejection warning (won't be handled next tick)
37
+ assert . strictEqual ( warning . name , 'UnhandledPromiseRejectionWarning' ) ;
38
+ assert (
39
+ / U n h a n d l e d p r o m i s e r e j e c t i o n / . test ( warning . message ) ,
40
+ 'Expected warning message to contain "Unhandled promise rejection" ' +
41
+ 'but did not. Had "' + warning . message + '" instead.'
42
+ ) ;
43
+ break ;
44
+ case 5 :
45
+ // Rejection handled asynchronously.
22
46
assert . strictEqual ( warning . name , 'PromiseRejectionHandledWarning' ) ;
23
47
assert ( / P r o m i s e r e j e c t i o n w a s h a n d l e d a s y n c h r o n o u s l y /
24
48
. test ( warning . message ) ) ;
25
49
}
26
- } , 3 ) ) ;
50
+ } , 6 ) ) ;
27
51
28
- const p = Promise . reject ( 'This was rejected' ) ;
29
- setImmediate ( common . mustCall ( ( ) => p . catch ( ( ) => { } ) ) ) ;
52
+ const p = Promise . reject ( 'This was rejected' ) ; // Reject with a string
53
+ setImmediate ( common . mustCall ( ( ) => p . catch ( ( ) => { } ) ) ) ;
54
+ Promise . reject ( 42 ) ; // Reject with a number
0 commit comments