Skip to content

Commit 3321f7e

Browse files
committed
Fix test
1 parent b7a4b69 commit 3321f7e

File tree

3 files changed

+41
-12
lines changed

3 files changed

+41
-12
lines changed

integrations/api_team_test.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"testing"
1212

1313
"code.gitea.io/gitea/models"
14+
"code.gitea.io/gitea/models/unit"
1415
"code.gitea.io/gitea/models/unittest"
1516
user_model "code.gitea.io/gitea/models/user"
1617
"code.gitea.io/gitea/modules/convert"
@@ -65,6 +66,7 @@ func TestAPITeam(t *testing.T) {
6566
}
6667
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", org.Name, token), teamToCreate)
6768
resp = session.MakeRequest(t, req, http.StatusCreated)
69+
apiTeam = api.Team{}
6870
DecodeJSON(t, resp, &apiTeam)
6971
checkTeamResponse(t, &apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
7072
teamToCreate.Permission, teamToCreate.Units, nil)
@@ -85,28 +87,31 @@ func TestAPITeam(t *testing.T) {
8587

8688
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEdit)
8789
resp = session.MakeRequest(t, req, http.StatusOK)
90+
apiTeam = api.Team{}
8891
DecodeJSON(t, resp, &apiTeam)
8992
checkTeamResponse(t, &apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
90-
teamToEdit.Permission, teamToEdit.Units, nil)
93+
teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
9194
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
92-
teamToEdit.Permission, teamToEdit.Units, nil)
95+
teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
9396

9497
// Edit team Description only
9598
editDescription = "first team"
9699
teamToEditDesc := api.EditTeamOption{Description: &editDescription}
97100
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEditDesc)
98101
resp = session.MakeRequest(t, req, http.StatusOK)
102+
apiTeam = api.Team{}
99103
DecodeJSON(t, resp, &apiTeam)
100104
checkTeamResponse(t, &apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
101-
teamToEdit.Permission, teamToEdit.Units, nil)
105+
teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
102106
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
103-
teamToEdit.Permission, teamToEdit.Units, nil)
107+
teamToEdit.Permission, unit.AllUnitKeyNames(), nil)
104108

105109
// Read team.
106110
teamRead := unittest.AssertExistsAndLoadBean(t, &models.Team{ID: teamID}).(*models.Team)
107111
assert.NoError(t, teamRead.GetUnits())
108112
req = NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamID)
109113
resp = session.MakeRequest(t, req, http.StatusOK)
114+
apiTeam = api.Team{}
110115
DecodeJSON(t, resp, &apiTeam)
111116
checkTeamResponse(t, &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
112117
teamRead.Authorize.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
@@ -127,11 +132,12 @@ func TestAPITeam(t *testing.T) {
127132
}
128133
req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", org.Name, token), teamToCreate)
129134
resp = session.MakeRequest(t, req, http.StatusCreated)
135+
apiTeam = api.Team{}
130136
DecodeJSON(t, resp, &apiTeam)
131137
checkTeamResponse(t, &apiTeam, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
132-
teamToCreate.Permission, nil, teamToCreate.UnitsMap)
138+
"read", nil, teamToCreate.UnitsMap)
133139
checkTeamBean(t, apiTeam.ID, teamToCreate.Name, teamToCreate.Description, teamToCreate.IncludesAllRepositories,
134-
teamToCreate.Permission, nil, teamToCreate.UnitsMap)
140+
"read", nil, teamToCreate.UnitsMap)
135141
teamID = apiTeam.ID
136142

137143
// Edit team.
@@ -147,28 +153,32 @@ func TestAPITeam(t *testing.T) {
147153

148154
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEdit)
149155
resp = session.MakeRequest(t, req, http.StatusOK)
156+
apiTeam = api.Team{}
150157
DecodeJSON(t, resp, &apiTeam)
151158
checkTeamResponse(t, &apiTeam, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
152-
teamToEdit.Permission, nil, teamToEdit.UnitsMap)
159+
"read", nil, teamToEdit.UnitsMap)
153160
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEdit.Description, *teamToEdit.IncludesAllRepositories,
154-
teamToEdit.Permission, nil, teamToEdit.UnitsMap)
161+
"read", nil, teamToEdit.UnitsMap)
155162

156163
// Edit team Description only
157164
editDescription = "second team"
158165
teamToEditDesc = api.EditTeamOption{Description: &editDescription}
159166
req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEditDesc)
160167
resp = session.MakeRequest(t, req, http.StatusOK)
168+
apiTeam = api.Team{}
161169
DecodeJSON(t, resp, &apiTeam)
162170
checkTeamResponse(t, &apiTeam, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
163-
teamToEdit.Permission, nil, teamToEdit.UnitsMap)
171+
"read", nil, teamToEdit.UnitsMap)
164172
checkTeamBean(t, apiTeam.ID, teamToEdit.Name, *teamToEditDesc.Description, *teamToEdit.IncludesAllRepositories,
165-
teamToEdit.Permission, nil, teamToEdit.UnitsMap)
173+
"read", nil, teamToEdit.UnitsMap)
166174

167175
// Read team.
168176
teamRead = unittest.AssertExistsAndLoadBean(t, &models.Team{ID: teamID}).(*models.Team)
169177
req = NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamID)
170178
resp = session.MakeRequest(t, req, http.StatusOK)
179+
apiTeam = api.Team{}
171180
DecodeJSON(t, resp, &apiTeam)
181+
assert.NoError(t, teamRead.GetUnits())
172182
checkTeamResponse(t, &apiTeam, teamRead.Name, *teamToEditDesc.Description, teamRead.IncludesAllRepositories,
173183
teamRead.Authorize.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap())
174184

models/org_team.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,10 @@ func (t *Team) getUnits(e db.Engine) (err error) {
136136

137137
// GetUnitNames returns the team units names
138138
func (t *Team) GetUnitNames() (res []string) {
139+
if t.Authorize >= perm.AccessModeAdmin {
140+
return unit.AllUnitKeyNames()
141+
}
142+
139143
for _, u := range t.Units {
140144
res = append(res, unit.Units[u.Type].NameKey)
141145
}
@@ -145,8 +149,14 @@ func (t *Team) GetUnitNames() (res []string) {
145149
// GetUnitsMap returns the team units permissions
146150
func (t *Team) GetUnitsMap() map[string]string {
147151
var m = make(map[string]string)
148-
for _, u := range t.Units {
149-
m[u.Unit().NameKey] = u.Authorize.String()
152+
if t.Authorize >= perm.AccessModeAdmin {
153+
for _, u := range unit.Units {
154+
m[u.NameKey] = t.Authorize.String()
155+
}
156+
} else {
157+
for _, u := range t.Units {
158+
m[u.Unit().NameKey] = u.Authorize.String()
159+
}
150160
}
151161
return m
152162
}

models/unit/unit.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,3 +297,12 @@ func TypeFromKey(nameKey string) Type {
297297
}
298298
return TypeInvalid
299299
}
300+
301+
// AllUnitKeyNames returns all unit key names
302+
func AllUnitKeyNames() []string {
303+
var res = make([]string, 0, len(Units))
304+
for _, u := range Units {
305+
res = append(res, u.NameKey)
306+
}
307+
return res
308+
}

0 commit comments

Comments
 (0)