mirror of
https://github.com/nbd-wtf/go-nostr.git
synced 2025-06-20 05:42:10 +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"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/mailru/easyjson"
|
||||
jwriter "github.com/mailru/easyjson/jwriter"
|
||||
@ -190,7 +191,9 @@ func (v CountEnvelope) MarshalJSON() ([]byte, error) {
|
||||
w.RawString(`["COUNT",`)
|
||||
w.RawString(`"` + v.SubscriptionID + `"`)
|
||||
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 {
|
||||
for _, filter := range v.Filters {
|
||||
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) {
|
||||
okEnvelopes := []string{
|
||||
`["OK","3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefaaaaa",false,"error: could not connect to the database"]`,
|
||||
|
Loading…
x
Reference in New Issue
Block a user