1+ const {
2+ PassThrough,
3+ Transform,
4+ finished,
5+ pipeline,
6+ } = require ( 'readable-stream' ) ;
17const test = require ( 'tape' ) ;
2- const { PassThrough, Transform, finished, pipeline } = require ( 'readable-stream' ) ;
38// eslint-disable-next-line import/no-unresolved
49const ObjMultiplex = require ( '../dist' ) ;
510
@@ -18,7 +23,7 @@ test('basic - string', (t) => {
1823 inStream . write ( 'wuurl' ) ;
1924
2025 // simulate disconnect
21- setTimeout ( ( ) => inTransport . destroy ( ) ) ;
26+ setImmediate ( ( ) => inTransport . end ( null , ( ) => undefined ) ) ;
2227} ) ;
2328
2429test ( 'basic - obj' , ( t ) => {
@@ -39,7 +44,7 @@ test('basic - obj', (t) => {
3944 inStream . write ( { message : 'wuurl' } ) ;
4045
4146 // simulate disconnect
42- setTimeout ( ( ) => inTransport . destroy ( ) ) ;
47+ setImmediate ( ( ) => inTransport . end ( null , ( ) => undefined ) ) ;
4348} ) ;
4449
4550test ( 'roundtrip' , ( t ) => {
@@ -54,7 +59,7 @@ test('roundtrip', (t) => {
5459 } ,
5560 } ) ;
5661
57- pipeline ( outStream , doubler , outStream ) ;
62+ pipeline ( outStream , doubler , outStream , ( ) => undefined ) ;
5863
5964 bufferToEnd ( inStream , ( err , results ) => {
6065 t . error ( err , 'should not error' ) ;
@@ -66,7 +71,7 @@ test('roundtrip', (t) => {
6671 inStream . write ( 12 ) ;
6772
6873 // simulate disconnect
69- setTimeout ( ( ) => outTransport . destroy ( ) , 100 ) ;
74+ setTimeout ( ( ) => outTransport . end ( ) , 100 ) ;
7075} ) ;
7176
7277test ( 'error on createStream if destroyed' , ( t ) => {
@@ -104,7 +109,7 @@ function basicTestSetup() {
104109 const inStream = inMux . createStream ( 'hello' ) ;
105110 const outStream = outMux . createStream ( 'hello' ) ;
106111
107- pipeline ( inMux , inTransport , outMux , outTransport , inMux ) ;
112+ pipeline ( inMux , inTransport , outMux , outTransport , inMux , ( ) => undefined ) ;
108113
109114 return {
110115 inTransport,
@@ -118,6 +123,17 @@ function basicTestSetup() {
118123
119124function bufferToEnd ( stream , callback ) {
120125 const results = [ ] ;
121- finished ( stream , ( err ) => callback ( err , results ) ) ;
122- stream . on ( 'data' , ( chunk ) => results . push ( chunk ) ) ;
126+ let flushed = false ;
127+ function onFinish ( err ) {
128+ if ( flushed ) {
129+ return ;
130+ }
131+ flushed = true ;
132+ callback ( err , results ) ;
133+ }
134+ stream . prependListener ( 'close' , onFinish ) ;
135+ finished ( stream , onFinish ) ;
136+ stream . on ( 'data' , ( chunk ) => {
137+ results . push ( chunk ) ;
138+ } ) ;
123139}
0 commit comments