0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-05-16 16:57:26 +02:00

Address review: delete empty remove entries, use existing fixture team

Co-Authored-By: Claude (Opus 4.6) <noreply@anthropic.com>
This commit is contained in:
silverwind 2026-04-09 20:51:34 +02:00
parent 5109687831
commit 94891ebf4e
No known key found for this signature in database
GPG Key ID: 2E62B41C93869443
2 changed files with 7 additions and 3 deletions

View File

@ -75,7 +75,11 @@ func resolveMappedMemberships(sourceUserGroups container.Set[string], sourceGrou
filtered = append(filtered, team) filtered = append(filtered, team)
} }
} }
membershipsToRemove[org] = filtered if len(filtered) > 0 {
membershipsToRemove[org] = filtered
} else {
delete(membershipsToRemove, org)
}
} }
return membershipsToAdd, membershipsToRemove return membershipsToAdd, membershipsToRemove

View File

@ -26,14 +26,14 @@ func TestSyncGroupsToTeams_LastOwnerNotRemoved(t *testing.T) {
sourceUserGroups := container.SetOf("groupA") sourceUserGroups := container.SetOf("groupA")
sourceGroupTeamMapping := map[string]map[string][]string{ sourceGroupTeamMapping := map[string]map[string][]string{
"groupA": {"org3": {"Owners"}}, "groupA": {"org3": {"Owners"}},
"groupB": {"org3": {"Owners", "Developers"}}, "groupB": {"org3": {"Owners", "team1"}},
} }
// Verify deduplication: Owners must not be in remove list when groupA grants it. // Verify deduplication: Owners must not be in remove list when groupA grants it.
membershipsToAdd, membershipsToRemove := resolveMappedMemberships(sourceUserGroups, sourceGroupTeamMapping) membershipsToAdd, membershipsToRemove := resolveMappedMemberships(sourceUserGroups, sourceGroupTeamMapping)
assert.Contains(t, membershipsToAdd["org3"], "Owners") assert.Contains(t, membershipsToAdd["org3"], "Owners")
assert.NotContains(t, membershipsToRemove["org3"], "Owners") assert.NotContains(t, membershipsToRemove["org3"], "Owners")
assert.Contains(t, membershipsToRemove["org3"], "Developers") assert.Contains(t, membershipsToRemove["org3"], "team1")
// End-to-end: sync must not fail with ErrLastOrgOwner. // End-to-end: sync must not fail with ErrLastOrgOwner.
err := SyncGroupsToTeams(t.Context(), user2, sourceUserGroups, sourceGroupTeamMapping, true) err := SyncGroupsToTeams(t.Context(), user2, sourceUserGroups, sourceGroupTeamMapping, true)