Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455package db
import ( "errors" "testing" "time"
"github.com/bluesky-social/indigo/atproto/syntax")
func TestAStaleTicketAdvanceIsRefusedAndLeavesNoEvent(t *testing.T) { d := newTestDB(t) repo := syntax.DID("did:plc:a") if err := d.AddPullTicket(repo, "t1", PullTicket{Author: "did:plc:bob", State: "open", Version: "v1"}); err != nil { t.Fatal(err) } ev := PullEvent{RepoDid: repo, Ticket: "t1", Event: "closed", Pull: []byte("{}")}
if err := d.AdvancePullTicket(repo, "t1", "v1", "v2", "closed", &ev); err != nil { t.Fatal(err) } err := d.AdvancePullTicket(repo, "t1", "v1", "v3", "open", &ev) if !errors.Is(err, ErrPullRaced) { t.Fatalf("a second advance from v1 = %v, want ErrPullRaced", err) }
got, err := d.GetPullTicket(repo, "t1") if err != nil || got.Version != "v2" || got.State != "closed" { t.Fatalf("ticket = %+v, %v, want the first advance kept", got, err) } due, err := d.DuePullEvents(repo, time.Now().Add(time.Hour), 100) if err != nil || len(due) != 1 { t.Fatalf("events = %d, %v, want only the first advance's", len(due), err) }}
func TestAStaleStateSetIsRefusedAndLeavesNoEvent(t *testing.T) { d := newTestDB(t) repo := syntax.DID("did:plc:a") if err := d.AddPullTicket(repo, "t1", PullTicket{Author: "did:plc:bob", State: "open"}); err != nil { t.Fatal(err) } ev := PullEvent{RepoDid: repo, Ticket: "t1", Event: "closed", Pull: []byte("{}")} if err := d.SetPullTicketState(repo, "t1", "open", "closed", ev); err != nil { t.Fatal(err) } if err := d.SetPullTicketState(repo, "t1", "open", "completed", ev); !errors.Is(err, ErrPullRaced) { t.Fatalf("a second set from open = %v, want ErrPullRaced", err) } due, err := d.DuePullEvents(repo, time.Now().Add(time.Hour), 100) if err != nil || len(due) != 1 { t.Fatalf("events = %d, %v, want only the first set's", len(due), err) }}