mirror of
https://github.com/denoland/deno.git
synced 2024-11-25 15:29:32 -05:00
fix: Response.arrayBuffer() doesn't return promise (#7618)
This commit is contained in:
parent
92edc36442
commit
5c2e499c3a
3 changed files with 53 additions and 1 deletions
51
cli/tests/unit/response_test.ts
Normal file
51
cli/tests/unit/response_test.ts
Normal file
|
@ -0,0 +1,51 @@
|
|||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
||||
import { unitTest, assert, assertEquals } from "./test_util.ts";
|
||||
|
||||
unitTest(async function responseText() {
|
||||
const response = new Response("hello world");
|
||||
const textPromise = response.text();
|
||||
assert(textPromise instanceof Promise);
|
||||
const text = await textPromise;
|
||||
assert(typeof text === "string");
|
||||
assertEquals(text, "hello world");
|
||||
});
|
||||
|
||||
unitTest(async function responseArrayBuffer() {
|
||||
const response = new Response(new Uint8Array([1, 2, 3]));
|
||||
const arrayBufferPromise = response.arrayBuffer();
|
||||
assert(arrayBufferPromise instanceof Promise);
|
||||
const arrayBuffer = await arrayBufferPromise;
|
||||
assert(arrayBuffer instanceof ArrayBuffer);
|
||||
assertEquals(new Uint8Array(arrayBuffer), new Uint8Array([1, 2, 3]));
|
||||
});
|
||||
|
||||
unitTest(async function responseJson() {
|
||||
const response = new Response('{"hello": "world"}');
|
||||
const jsonPromise = response.json();
|
||||
assert(jsonPromise instanceof Promise);
|
||||
const json = await jsonPromise;
|
||||
assert(json instanceof Object);
|
||||
assertEquals(json, { hello: "world" });
|
||||
});
|
||||
|
||||
unitTest(async function responseBlob() {
|
||||
const response = new Response(new Uint8Array([1, 2, 3]));
|
||||
const blobPromise = response.blob();
|
||||
assert(blobPromise instanceof Promise);
|
||||
const blob = await blobPromise;
|
||||
assert(blob instanceof Blob);
|
||||
assertEquals(blob, new Blob([new Uint8Array([1, 2, 3])]));
|
||||
});
|
||||
|
||||
unitTest(async function responseFormData() {
|
||||
const input = new FormData();
|
||||
input.append("hello", "world");
|
||||
const response = new Response(input, {
|
||||
headers: { "content-type": "application/x-www-form-urlencoded" },
|
||||
});
|
||||
const formDataPromise = response.formData();
|
||||
assert(formDataPromise instanceof Promise);
|
||||
const formData = await formDataPromise;
|
||||
assert(formData instanceof FormData);
|
||||
assertEquals(formData, input);
|
||||
});
|
|
@ -54,6 +54,7 @@ import "./remove_test.ts";
|
|||
import "./rename_test.ts";
|
||||
import "./request_test.ts";
|
||||
import "./resources_test.ts";
|
||||
import "./response_test.ts";
|
||||
import "./signal_test.ts";
|
||||
import "./stat_test.ts";
|
||||
import "./stdio_test.ts";
|
||||
|
|
|
@ -869,7 +869,7 @@
|
|||
if (this._bodySource instanceof ReadableStream) {
|
||||
return bufferFromStream(this._bodySource.getReader(), this.#size);
|
||||
}
|
||||
return bodyToArrayBuffer(this._bodySource);
|
||||
return Promise.resolve(bodyToArrayBuffer(this._bodySource));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue