@@ -154,7 +154,9 @@ func TestJSONRPCMalformedBatchReturnsParseErrorObject(t *testing.T) {
154154
155155 require .Equal (t , http .StatusOK , rr .Code )
156156 require .Equal (t , "application/json" , rr .Header ().Get ("Content-Type" ))
157- requireRPCError (t , decodeRPCResponse (t , rr .Body .Bytes ()), nil , JSONRPC_PARSE_ERROR )
157+ response := decodeRPCResponse (t , rr .Body .Bytes ())
158+ requireRPCError (t , response , nil , JSONRPC_PARSE_ERROR )
159+ require .Equal (t , "Parse error" , response .Error .Message )
158160}
159161
160162func TestJSONRPCMalformedObjectReturnsJSONContentType (t * testing.T ) {
@@ -163,7 +165,9 @@ func TestJSONRPCMalformedObjectReturnsJSONContentType(t *testing.T) {
163165
164166 require .Equal (t , http .StatusOK , rr .Code )
165167 require .Equal (t , "application/json" , rr .Header ().Get ("Content-Type" ))
166- requireRPCError (t , decodeRPCResponse (t , rr .Body .Bytes ()), nil , JSONRPC_PARSE_ERROR )
168+ response := decodeRPCResponse (t , rr .Body .Bytes ())
169+ requireRPCError (t , response , nil , JSONRPC_PARSE_ERROR )
170+ require .Equal (t , "Parse error" , response .Error .Message )
167171}
168172
169173func TestJSONRPCDiscoverPreservesLargeIntegerLiterals (t * testing.T ) {
@@ -236,19 +240,24 @@ func TestJSONRPCBatchStructurallyInvalidElementsDoNotPoisonValidSiblings(t *test
236240
237241func TestJSONRPCValidationErrorsEchoValidID (t * testing.T ) {
238242 s := newBatchTestService ()
239- tests := map [string ]string {
240- "missing method" : `{"jsonrpc":"2.0","id":"request-id"}` ,
241- "invalid version" : `{"jsonrpc":"1.0","method":"cartesi_getNodeVersion","id":42}` ,
243+ tests := map [string ]struct {
244+ body string
245+ id any
246+ message string
247+ }{
248+ "missing method" : {
249+ body : `{"jsonrpc":"2.0","id":"request-id"}` , id : "request-id" , message : "Invalid Request" ,
250+ },
251+ "invalid version" : {
252+ body : `{"jsonrpc":"1.0","method":"cartesi_getNodeVersion","id":42}` , id : float64 (42 ), message : "Unsupported JSON-RPC version" ,
253+ },
242254 }
243255
244- for name , body := range tests {
256+ for name , test := range tests {
245257 t .Run (name , func (t * testing.T ) {
246- response := decodeRPCResponse (t , serveRPC (t , s , []byte (body )).Body .Bytes ())
247- expectedID := any ("request-id" )
248- if name == "invalid version" {
249- expectedID = float64 (42 )
250- }
251- requireRPCError (t , response , expectedID , JSONRPC_INVALID_REQUEST )
258+ response := decodeRPCResponse (t , serveRPC (t , s , []byte (test .body )).Body .Bytes ())
259+ requireRPCError (t , response , test .id , JSONRPC_INVALID_REQUEST )
260+ require .Equal (t , test .message , response .Error .Message )
252261 })
253262 }
254263}
@@ -265,6 +274,7 @@ func TestJSONRPCRejectsInvalidIDTypesWithNullID(t *testing.T) {
265274 `{"jsonrpc":"2.0","method":"cartesi_getNodeVersion","id":%s}` , id ))
266275 response := decodeRPCResponse (t , serveRPC (t , s , body ).Body .Bytes ())
267276 requireRPCError (t , response , nil , JSONRPC_INVALID_REQUEST )
277+ require .Equal (t , "Invalid request ID" , response .Error .Message )
268278 })
269279 }
270280}
@@ -470,8 +480,10 @@ func TestJSONRPCBatchReturnsErrorsForIDDRequestsAfterDeadline(t *testing.T) {
470480 requireRPCError (t , responses [4 ], nil , JSONRPC_INVALID_REQUEST )
471481 requireRPCError (t , responses [5 ], nil , JSONRPC_TIMEOUT_ERROR )
472482 for i , response := range responses {
473- if i == 3 || i == 4 {
474- require .Equal (t , "invalid request" , response .Error .Message )
483+ if i == 3 {
484+ require .Equal (t , "Invalid Request" , response .Error .Message )
485+ } else if i == 4 {
486+ require .Equal (t , "Invalid request ID" , response .Error .Message )
475487 } else {
476488 require .Equal (t , "Request timed out" , response .Error .Message )
477489 }
0 commit comments