Files
realy/httpauth/nip98auth_test.go

41 lines
814 B
Go

package httpauth
import (
"bytes"
"net/http"
"net/url"
"testing"
"realy.lol/lol"
"realy.lol/p256k"
)
func TestMakeNIP98Request_ValidateNIP98Request(t *testing.T) {
lol.SetLogLevel("trace")
sign := new(p256k.Signer)
err := sign.Generate()
if chk.E(err) {
t.Fatal(err)
}
var ur *url.URL
if ur, err = url.Parse("https://example.com/getnpubs?a=b&c=d"); chk.E(err) {
t.Fatal(err)
}
var r *http.Request
if r, err = MakeNIP98GetRequest(ur, "test/0.0.0", sign); chk.E(err) {
t.Fatal(err)
}
var pk []byte
var valid bool
if valid, pk, err = ValidateRequest(r, nil); chk.E(err) {
t.Fatal(err)
}
if !valid {
t.Fatal("request event signature not valid")
}
if !bytes.Equal(pk, sign.Pub()) {
t.Fatalf("unexpected pubkey in nip-98 http auth event: %0x expected %0x",
pk, sign.Pub())
}
}