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