Something went wrong. Try again.
Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package main
import ( "path/filepath" "strings" "testing"
"tangled.org/core/spindle/config" "tangled.org/core/spindle/db")
// xrpc refuses a banned owner, which leaves the cli as the only way back infunc TestCLIUnbansABannedOwnerStraightOnTheDB(t *testing.T) { owner := "did:plc:theowner" t.Setenv("SPINDLE_SERVER_OWNER", owner) dbPath := filepath.Join(t.TempDir(), "spindle.db")
if out, code := runCLI(t, dbPath, "ban", owner); code != 0 { t.Fatalf("ban = %d: %s", code, out) } if out, code := runCLI(t, dbPath, "bans"); code != 0 || !strings.Contains(out, owner) { t.Fatalf("bans = %d: %q, want the owner listed", code, out) }
d, err := db.Make(t.Context(), dbPath) if err != nil { t.Fatal(err) } srv := &config.Server{Owner: owner} enrolled, err := db.Enrolls(d, srv, "did:plc:theowner") d.Close() if err != nil || enrolled { t.Fatalf("banned owner enrolls = %v, %v, want a ban to beat being the owner", enrolled, err) }
if out, code := runCLI(t, dbPath, "unban", owner); code != 0 { t.Fatalf("unban = %d: %s", code, out) } if out, code := runCLI(t, dbPath, "bans"); code != 0 || strings.Contains(out, owner) { t.Fatalf("bans after unban = %d: %q, want the owner gone", code, out) } d, err = db.Make(t.Context(), dbPath) if err != nil { t.Fatal(err) } defer d.Close() enrolled, err = db.Enrolls(d, srv, "did:plc:theowner") if err != nil || !enrolled { t.Fatalf("unbanned owner enrolls = %v, %v, want the owner served again", enrolled, err) }
if out, code := runCLI(t, dbPath, "unban", owner); code == 0 || !strings.Contains(out, "is not banned") { t.Fatalf("unbanning someone not banned = %d: %s, want an error", code, out) }}