File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed
Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change 1+ import { ZodError } from 'zod/v4' ;
12import { JSONRPCMessage } from '../types.js' ;
23import { ReadBuffer } from './stdio.js' ;
34
@@ -34,9 +35,17 @@ test('should be reusable after clearing', () => {
3435 expect ( readBuffer . readMessage ( ) ) . toEqual ( testMessage ) ;
3536} ) ;
3637
37- test ( 'should override invalid messages and return null' , ( ) => {
38+ test ( 'should override invalid json message and return null' , ( ) => {
3839 const readBuffer = new ReadBuffer ( ) ;
3940
4041 readBuffer . append ( Buffer . from ( 'invalid message\n' ) ) ;
4142 expect ( readBuffer . readMessage ( ) ) . toBeNull ( ) ;
4243} ) ;
44+
45+ test ( 'should throw validation error on invalid JSON-RPC message' , ( ) => {
46+ const readBuffer = new ReadBuffer ( ) ;
47+ const invalidJsonRpcMessage = '{"jsonrpc":"2.0","method":123}\n' ;
48+ readBuffer . append ( Buffer . from ( invalidJsonRpcMessage ) ) ;
49+ expect ( ( ) => readBuffer . readMessage ( ) ) . toThrowError ( ZodError ) ;
50+ } ) ;
51+
Original file line number Diff line number Diff line change @@ -35,8 +35,8 @@ export function deserializeMessage(line: string): JSONRPCMessage | null {
3535 try {
3636 return JSONRPCMessageSchema . parse ( JSON . parse ( line ) ) ;
3737 } catch ( error : unknown ) {
38- // When Non JSONRPC message is received (parsing error or schema validation error), return null
39- if ( error instanceof ZodError || error instanceof SyntaxError ) {
38+ // When non-JSON messages are received, we ignore them.
39+ if ( error instanceof SyntaxError ) {
4040 return null ;
4141 }
4242 throw error ;
You can’t perform that action at this time.
0 commit comments