@@ -26,15 +26,15 @@ module.exports = class FullJsonStreamReporter extends BaseRunner {
26
26
super ( runner , options ) ;
27
27
28
28
const total = runner . total ;
29
- runner . once ( EVENT_RUN_BEGIN , ( ) => writeEvent ( [ 'start' , { total } ] ) ) ;
30
- runner . once ( EVENT_RUN_END , ( ) => writeEvent ( [ 'end' , this . stats ] ) ) ;
29
+ runner . once ( EVENT_RUN_BEGIN , ( ) => this . writeEvent ( [ 'start' , { total } ] ) ) ;
30
+ runner . once ( EVENT_RUN_END , ( ) => this . writeEvent ( [ 'end' , this . stats ] ) ) ;
31
31
32
32
// custom coverage events:
33
- runner . on ( 'coverage init' , ( c ) => writeEvent ( [ 'coverageInit' , c ] ) ) ;
34
- runner . on ( 'coverage increment' , ( context , coverage ) => writeEvent ( [ 'coverageIncrement' , { ...context , coverage } ] ) ) ;
33
+ runner . on ( 'coverage init' , ( c ) => this . writeEvent ( [ 'coverageInit' , c ] ) ) ;
34
+ runner . on ( 'coverage increment' , ( context , coverage ) => this . writeEvent ( [ 'coverageIncrement' , { ...context , coverage } ] ) ) ;
35
35
36
- runner . on ( EVENT_TEST_BEGIN , test => writeEvent ( [ 'testStart' , clean ( test ) ] ) ) ;
37
- runner . on ( EVENT_TEST_PASS , test => writeEvent ( [ 'pass' , clean ( test ) ] ) ) ;
36
+ runner . on ( EVENT_TEST_BEGIN , test => this . writeEvent ( [ 'testStart' , clean ( test ) ] ) ) ;
37
+ runner . on ( EVENT_TEST_PASS , test => this . writeEvent ( [ 'pass' , clean ( test ) ] ) ) ;
38
38
runner . on ( EVENT_TEST_FAIL , ( test , err ) => {
39
39
test = clean ( test ) ;
40
40
test . actual = err . actual ;
@@ -44,14 +44,18 @@ module.exports = class FullJsonStreamReporter extends BaseRunner {
44
44
test . snapshotPath = err . snapshotPath ;
45
45
test . err = err . message ;
46
46
test . stack = err . stack || null ;
47
- writeEvent ( [ 'fail' , test ] ) ;
47
+ this . writeEvent ( [ 'fail' , test ] ) ;
48
48
} ) ;
49
49
}
50
- } ;
51
50
52
- function writeEvent ( event ) {
53
- process . stdout . write ( JSON . stringify ( event ) + '\n' ) ;
54
- }
51
+ drain ( ) {
52
+ return Promise . resolve ( this . lastEvent ) ;
53
+ }
54
+
55
+ writeEvent ( event ) {
56
+ this . lastEvent = new Promise ( r => process . stdout . write ( JSON . stringify ( event ) + '\n' , r ) ) ;
57
+ }
58
+ } ;
55
59
56
60
const clean = test => ( {
57
61
title : test . title ,
0 commit comments