Files
transit/tag/tag_test.go
2025-05-21 12:21:19 +01:00

72 lines
1.3 KiB
Go

package tag
import (
"crypto/ed25519"
"encoding/json"
"net/url"
"testing"
"lukechampine.com/frand"
"github.com/mleku/transit/chk"
"github.com/mleku/transit/id"
"github.com/mleku/transit/log"
"github.com/mleku/transit/pubkey"
)
func TestNew(t *testing.T) {
// root
root := T{"root", generateId()}
var b []byte
var err error
if b, err = json.Marshal(&root); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
// parent
parent := T{"parent", generateId()}
if b, err = json.Marshal(&parent); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
// event
eid := T{"event", generateId()}
if b, err = json.Marshal(&eid); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
// user
pk := T{"user", generatePubkey()}
if b, err = json.Marshal(&pk); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
// hashtag
hashtag := "winning"
ht := T{"hashtag", hashtag}
if b, err = json.Marshal(&ht); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
// url
var u *url.URL
if u, err = url.Parse("http://example.com"); chk.E(err) {
t.Fatal(err)
}
ut := T{"url", u}
if b, err = json.Marshal(&ut); chk.E(err) {
t.Fatal(err)
}
log.I.F("%s", b)
}
func generateId() (i *id.I) { return id.New(frand.Bytes(32)) }
func generatePubkey() (p *pubkey.P) {
var pub ed25519.PublicKey
pub, _, _ = ed25519.GenerateKey(frand.Reader)
p = pubkey.New(pub)
return
}