mirror of
https://github.com/denoland/deno.git
synced 2024-11-29 16:30:56 -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 "./rename_test.ts";
|
||||||
import "./request_test.ts";
|
import "./request_test.ts";
|
||||||
import "./resources_test.ts";
|
import "./resources_test.ts";
|
||||||
|
import "./response_test.ts";
|
||||||
import "./signal_test.ts";
|
import "./signal_test.ts";
|
||||||
import "./stat_test.ts";
|
import "./stat_test.ts";
|
||||||
import "./stdio_test.ts";
|
import "./stdio_test.ts";
|
||||||
|
|
|
@ -869,7 +869,7 @@
|
||||||
if (this._bodySource instanceof ReadableStream) {
|
if (this._bodySource instanceof ReadableStream) {
|
||||||
return bufferFromStream(this._bodySource.getReader(), this.#size);
|
return bufferFromStream(this._bodySource.getReader(), this.#size);
|
||||||
}
|
}
|
||||||
return bodyToArrayBuffer(this._bodySource);
|
return Promise.resolve(bodyToArrayBuffer(this._bodySource));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue