@@ -16,7 +16,7 @@ type handler struct {
16
16
F func (c context.Context , params * json.RawMessage ) (interface {}, * Error )
17
17
}
18
18
19
- func (h handler ) ServeJSONRPC (c context.Context , params * json.RawMessage ) (interface {}, * Error ) {
19
+ func (h * handler ) ServeJSONRPC (c context.Context , params * json.RawMessage ) (interface {}, * Error ) {
20
20
return h .F (c , params )
21
21
}
22
22
@@ -47,11 +47,16 @@ func TestHandler(t *testing.T) {
47
47
require .NoError (t , err )
48
48
assert .NotNil (t , res .Error )
49
49
50
- h := handler {}
51
- h .F = func (c context.Context , params * json.RawMessage ) (interface {}, * Error ) {
50
+ h1 := & handler {}
51
+ h1 .F = func (c context.Context , params * json.RawMessage ) (interface {}, * Error ) {
52
52
return "hello" , nil
53
53
}
54
- require .NoError (t , RegisterMethod ("hello" , h , nil , nil ))
54
+ require .NoError (t , RegisterMethod ("hello" , h1 , nil , nil ))
55
+ h2 := & handler {}
56
+ h2 .F = func (c context.Context , params * json.RawMessage ) (interface {}, * Error ) {
57
+ return nil , ErrInternal ()
58
+ }
59
+ require .NoError (t , RegisterMethod ("bye" , h2 , nil , nil ))
55
60
56
61
rec = httptest .NewRecorder ()
57
62
r , err = http .NewRequest ("" , "" , bytes .NewReader ([]byte (`{"jsonrpc":"2.0","id":"test","method":"hello","params":{}}` )))
@@ -64,4 +69,15 @@ func TestHandler(t *testing.T) {
64
69
require .NoError (t , err )
65
70
assert .Nil (t , res .Error )
66
71
assert .Equal (t , "hello" , res .Result )
72
+
73
+ rec = httptest .NewRecorder ()
74
+ r , err = http .NewRequest ("" , "" , bytes .NewReader ([]byte (`{"jsonrpc":"2.0","id":"test","method":"bye","params":{}}` )))
75
+ require .NoError (t , err )
76
+ r .Header .Set ("Content-Type" , "application/json" )
77
+
78
+ HandlerFunc (c , rec , r )
79
+ res = Response {}
80
+ err = json .NewDecoder (rec .Body ).Decode (& res )
81
+ require .NoError (t , err )
82
+ assert .NotNil (t , res .Error )
67
83
}
0 commit comments