summaryrefslogtreecommitdiff
path: root/std/http/server_test.ts
diff options
context:
space:
mode:
authorKevin (Kun) "Kassimo" Qian <kevinkassimo@gmail.com>2020-01-17 15:44:35 -0800
committerRy Dahl <ry@tinyclouds.org>2020-01-17 18:44:35 -0500
commitfc077cd315f3d2ea508f2aac39bc65d4ac6a5747 (patch)
tree6a37b08aee4dbd425ba6cdf58b6604e99c389b24 /std/http/server_test.ts
parent5fa056e53be6d17ab746629ea0eaa89fe817141b (diff)
std/http: allow response body to be string (#3705)
Diffstat (limited to 'std/http/server_test.ts')
-rw-r--r--std/http/server_test.ts32
1 files changed, 32 insertions, 0 deletions
diff --git a/std/http/server_test.ts b/std/http/server_test.ts
index 5dbbe526c..5fe06f357 100644
--- a/std/http/server_test.ts
+++ b/std/http/server_test.ts
@@ -346,6 +346,38 @@ test(async function writeUint8ArrayResponse(): Promise<void> {
assertEquals(eof, Deno.EOF);
});
+test(async function writeStringResponse(): Promise<void> {
+ const body = "Hello";
+
+ const res: Response = { body };
+
+ const buf = new Deno.Buffer();
+ await writeResponse(buf, res);
+
+ const decoder = new TextDecoder("utf-8");
+ const reader = new BufReader(buf);
+
+ let r: ReadLineResult;
+ r = assertNotEOF(await reader.readLine());
+ assertEquals(decoder.decode(r.line), "HTTP/1.1 200 OK");
+ assertEquals(r.more, false);
+
+ r = assertNotEOF(await reader.readLine());
+ assertEquals(decoder.decode(r.line), `content-length: ${body.length}`);
+ assertEquals(r.more, false);
+
+ r = assertNotEOF(await reader.readLine());
+ assertEquals(r.line.byteLength, 0);
+ assertEquals(r.more, false);
+
+ r = assertNotEOF(await reader.readLine());
+ assertEquals(decoder.decode(r.line), body);
+ assertEquals(r.more, false);
+
+ const eof = await reader.readLine();
+ assertEquals(eof, Deno.EOF);
+});
+
test(async function writeStringReaderResponse(): Promise<void> {
const shortText = "Hello";