@@ -11,7 +11,14 @@ t.test('empty write', async t => {
11
11
const p = dest . concat ( ) . then ( d => t . equal ( d , 'a' , 'got data' ) )
12
12
t . equal ( s . write ( 'a' ) , false , 'first write returns false' )
13
13
t . equal ( s . write ( '' ) , false , 'empty write returns false' )
14
- s . on ( 'readable' , ( ) => s . pipe ( dest ) )
14
+ // since readable emits immediately, the NEXT one needs to trigger
15
+ let firstReadable = false
16
+ s . on ( 'readable' , ( ) => {
17
+ if ( ! firstReadable )
18
+ firstReadable = true
19
+ else
20
+ s . pipe ( dest )
21
+ } )
15
22
t . equal ( s . flowing , false , 'src is not flowing yet' )
16
23
t . equal ( s . write ( '' ) , true , 'return true, now flowing' )
17
24
s . end ( )
@@ -24,7 +31,14 @@ t.test('non-empty write', async t => {
24
31
const p = dest . concat ( ) . then ( d => t . equal ( d , 'ab' , 'got data' ) )
25
32
t . equal ( s . write ( 'a' ) , false , 'first write returns false' )
26
33
t . equal ( s . write ( '' ) , false , 'empty write returns false' )
27
- s . on ( 'readable' , ( ) => s . pipe ( dest ) )
34
+ // since readable emits immediately, the NEXT one needs to trigger
35
+ let firstReadable = false
36
+ s . on ( 'readable' , ( ) => {
37
+ if ( ! firstReadable )
38
+ firstReadable = true
39
+ else
40
+ s . pipe ( dest )
41
+ } )
28
42
t . equal ( s . flowing , false , 'src is not flowing yet' )
29
43
t . equal ( s . write ( 'b' ) , true , 'return true, now flowing' )
30
44
s . end ( )
0 commit comments