@@ -178,25 +178,31 @@ const Countdown = require('../common/countdown');
178
178
server . listen ( 0 , common . mustCall ( ( ) => {
179
179
const client = h2 . connect ( `http://localhost:${ server . address ( ) . port } ` ) ;
180
180
client . on ( 'close' , common . mustCall ( ) ) ;
181
- client . on ( 'error' , common . mustCall ( ( err ) => {
182
- assert . strictEqual ( err . code , 'ECONNREFUSED' ) ;
183
- assert . strictEqual ( signal [ kEvents ] . get ( 'abort' ) , undefined ) ;
184
- server . close ( ) ;
185
- } ) ) ;
186
-
181
+
187
182
const { signal } = controller ;
188
183
assert . strictEqual ( signal [ kEvents ] . get ( 'abort' ) , undefined ) ;
189
184
185
+ client . on ( 'error' , common . mustCall ( ( ) => {
186
+ // After underlying stream dies, signal listener detached
187
+ assert . strictEqual ( signal [ kEvents ] . get ( 'abort' ) , undefined ) ;
188
+ } ) ) ;
189
+
190
190
const req = client . request ( { } , { signal } ) ;
191
191
192
+ req . on ( 'error' , common . mustCall ( ( err ) => {
193
+ assert . strictEqual ( err . code , 'ABORT_ERR' ) ;
194
+ assert . strictEqual ( err . name , 'AbortError' ) ;
195
+ } ) ) ;
196
+ req . on ( 'close' , common . mustCall ( ( ) => server . close ( ) ) ) ;
197
+
192
198
assert . strictEqual ( req . aborted , false ) ;
193
199
assert . strictEqual ( req . destroyed , false ) ;
200
+ // Signal listener attached
194
201
assert . strictEqual ( signal [ kEvents ] . get ( 'abort' ) . size , 1 ) ;
195
202
196
203
controller . abort ( ) ;
197
204
198
205
assert . strictEqual ( req . aborted , false ) ;
199
206
assert . strictEqual ( req . destroyed , true ) ;
200
- req . on ( 'close' , common . mustCall ( ( ) => server . close ( ) ) ) ;
201
207
} ) ) ;
202
208
}
0 commit comments