1package gates23import (4 "context"5 "testing"67 "github.com/FelineStateMachine/tinyrelay/internal/event"8 "github.com/FelineStateMachine/tinyrelay/internal/policy"9 "github.com/FelineStateMachine/tinyrelay/internal/relay"10)1112func TestMembersOnlyReadDistinguishesAnonymousAndAuthenticatedOutsider(t *testing.T) {13 p := policy.Defaults("owner")14 p.Reads = "members"15 g, err := New(Config{Policy: func() policy.Policy { return p }})16 if err != nil {17 t.Fatal(err)18 }19 filter := []event.Filter{{Kinds: []int{1}}}20 if _, err := g.Read(context.Background(), filter, relay.Session{}); err == nil || err.Error() != "auth-required: this relay is members-only" {21 t.Fatalf("anonymous read error = %v", err)22 }23 if _, err := g.Read(context.Background(), filter, relay.Session{PubKeys: []string{"outsider"}}); err == nil || err.Error() != "restricted: this relay is members-only" {24 t.Fatalf("authenticated outsider read error = %v", err)25 }26}