Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitffde200

Browse files
committed
test: add unit test in db package to test trigger
1 parent12dfd05 commitffde200

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed

‎coderd/database/querier_test.go

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1216,6 +1216,103 @@ func TestExpectOne(t *testing.T) {
12161216
})
12171217
}
12181218

1219+
funcTestGroupRemovalTrigger(t*testing.T) {
1220+
t.Parallel()
1221+
1222+
db,_:=dbtestutil.NewDB(t)
1223+
1224+
orgA:=dbgen.Organization(t,db, database.Organization{})
1225+
_,err:=db.InsertAllUsersGroup(context.Background(),orgA.ID)
1226+
require.NoError(t,err)
1227+
1228+
orgB:=dbgen.Organization(t,db, database.Organization{})
1229+
_,err=db.InsertAllUsersGroup(context.Background(),orgB.ID)
1230+
require.NoError(t,err)
1231+
1232+
orgs:= []database.Organization{orgA,orgB}
1233+
1234+
user:=dbgen.User(t,db, database.User{})
1235+
extra:=dbgen.User(t,db, database.User{})
1236+
users:= []database.User{user,extra}
1237+
1238+
groupA1:=dbgen.Group(t,db, database.Group{
1239+
OrganizationID:orgA.ID,
1240+
})
1241+
groupA2:=dbgen.Group(t,db, database.Group{
1242+
OrganizationID:orgA.ID,
1243+
})
1244+
1245+
groupB1:=dbgen.Group(t,db, database.Group{
1246+
OrganizationID:orgB.ID,
1247+
})
1248+
groupB2:=dbgen.Group(t,db, database.Group{
1249+
OrganizationID:orgB.ID,
1250+
})
1251+
1252+
groups:= []database.Group{groupA1,groupA2,groupB1,groupB2}
1253+
1254+
// Add users to all organizations
1255+
for_,u:=rangeusers {
1256+
for_,o:=rangeorgs {
1257+
dbgen.OrganizationMember(t,db, database.OrganizationMember{
1258+
OrganizationID:o.ID,
1259+
UserID:u.ID,
1260+
})
1261+
}
1262+
}
1263+
1264+
// Add users to all groups
1265+
for_,u:=rangeusers {
1266+
for_,g:=rangegroups {
1267+
dbgen.GroupMember(t,db, database.GroupMemberTable{
1268+
GroupID:g.ID,
1269+
UserID:u.ID,
1270+
})
1271+
}
1272+
}
1273+
1274+
// Verify user is in all groups
1275+
ctx:=testutil.Context(t,testutil.WaitLong)
1276+
onlyGroupIDs:=func(row database.GetGroupsRow) uuid.UUID {
1277+
returnrow.Group.ID
1278+
}
1279+
userGroups,err:=db.GetGroups(ctx, database.GetGroupsParams{
1280+
HasMemberID:user.ID,
1281+
})
1282+
require.NoError(t,err)
1283+
require.ElementsMatch(t, []uuid.UUID{
1284+
orgA.ID,orgB.ID,// Everyone groups
1285+
groupA1.ID,groupA2.ID,groupB1.ID,groupB2.ID,// Org groups
1286+
},db2sdk.List(userGroups,onlyGroupIDs))
1287+
1288+
// Remove the user from org A
1289+
err=db.DeleteOrganizationMember(ctx, database.DeleteOrganizationMemberParams{
1290+
OrganizationID:orgA.ID,
1291+
UserID:user.ID,
1292+
})
1293+
require.NoError(t,err)
1294+
1295+
// Verify user is no longer in org A groups
1296+
userGroups,err=db.GetGroups(ctx, database.GetGroupsParams{
1297+
HasMemberID:user.ID,
1298+
})
1299+
require.NoError(t,err)
1300+
require.ElementsMatch(t, []uuid.UUID{
1301+
orgB.ID,// Everyone group
1302+
groupB1.ID,groupB2.ID,// Org groups
1303+
},db2sdk.List(userGroups,onlyGroupIDs))
1304+
1305+
// Verify extra user is unchanged
1306+
extraUserGroups,err:=db.GetGroups(ctx, database.GetGroupsParams{
1307+
HasMemberID:extra.ID,
1308+
})
1309+
require.NoError(t,err)
1310+
require.ElementsMatch(t, []uuid.UUID{
1311+
orgA.ID,orgB.ID,// Everyone groups
1312+
groupA1.ID,groupA2.ID,groupB1.ID,groupB2.ID,// Org groups
1313+
},db2sdk.List(extraUserGroups,onlyGroupIDs))
1314+
}
1315+
12191316
funcrequireUsersMatch(t testing.TB,expected []database.User,found []database.GetUsersRow,msgstring) {
12201317
t.Helper()
12211318
require.ElementsMatch(t,expected,database.ConvertUserRows(found),msg)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp