0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-05-11 20:05:38 +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)
}
}
membershipsToRemove[org] = filtered
if len(filtered) > 0 {
membershipsToRemove[org] = filtered
} else {
delete(membershipsToRemove, org)
}
}
return membershipsToAdd, membershipsToRemove

View File

@ -26,14 +26,14 @@ func TestSyncGroupsToTeams_LastOwnerNotRemoved(t *testing.T) {
sourceUserGroups := container.SetOf("groupA")
sourceGroupTeamMapping := map[string]map[string][]string{
"groupA": {"org3": {"Owners"}},
"groupB": {"org3": {"Owners", "Developers"}},
"groupB": {"org3": {"Owners", "team1"}},
}
// Verify deduplication: Owners must not be in remove list when groupA grants it.
membershipsToAdd, membershipsToRemove := resolveMappedMemberships(sourceUserGroups, sourceGroupTeamMapping)
assert.Contains(t, membershipsToAdd["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.
err := SyncGroupsToTeams(t.Context(), user2, sourceUserGroups, sourceGroupTeamMapping, true)