mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-11 11:25:42 +02:00
test: add concurrent sync regression test for LDAP team sync
Signed-off-by: Mohit25022005 <mohitswarnkar13@gmail.com>
This commit is contained in:
parent
ab77a46f62
commit
8de3662112
57
services/auth/source/oauth2/source_group_sync_test.go
Normal file
57
services/auth/source/oauth2/source_group_sync_test.go
Normal file
@ -0,0 +1,57 @@
|
||||
// Copyright 2026 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package oauth2
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models/db"
|
||||
"code.gitea.io/gitea/models/organization"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/container"
|
||||
auth_source "code.gitea.io/gitea/services/auth/source"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSyncGroupsToTeamsConcurrentRuns(t *testing.T) {
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
|
||||
ctx := t.Context()
|
||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
|
||||
team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: 2})
|
||||
org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: team.OrgID})
|
||||
|
||||
sourceGroupTeamMapping := map[string]map[string][]string{
|
||||
"ldap-group": {
|
||||
org.Name: []string{team.Name},
|
||||
},
|
||||
}
|
||||
|
||||
var wg sync.WaitGroup
|
||||
for i := 0; i < 10; i++ {
|
||||
wg.Add(2)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
assert.NoError(t, auth_source.SyncGroupsToTeams(ctx, user, container.SetOf("ldap-group"), sourceGroupTeamMapping, true))
|
||||
}()
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
assert.NoError(t, auth_source.SyncGroupsToTeams(ctx, user, container.Set[string]{}, sourceGroupTeamMapping, true))
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
|
||||
memberCount, err := db.GetEngine(ctx).Count(&organization.TeamUser{OrgID: team.OrgID, TeamID: team.ID, UID: user.ID})
|
||||
assert.NoError(t, err)
|
||||
assert.LessOrEqual(t, memberCount, int64(1))
|
||||
|
||||
team = unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: team.ID})
|
||||
totalCount, err := db.GetEngine(ctx).Count(&organization.TeamUser{OrgID: team.OrgID, TeamID: team.ID})
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, team.NumMembers, totalCount)
|
||||
assert.GreaterOrEqual(t, team.NumMembers, 0)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user