Teams: Search by team ids (#77730)

* Teams: Search by team ids

* Add tests

* Fix tests
This commit is contained in:
Alexander Zobnin
2023-11-06 18:08:11 +02:00
committed by GitHub
parent 7322f98b9c
commit c0d8a7132e
4 changed files with 38 additions and 0 deletions
+7
View File
@@ -212,6 +212,13 @@ func (ss *xormStore) Search(ctx context.Context, query *team.SearchTeamsQuery) (
params = append(params, query.Name)
}
if len(query.TeamIds) > 0 {
sql.WriteString(` and team.id IN (?` + strings.Repeat(",?", len(query.TeamIds)-1) + ")")
for _, id := range query.TeamIds {
params = append(params, id)
}
}
acFilter, err := ac.Filter(query.SignedInUser, "team.id", "teams:id:", ac.ActionTeamsRead)
if err != nil {
return err
+20
View File
@@ -268,6 +268,26 @@ func TestIntegrationTeamCommandsAndQueries(t *testing.T) {
require.Equal(t, queryResult.Teams[1].Name, team1.Name)
})
t.Run("Should be able to query teams by ids", func(t *testing.T) {
allTeamsQuery := &team.SearchTeamsQuery{OrgID: testOrgID, Query: "", SignedInUser: testUser}
allTeamsQueryResult, err := teamSvc.SearchTeams(context.Background(), allTeamsQuery)
require.NoError(t, err)
require.Equal(t, len(allTeamsQueryResult.Teams), 2)
teamIds := make([]int64, 0)
for _, team := range allTeamsQueryResult.Teams {
teamIds = append(teamIds, team.ID)
}
query := &team.SearchTeamsQuery{OrgID: testOrgID, SignedInUser: testUser, TeamIds: teamIds}
queryResult, err := teamSvc.SearchTeams(context.Background(), query)
require.NoError(t, err)
require.Equal(t, len(queryResult.Teams), 2)
require.EqualValues(t, queryResult.TotalCount, 2)
require.Equal(t, queryResult.Teams[0].ID, teamIds[0])
require.Equal(t, queryResult.Teams[1].ID, teamIds[1])
})
t.Run("Should be able to return all teams a user is member of", func(t *testing.T) {
sqlStore = db.InitTestDB(t)
setup()