diff options
Diffstat (limited to 'cli/js/request_test.ts')
-rw-r--r-- | cli/js/request_test.ts | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/cli/js/request_test.ts b/cli/js/request_test.ts index e9e1f5164..3daca8f5a 100644 --- a/cli/js/request_test.ts +++ b/cli/js/request_test.ts @@ -1,5 +1,5 @@ // Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -import { test, assertEquals } from "./test_util.ts"; +import { test, assert, assertEquals } from "./test_util.ts"; test(function fromInit(): void { const req = new Request("https://example.com", { @@ -15,3 +15,35 @@ test(function fromInit(): void { assertEquals(req.url, "https://example.com"); assertEquals(req.headers.get("test-header"), "value"); }); + +test(function fromRequest(): void { + const r = new Request("https://example.com"); + // @ts-ignore + r._bodySource = "ahoyhoy"; + r.headers.set("test-header", "value"); + + const req = new Request(r); + + // @ts-ignore + assertEquals(req._bodySource, r._bodySource); + assertEquals(req.url, r.url); + assertEquals(req.headers.get("test-header"), r.headers.get("test-header")); +}); + +test(async function cloneRequestBodyStream(): Promise<void> { + // hack to get a stream + const stream = new Request("", { body: "a test body" }).body; + const r1 = new Request("https://example.com", { + body: stream + }); + + const r2 = r1.clone(); + + const b1 = await r1.text(); + const b2 = await r2.text(); + + assertEquals(b1, b2); + + // @ts-ignore + assert(r1._bodySource !== r2._bodySource); +}); |