Skip to content

Commit 38e81ea

Browse files
chore: add mock stream cleanup
Ensure proper disposal of mock streams to prevent resource leaks and avoid process hangs.
1 parent a53f801 commit 38e81ea

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/integration-tests/process-cleanup.test.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Readable, Writable } from 'stream';
12
import { Client } from '../client/index.js';
23
import { StdioClientTransport } from '../client/stdio.js';
34
import { Server } from '../server/index.js';
@@ -17,12 +18,28 @@ describe('Process cleanup', () => {
1718
}
1819
);
1920

20-
const transport = new StdioServerTransport();
21+
const mockReadable = new Readable({
22+
read() {
23+
this.push(null); // signal EOF
24+
}
25+
}),
26+
mockWritable = new Writable({
27+
write(chunk, encoding, callback) {
28+
callback();
29+
}
30+
});
31+
32+
// Attach mock streams to process for the server transport
33+
const transport = new StdioServerTransport(mockReadable, mockWritable);
2134
await server.connect(transport);
2235

2336
// Close the transport
2437
await transport.close();
2538

39+
// ensure a proper disposal mock streams
40+
mockReadable.destroy();
41+
mockWritable.destroy();
42+
2643
// If we reach here without hanging, the test passes
2744
// The test runner will fail if the process hangs
2845
expect(true).toBe(true);

0 commit comments

Comments
 (0)