Skip to content

Commit d6f5748

Browse files
committed
Port another test from internal streams tests
1 parent 008d874 commit d6f5748

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

src/workerd/api/tests/BUILD.bazel

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,3 +737,9 @@ wd_test(
737737
args = ["--experimental"],
738738
data = ["identity-transform-stream-state-machine-test.js"],
739739
)
740+
741+
wd_test(
742+
src = "response-used-body-test.wd-test",
743+
args = ["--experimental"],
744+
data = ["response-used-body-test.js"],
745+
)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { rejects } from 'assert';
2+
3+
// Ported from the internal respond.ew-test
4+
5+
export const abortInternalStreamsTest = {
6+
async test(_, env) {
7+
await rejects(env.subrequest.fetch('http://example.org'), {
8+
message: /Body has already been used/,
9+
});
10+
},
11+
};
12+
13+
export default {
14+
async fetch() {
15+
const enc = new TextEncoder();
16+
const rs = new ReadableStream({
17+
pull(c) {
18+
c.enqueue(enc.encode('hello'));
19+
},
20+
});
21+
const response = new Response(rs);
22+
rs.cancel(new Error('boom'));
23+
return response;
24+
},
25+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using Workerd = import "/workerd/workerd.capnp";
2+
3+
const unitTests :Workerd.Config = (
4+
services = [
5+
( name = "response-used-body-test",
6+
worker = (
7+
modules = [
8+
(name = "worker", esModule = embed "response-used-body-test.js")
9+
],
10+
compatibilityFlags = ["nodejs_compat_v2", "streams_enable_constructors"],
11+
bindings = [
12+
(name = "subrequest", service = "response-used-body-test")
13+
]
14+
)
15+
),
16+
],
17+
);

0 commit comments

Comments
 (0)