@@ -3,22 +3,31 @@ import { HandlerOrListener } from './types.ts'
33
44const port = await getFreePort ( 8080 )
55
6+ const fetchEndpoint = async (
7+ port : number ,
8+ url : string | URL ,
9+ params ?: RequestInit ,
10+ ) => {
11+ const res = await fetch (
12+ `http://localhost:${ port } ${ url } ` ,
13+ params ,
14+ )
15+ let data : unknown
16+ const ct = res . headers . get ( 'Content-Type' )
17+ if ( ct === 'application/json' ) data = await res . json ( )
18+ else if ( ct ?. includes ( 'text' ) ) data = await res . text ( )
19+ else if ( ct === null ) data = await res . text ( )
20+ else data = await res . arrayBuffer ( )
21+ return { res, data }
22+ }
23+
624const makeFetchPromise = ( handlerOrListener : HandlerOrListener ) => {
725 // listener
826 if ( 'rid' in handlerOrListener && 'addr' in handlerOrListener ) {
927 return async ( url : URL | string = '' , params ?: RequestInit ) => {
1028 const p = new Promise < { res : Response ; data ?: unknown } > ( ( resolve ) => {
1129 setTimeout ( async ( ) => {
12- const res = await fetch (
13- `http://localhost:${ port } ${ url } ` ,
14- params ,
15- )
16- let data : unknown
17- const ct = res . headers . get ( 'Content-Type' )
18- if ( ct === 'application/json' ) data = await res . json ( )
19- else if ( ct ?. includes ( 'text' ) ) data = await res . text ( )
20- else data = await res . arrayBuffer ( )
21-
30+ const { res, data } = await fetchEndpoint ( port , url , params )
2231 resolve ( { res, data } )
2332 Deno . close ( conn . rid + 1 )
2433 handlerOrListener . close ( )
@@ -43,16 +52,7 @@ const makeFetchPromise = (handlerOrListener: HandlerOrListener) => {
4352 return async ( url : URL | string = '' , params ?: RequestInit ) => {
4453 const p = new Promise < { res : Response ; data ?: unknown } > ( ( resolve ) => {
4554 setTimeout ( async ( ) => {
46- const res = await fetch (
47- `http://localhost:${ port } ${ url } ` ,
48- params ,
49- )
50- let data : unknown
51- const ct = res . headers . get ( 'Content-Type' )
52- if ( ct === 'application/json' ) data = await res . json ( )
53- else if ( ct ?. includes ( 'text' ) ) data = await res . text ( )
54- else data = await res . arrayBuffer ( )
55-
55+ const { res, data } = await fetchEndpoint ( port , url , params )
5656 resolve ( { res, data } )
5757 Deno . close ( conn . rid + 1 )
5858 listener . close ( )
@@ -87,7 +87,7 @@ export const makeFetch = (h: HandlerOrListener) => {
8787 }
8888 const expectHeader = ( a : string , b : string | RegExp | null | string [ ] ) => {
8989 const header = res . headers . get ( a )
90-
90+
9191 if ( b instanceof RegExp ) {
9292 if ( header === null ) {
9393 throw new Error ( `expected header ${ header } to not be empty` )
@@ -112,7 +112,9 @@ export const makeFetch = (h: HandlerOrListener) => {
112112 assertEquals (
113113 header ,
114114 b ,
115- `expected to have header ${ a } ${ header === null ? 'empty' : `with value ${ b } , got ${ header } ` } ` ,
115+ `expected to have header ${ a } ${
116+ header === null ? 'empty' : `with value ${ b } , got ${ header } `
117+ } `,
116118 )
117119 }
118120 return {
0 commit comments