mirror of
https://github.com/sourcegraph/jsonrpc2.git
synced 2026-06-18 05:00:03 +02:00
Add a way to specify more non-standard-compliant fields to Request (#50)
This change introduces `ExtraField`, a `CallOption` that can add arbitrary fields to the top-level JSON-RPC Request message.
This commit is contained in:
parent
5cdc7d6ccd
commit
d6ac66e24f
5 changed files with 159 additions and 32 deletions
|
|
@ -44,17 +44,21 @@ func TestRequest_MarshalUnmarshalJSON(t *testing.T) {
|
|||
want Request
|
||||
}{
|
||||
{
|
||||
data: []byte(`{"method":"m","params":{"foo":"bar"},"id":123,"jsonrpc":"2.0"}`),
|
||||
data: []byte(`{"id":123,"jsonrpc":"2.0","method":"m","params":{"foo":"bar"}}`),
|
||||
want: Request{ID: ID{Num: 123}, Method: "m", Params: &obj},
|
||||
},
|
||||
{
|
||||
data: []byte(`{"method":"m","params":null,"id":123,"jsonrpc":"2.0"}`),
|
||||
data: []byte(`{"id":123,"jsonrpc":"2.0","method":"m","params":null}`),
|
||||
want: Request{ID: ID{Num: 123}, Method: "m", Params: &null},
|
||||
},
|
||||
{
|
||||
data: []byte(`{"method":"m","id":123,"jsonrpc":"2.0"}`),
|
||||
data: []byte(`{"id":123,"jsonrpc":"2.0","method":"m"}`),
|
||||
want: Request{ID: ID{Num: 123}, Method: "m", Params: nil},
|
||||
},
|
||||
{
|
||||
data: []byte(`{"id":123,"jsonrpc":"2.0","method":"m","sessionId":"session"}`),
|
||||
want: Request{ID: ID{Num: 123}, Method: "m", Params: nil, ExtraFields: []RequestField{{Name: "sessionId", Value: "session"}}},
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
var got Request
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue