Skip to content

Commit e6c28d6

Browse files
Reflexclaude
andcommitted
fix: prettier lint and h2-transport test teardown
- Run eslint --fix to satisfy prettier formatting in h2-transport - Tear down active server H2 sessions before closing the test server so afterAll() no longer hangs on lingering client pools Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent a630ecb commit e6c28d6

4 files changed

Lines changed: 20 additions & 11 deletions

File tree

src/lib/h2-transport/pool.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,10 @@ export class H2Pool {
9595
const session = this._findAvailable();
9696
if (!session) break;
9797
const req = this._queue.shift()!;
98-
this._dispatchToSession(session, req.path, req.method, req.headers, req.body, req.signal)
99-
.then(req.resolve, req.reject);
98+
this._dispatchToSession(session, req.path, req.method, req.headers, req.body, req.signal).then(
99+
req.resolve,
100+
req.reject,
101+
);
100102
}
101103

102104
if (this._queue.length > 0 && !this._growing) {

src/lib/h2-transport/response.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,7 @@ export class H2Response {
1414
private _bodyConsumed = false;
1515
private _bodyBytes: Buffer | null = null;
1616

17-
constructor(
18-
status: number,
19-
headers: H2Headers,
20-
body: ReadableStream<Uint8Array>,
21-
url: string,
22-
) {
17+
constructor(status: number, headers: H2Headers, body: ReadableStream<Uint8Array>, url: string) {
2318
this.status = status;
2419
this.ok = status >= 200 && status < 300;
2520
this.url = url;

src/lib/h2-transport/session.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ export class H2Session {
5858
this._session = session;
5959

6060
const timeout = setTimeout(() => {
61-
session.destroy(new Error(`H2 connect timeout after ${this._opts.connectTimeout ?? DEFAULT_CONNECT_TIMEOUT}ms`));
61+
session.destroy(
62+
new Error(`H2 connect timeout after ${this._opts.connectTimeout ?? DEFAULT_CONNECT_TIMEOUT}ms`),
63+
);
6264
}, this._opts.connectTimeout ?? DEFAULT_CONNECT_TIMEOUT);
6365

6466
session.on('connect', () => {

tests/lib/h2-transport.test.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,22 @@ function startTestServer(
4444
stream.on('error', () => {});
4545
handler(stream, headers);
4646
});
47-
server.on('session', (session) => { session.on('error', () => {}); });
47+
const sessions = new Set<http2.ServerHttp2Session>();
48+
server.on('session', (session) => {
49+
sessions.add(session);
50+
session.on('error', () => {});
51+
session.on('close', () => sessions.delete(session));
52+
});
4853
server.listen(0, () => {
4954
const port = (server.address() as any).port;
5055
resolve({
5156
port,
52-
close: () => new Promise<void>((res) => server.close(() => res())),
57+
close: () =>
58+
new Promise<void>((res) => {
59+
for (const session of sessions) session.destroy();
60+
sessions.clear();
61+
server.close(() => res());
62+
}),
5363
});
5464
});
5565
});

0 commit comments

Comments
 (0)