Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485package db
import ( "testing"
"github.com/bluesky-social/indigo/atproto/syntax")
func TestBans_RoundTrip(t *testing.T) { d := newTestDB(t) repo := syntax.DID("did:plc:repo1")
b, err := d.GetBan(repo) if err != nil || b != nil { t.Fatalf("GetBan on empty store: %v, %v", b, err) }
if err := d.PutBan(BanEntry{SubjectDid: repo}); err != nil { t.Fatalf("PutBan: %v", err) } b, err = d.GetBan(repo) if err != nil || b == nil || b.CreatedAt == "" { t.Fatalf("GetBan after put: %+v, %v", b, err) }
first := *b if err := d.PutBan(BanEntry{SubjectDid: repo}); err != nil { t.Fatalf("PutBan idempotent: %v", err) } b, _ = d.GetBan(repo) if b.CreatedAt != first.CreatedAt { t.Fatalf("re-ban clobbered timestamp: %+v", b) }
ok, err := d.DeleteBan(repo) if err != nil || !ok { t.Fatalf("DeleteBan present: %v, %v", ok, err) } ok, err = d.DeleteBan(repo) if err != nil || ok { t.Fatalf("DeleteBan absent should report false: %v, %v", ok, err) }}
func TestBans_EffectiveBan(t *testing.T) { d := newTestDB(t) repo := syntax.DID("did:plc:repo2") owner := syntax.DID("did:plc:owner2")
if err := d.PutBan(BanEntry{SubjectDid: owner}); err != nil { t.Fatal(err) } b, _ := d.IsBanned(repo, owner) if b == nil || b.SubjectDid != owner { t.Fatalf("IsBanned should find the owner ban: %+v", b) } // a ban matches either role b, _ = d.IsBanned(owner, "did:plc:someoneelse") if b == nil || b.SubjectDid != owner { t.Fatalf("IsBanned should find the ban under the repo role too: %+v", b) }
b, _ = d.IsBanned("did:plc:cleanrepo", "did:plc:cleanowner") if b != nil { t.Fatalf("IsBanned false positive: %+v", b) }}
func TestBans_List(t *testing.T) { d := newTestDB(t) if err := d.PutBan(BanEntry{SubjectDid: "did:plc:b"}); err != nil { t.Fatal(err) } if err := d.PutBan(BanEntry{SubjectDid: "did:plc:a"}); err != nil { t.Fatal(err) } bans, err := d.BanList() if err != nil { t.Fatal(err) } if len(bans) != 2 || bans[0].SubjectDid != "did:plc:a" || bans[1].SubjectDid != "did:plc:b" { t.Fatalf("BanList order/content: %+v", bans) }}