File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change
1
+ 'use strict'
2
+
3
+ const { test } = require ( 'node:test' )
4
+ const { fetch } = require ( '../..' )
5
+ const { createServer } = require ( 'node:http' )
6
+ const { closeServerAsPromise } = require ( '../utils/node-http' )
7
+ const tspl = require ( '@matteo.collina/tspl' )
8
+
9
+ test ( 'abort the request on the other side if the stream is canceled' , async ( t ) => {
10
+ const p = tspl ( t , { plan : 1 } )
11
+ const server = createServer ( ( req , res ) => {
12
+ res . writeHead ( 200 )
13
+ res . write ( 'hello' )
14
+ req . on ( 'aborted' , ( ) => {
15
+ p . ok ( 'aborted' )
16
+ } )
17
+ // Let's not end the response on purpose
18
+ } )
19
+ t . after ( closeServerAsPromise ( server ) )
20
+
21
+ await new Promise ( ( resolve ) => {
22
+ server . listen ( 0 , resolve )
23
+ } )
24
+
25
+ const url = new URL ( `http://127.0.0.1:${ server . address ( ) . port } ` )
26
+
27
+ const response = await fetch ( url )
28
+
29
+ const reader = response . body . getReader ( )
30
+
31
+ try {
32
+ await reader . read ( )
33
+ } finally {
34
+ reader . releaseLock ( )
35
+ await response . body . cancel ( )
36
+ }
37
+
38
+ await p . completed
39
+ } )
You can’t perform that action at this time.
0 commit comments