typescript-sdk/test/shared/stdio.test.ts
2025-12-05 23:56:12 +00:00

35 lines
1.1 KiB
TypeScript

import { JSONRPCMessage } from '../../src/types.js';
import { ReadBuffer } from '../../src/shared/stdio.js';
const testMessage: JSONRPCMessage = {
jsonrpc: '2.0',
method: 'foobar'
};
test('should have no messages after initialization', () => {
const readBuffer = new ReadBuffer();
expect(readBuffer.readMessage()).toBeNull();
});
test('should only yield a message after a newline', () => {
const readBuffer = new ReadBuffer();
readBuffer.append(Buffer.from(JSON.stringify(testMessage)));
expect(readBuffer.readMessage()).toBeNull();
readBuffer.append(Buffer.from('\n'));
expect(readBuffer.readMessage()).toEqual(testMessage);
expect(readBuffer.readMessage()).toBeNull();
});
test('should be reusable after clearing', () => {
const readBuffer = new ReadBuffer();
readBuffer.append(Buffer.from('foobar'));
readBuffer.clear();
expect(readBuffer.readMessage()).toBeNull();
readBuffer.append(Buffer.from(JSON.stringify(testMessage)));
readBuffer.append(Buffer.from('\n'));
expect(readBuffer.readMessage()).toEqual(testMessage);
});