Something went wrong. Try again.
Go boilerplate library for building atproto apps
atproto go
Something went wrong. Try again.
Go
at jetstream-v2
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120package sqlite
import ( "context" "database/sql" "testing"
"github.com/bluesky-social/indigo/atproto/auth/oauth" "github.com/bluesky-social/indigo/atproto/syntax" _ "modernc.org/sqlite")
func testStore(t *testing.T) *Store { t.Helper() db, err := sql.Open("sqlite", ":memory:") if err != nil { t.Fatal(err) } s, err := New(db) if err != nil { t.Fatal(err) } t.Cleanup(func() { db.Close() }) return s}
func TestNew(t *testing.T) { s := testStore(t) if s == nil { t.Fatal("expected non-nil store") }}
func TestSessionCRUD(t *testing.T) { s := testStore(t) ctx := context.Background() did, _ := syntax.ParseDID("did:plc:test123")
sess := oauth.ClientSessionData{ AccountDID: did, SessionID: "sess-1", HostURL: "https://pds.example.com", }
// Save if err := s.SaveSession(ctx, sess); err != nil { t.Fatal(err) }
// Get got, err := s.GetSession(ctx, did, "sess-1") if err != nil { t.Fatal(err) } if got.HostURL != "https://pds.example.com" { t.Fatalf("got HostURL %q, want %q", got.HostURL, "https://pds.example.com") }
// Upsert sess.HostURL = "https://pds2.example.com" if err := s.SaveSession(ctx, sess); err != nil { t.Fatal(err) } got, _ = s.GetSession(ctx, did, "sess-1") if got.HostURL != "https://pds2.example.com" { t.Fatalf("upsert failed: got %q", got.HostURL) }
// Get non-existent _, err = s.GetSession(ctx, did, "no-such") if err == nil { t.Fatal("expected error for missing session") }
// Delete if err := s.DeleteSession(ctx, did, "sess-1"); err != nil { t.Fatal(err) } _, err = s.GetSession(ctx, did, "sess-1") if err == nil { t.Fatal("expected error after delete") }}
func TestAuthRequestCRUD(t *testing.T) { s := testStore(t) ctx := context.Background()
info := oauth.AuthRequestData{ State: "state-abc", AuthServerURL: "https://auth.example.com", PKCEVerifier: "verifier123", }
if err := s.SaveAuthRequestInfo(ctx, info); err != nil { t.Fatal(err) }
got, err := s.GetAuthRequestInfo(ctx, "state-abc") if err != nil { t.Fatal(err) } if got.PKCEVerifier != "verifier123" { t.Fatalf("got verifier %q", got.PKCEVerifier) }
_, err = s.GetAuthRequestInfo(ctx, "no-such") if err == nil { t.Fatal("expected error for missing auth request") }
if err := s.DeleteAuthRequestInfo(ctx, "state-abc"); err != nil { t.Fatal(err) } _, err = s.GetAuthRequestInfo(ctx, "state-abc") if err == nil { t.Fatal("expected error after delete") }}