nip42_test.go raw
1 package auth
2
3 import (
4 "testing"
5
6 "next.orly.dev/pkg/nostr/interfaces/signer/p8k"
7 "next.orly.dev/pkg/lol/chk"
8 )
9
10 func TestCreateUnsigned(t *testing.T) {
11 var err error
12 signer := p8k.MustNew()
13 if err = signer.Generate(); chk.E(err) {
14 t.Fatal(err)
15 }
16 var ok bool
17 const relayURL = "wss://example.com"
18 for range 100 {
19 challenge := GenerateChallenge()
20 ev := CreateUnsigned(signer.Pub(), challenge, relayURL)
21 if err = ev.Sign(signer); chk.E(err) {
22 t.Fatal(err)
23 }
24 // log.I.S(ev)
25 if ok, err = Validate(ev, challenge, relayURL); chk.E(err) {
26 t.Fatal(err)
27 }
28 if !ok {
29 bb := ev.Marshal(nil)
30 t.Fatalf("failed to validate auth event\n%s", bb)
31 }
32 }
33 }
34