11'use strict' ;
22
3+ const common = require ( '../common' ) ;
34const assert = require ( 'assert' ) ;
45const { duplexPair } = require ( 'stream' ) ;
56
@@ -8,32 +9,22 @@ const [sideA, sideB] = duplexPair();
89let sideAErrorReceived = false ;
910let sideBErrorReceived = false ;
1011
11- // Add error handlers
12- sideA . on ( 'error' , ( err ) => {
12+ // Use common.mustCall inside the listeners to ensure they trigger
13+ sideA . on ( 'error' , common . mustCall ( ( err ) => {
1314 sideAErrorReceived = true ;
14- } ) ;
15- sideB . on ( 'error' , ( err ) => {
15+ } ) ) ;
16+
17+ sideB . on ( 'error' , common . mustCall ( ( err ) => {
1618 sideBErrorReceived = true ;
17- } ) ;
19+ } ) ) ;
1820
19- // Ensure the streams are flowing
2021sideA . resume ( ) ;
2122sideB . resume ( ) ;
2223
23- // Destroy sideB with an error
2424sideB . destroy ( new Error ( 'Simulated error' ) ) ;
2525
26- // Wait for event loop to process error events
27- setImmediate ( ( ) => {
28- assert . strictEqual (
29- sideAErrorReceived ,
30- true ,
31- 'sideA should receive the error when sideB is destroyed with an error'
32- ) ;
33- assert . strictEqual (
34- sideBErrorReceived ,
35- true ,
36- 'sideB should emit its own error when destroyed'
37- ) ;
38- } ) ;
39-
26+ // Wrap the callback in common.mustCall()
27+ setImmediate ( common . mustCall ( ( ) => {
28+ assert . strictEqual ( sideAErrorReceived , true ) ;
29+ assert . strictEqual ( sideBErrorReceived , true ) ;
30+ } ) ) ;
0 commit comments