package db import ( "context" "path/filepath" "testing" "github.com/bluesky-social/indigo/atproto/syntax" ) func TestObservePullRounds(t *testing.T) { d, err := Make(context.Background(), filepath.Join(t.TempDir(), "test.db")) if err != nil { t.Fatalf("make db: %v", err) } repoDid := syntax.DID("did:plc:repo123") const rkey = "3kabc" appended, err := d.ObservePullRounds(repoDid, rkey, 1) if err != nil || appended { t.Fatalf("first sighting: appended=%v err=%v", appended, err) } if appended, err := d.ObservePullRounds(repoDid, rkey, 1); err != nil || appended { t.Fatalf("edit: appended=%v err=%v", appended, err) } if appended, err := d.ObservePullRounds(repoDid, rkey, 2); err != nil || !appended { t.Fatalf("resubmission: appended=%v err=%v", appended, err) } if appended, err := d.ObservePullRounds(repoDid, "3kdef", 3); err != nil || appended { t.Fatalf("other pull: appended=%v err=%v", appended, err) } if err := d.ForgetPullRounds(repoDid, rkey); err != nil { t.Fatalf("forget: %v", err) } var n int if err := d.QueryRow(`select count(*) from pull_rounds where repo_did = ?`, repoDid.String()).Scan(&n); err != nil { t.Fatalf("count: %v", err) } if n != 1 { t.Fatalf("expected one remaining row, got %d", n) } }