package db import ( "path/filepath" "testing" ) func openTestDB(t *testing.T) *DB { t.Helper() dir := t.TempDir() SetMigrationsDir("../../migrations") d, err := Open(filepath.Join(dir, "test.db")) if err != nil { t.Fatal(err) } if err := d.Migrate(); err != nil { t.Fatal(err) } t.Cleanup(func() { d.Close() }) return d } func TestCollaborations(t *testing.T) { d := openTestDB(t) const collabDID = "did:plc:collab" const ownerDID = "did:plc:owner" const rkey = "abc123" if err := d.AddCollaboration(collabDID, ownerDID, rkey); err != nil { t.Fatalf("AddCollaboration: %v", err) } // idempotent if err := d.AddCollaboration(collabDID, ownerDID, rkey); err != nil { t.Fatalf("AddCollaboration (dup): %v", err) } rows, err := d.GetCollaborations(collabDID) if err != nil { t.Fatalf("GetCollaborations: %v", err) } if len(rows) != 1 { t.Fatalf("want 1 row, got %d", len(rows)) } if rows[0].OwnerDID != ownerDID || rows[0].DocumentRKey != rkey { t.Errorf("unexpected row: %+v", rows[0]) } }