Skip to content

Commit de3716b

Browse files
committed
fixup! fix(@angular/ssr): settle writeResponseToNodeResponse when client disconnects
1 parent a6bdad6 commit de3716b

2 files changed

Lines changed: 6 additions & 18 deletions

File tree

packages/angular/ssr/node/test/response_http1_spec.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,7 @@ describe('writeResponseToNodeResponse (HTTP/1.1)', () => {
109109
});
110110

111111
it('should resolve and cancel reader when client disconnects while response is backpressured', async () => {
112-
let resolveWritePromise: () => void;
113-
const writePromise = new Promise<void>((resolve) => {
114-
resolveWritePromise = resolve;
115-
});
116-
112+
let writePromise!: Promise<void>;
117113
let readerCancelled = false;
118114
const largeChunk = 'x'.repeat(1024 * 1024 * 4); // 4MB to ensure backpressure
119115
const stream = new ReadableStream({
@@ -126,10 +122,8 @@ describe('writeResponseToNodeResponse (HTTP/1.1)', () => {
126122
},
127123
});
128124

129-
server.once('request', (req, nodeResponse) => {
130-
void writeResponseToNodeResponse(new Response(stream), nodeResponse).finally(() => {
131-
resolveWritePromise();
132-
});
125+
server.once('request', (_, nodeResponse) => {
126+
writePromise = writeResponseToNodeResponse(new Response(stream), nodeResponse);
133127
});
134128

135129
await new Promise<void>((resolve) => {

packages/angular/ssr/node/test/response_http2_spec.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,7 @@ describe('writeResponseToNodeResponse (HTTP/2)', () => {
118118
});
119119

120120
it('should resolve and cancel reader when client disconnects while response is backpressured', async () => {
121-
let resolveWritePromise: () => void;
122-
const writePromise = new Promise<void>((resolve) => {
123-
resolveWritePromise = resolve;
124-
});
125-
121+
let writePromise!: Promise<void>;
126122
let readerCancelled = false;
127123
const largeChunk = 'x'.repeat(1024 * 1024); // 1MB to exceed HTTP/2 flow control window
128124
const stream = new ReadableStream({
@@ -135,10 +131,8 @@ describe('writeResponseToNodeResponse (HTTP/2)', () => {
135131
},
136132
});
137133

138-
server.once('request', (req, nodeResponse) => {
139-
void writeResponseToNodeResponse(new Response(stream), nodeResponse).finally(() => {
140-
resolveWritePromise();
141-
});
134+
server.once('request', (_, nodeResponse) => {
135+
writePromise = writeResponseToNodeResponse(new Response(stream), nodeResponse);
142136
});
143137

144138
await new Promise<void>((resolve) => {

0 commit comments

Comments
 (0)