diff options
Diffstat (limited to 'http/server_test.ts')
| -rw-r--r-- | http/server_test.ts | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/http/server_test.ts b/http/server_test.ts index 4f1bc1c40..09a8df2bd 100644 --- a/http/server_test.ts +++ b/http/server_test.ts @@ -19,6 +19,28 @@ interface ResponseTest { const enc = new TextEncoder(); const dec = new TextDecoder(); +interface Deferred { + promise: Promise<{}>; + resolve: () => void; + reject: () => void; +} + +function deferred(isResolved = false): Deferred { + let resolve, reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + if (isResolved) { + resolve(); + } + return { + promise, + resolve, + reject + }; +} + const responseTests: ResponseTest[] = [ // Default response { @@ -44,7 +66,24 @@ test(async function responseWrite() { const buf = new Buffer(); const bufw = new BufWriter(buf); const request = new ServerRequest(); + request.pipelineId = 1; request.w = bufw; + request.conn = { + localAddr: "", + remoteAddr: "", + rid: -1, + closeRead: () => {}, + closeWrite: () => {}, + read: async () => { + return { eof: true, nread: 0 }; + }, + write: async () => { + return -1; + }, + close: () => {}, + lastPipelineId: 0, + pendingDeferredMap: new Map([[0, deferred(true)], [1, deferred()]]) + }; await request.respond(testCase.response); assertEquals(buf.toString(), testCase.raw); |
