mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-20 13:50:55 +02:00
improve COUNT envelope codec and add a test.
This commit is contained in:
parent
9a29edca41
commit
abe84f9089
@ -4,6 +4,7 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/mailru/easyjson"
|
"github.com/mailru/easyjson"
|
||||||
jwriter "github.com/mailru/easyjson/jwriter"
|
jwriter "github.com/mailru/easyjson/jwriter"
|
||||||
@ -190,7 +191,9 @@ func (v CountEnvelope) MarshalJSON() ([]byte, error) {
|
|||||||
w.RawString(`["COUNT",`)
|
w.RawString(`["COUNT",`)
|
||||||
w.RawString(`"` + v.SubscriptionID + `"`)
|
w.RawString(`"` + v.SubscriptionID + `"`)
|
||||||
if v.Count != nil {
|
if v.Count != nil {
|
||||||
w.RawString(fmt.Sprintf(`,{"count":%d}`, *v.Count))
|
w.RawString(`,{"count":`)
|
||||||
|
w.RawString(strconv.FormatInt(*v.Count, 10))
|
||||||
|
w.RawString(`}`)
|
||||||
} else {
|
} else {
|
||||||
for _, filter := range v.Filters {
|
for _, filter := range v.Filters {
|
||||||
w.RawString(`,`)
|
w.RawString(`,`)
|
||||||
|
@ -63,6 +63,19 @@ func TestEoseEnvelopeEncodingAndDecoding(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCountEnvelopeEncodingAndDecoding(t *testing.T) {
|
||||||
|
src := `["COUNT","z",{"count":12}]`
|
||||||
|
var env CountEnvelope
|
||||||
|
json.Unmarshal([]byte(src), &env)
|
||||||
|
if *env.Count != 12 {
|
||||||
|
t.Error("failed to decode COUNT")
|
||||||
|
}
|
||||||
|
|
||||||
|
if res, _ := json.Marshal(env); string(res) != src {
|
||||||
|
t.Errorf("failed to encode COUNT: expected '%s', got '%s'", src, string(res))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestOKEnvelopeEncodingAndDecoding(t *testing.T) {
|
func TestOKEnvelopeEncodingAndDecoding(t *testing.T) {
|
||||||
okEnvelopes := []string{
|
okEnvelopes := []string{
|
||||||
`["OK","3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefaaaaa",false,"error: could not connect to the database"]`,
|
`["OK","3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefaaaaa",false,"error: could not connect to the database"]`,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user