summaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2024-11-15 15:54:28 +0100
committerGitHub <noreply@github.com>2024-11-15 15:54:28 +0100
commitb8cf2599242a9d85d03b57d3649ccdf8bce1530e (patch)
tree87a6288f2174aa6d22730a9ec020292b778c9dca /tests/unit
parent3f26310728ef2d56ace7370a555eb9a862295983 (diff)
feat(fetch): accept async iterables for body (#26882)
Reland of #24623, but with a fix for `String` objects. Co-authored-by: crowlkats <crowlkats@toaxl.com>
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/fetch_test.ts27
-rw-r--r--tests/unit/streams_test.ts15
2 files changed, 41 insertions, 1 deletions
diff --git a/tests/unit/fetch_test.ts b/tests/unit/fetch_test.ts
index 3ae96746a..6d3fd8cc1 100644
--- a/tests/unit/fetch_test.ts
+++ b/tests/unit/fetch_test.ts
@@ -2119,3 +2119,30 @@ Deno.test(
await server;
},
);
+
+Deno.test("fetch async iterable", async () => {
+ const iterable = (async function* () {
+ yield new Uint8Array([1, 2, 3, 4, 5]);
+ yield new Uint8Array([6, 7, 8, 9, 10]);
+ })();
+ const res = new Response(iterable);
+ const actual = await res.bytes();
+ const expected = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
+ assertEquals(actual, expected);
+});
+
+Deno.test("fetch iterable", async () => {
+ const iterable = (function* () {
+ yield new Uint8Array([1, 2, 3, 4, 5]);
+ yield new Uint8Array([6, 7, 8, 9, 10]);
+ })();
+ const res = new Response(iterable);
+ const actual = await res.bytes();
+ const expected = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
+ assertEquals(actual, expected);
+});
+
+Deno.test("fetch string object", async () => {
+ const res = new Response(Object("hello"));
+ assertEquals(await res.text(), "hello");
+});
diff --git a/tests/unit/streams_test.ts b/tests/unit/streams_test.ts
index b866fa7d5..73f9a6095 100644
--- a/tests/unit/streams_test.ts
+++ b/tests/unit/streams_test.ts
@@ -1,5 +1,10 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-import { assertEquals, assertRejects, fail } from "./test_util.ts";
+import {
+ assertEquals,
+ assertRejects,
+ assertThrows,
+ fail,
+} from "./test_util.ts";
const {
core,
@@ -533,3 +538,11 @@ Deno.test(async function decompressionStreamInvalidGzipStillReported() {
"corrupt gzip stream does not have a matching checksum",
);
});
+
+Deno.test(function readableStreamFromWithStringThrows() {
+ assertThrows(
+ () => ReadableStream.from("string"),
+ TypeError,
+ "Failed to execute 'ReadableStream.from': Argument 1 can not be converted to async iterable.",
+ );
+});