package members_test import ( "context" "testing" "galo/internal/auth" "galo/internal/models" ) // Audience must resolve the owner plus every member from their own tables, and // must be empty for an album that does not exist. func TestAudience(t *testing.T) { ctx := context.Background() st := newStack(t) owner := seedUser(t, st, "Owner") first := seedUser(t, st, "First") second := seedUser(t, st, "Second") album := &models.Album{ID: auth.NewID(), OwnerID: owner, Title: "A"} if err := st.repos.Albums.Create(ctx, album); err != nil { t.Fatalf("create album: %v", err) } assertAudience(t, st, album.ID, owner) if err := st.repos.Members.Add(ctx, album.ID, first, "member", &owner); err != nil { t.Fatalf("add first: %v", err) } if err := st.repos.Members.Add(ctx, album.ID, second, "editor", &owner); err != nil { t.Fatalf("add second: %v", err) } assertAudience(t, st, album.ID, owner, first, second) if err := st.repos.Members.Remove(ctx, album.ID, second); err != nil { t.Fatalf("remove second: %v", err) } assertAudience(t, st, album.ID, owner, first) assertAudience(t, st, "missing-album") }