@@ -1236,149 +1236,6 @@ func TestConnectHandler_ListGroupUsers(t *testing.T) {
12361236 }
12371237}
12381238
1239- func TestConnectHandler_AddGroupUsers (t * testing.T ) {
1240- someGroupID := utils .NewString ()
1241- someUserID := utils .NewString ()
1242- tests := []struct {
1243- name string
1244- setup func (ms * mocks.MembershipService , os * mocks.OrganizationService )
1245- request * connect.Request [frontierv1beta1.AddGroupUsersRequest ]
1246- want * connect.Response [frontierv1beta1.AddGroupUsersResponse ]
1247- wantErr error
1248- }{
1249- {
1250- name : "should return error if org does not exist" ,
1251- setup : func (_ * mocks.MembershipService , os * mocks.OrganizationService ) {
1252- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (organization.Organization {}, organization .ErrNotExist )
1253- },
1254- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1255- Id : someGroupID ,
1256- OrgId : testOrgID ,
1257- }),
1258- want : nil ,
1259- wantErr : connect .NewError (connect .CodeNotFound , ErrOrgNotFound ),
1260- },
1261- {
1262- name : "should return error if org is disabled" ,
1263- setup : func (_ * mocks.MembershipService , os * mocks.OrganizationService ) {
1264- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (organization.Organization {}, organization .ErrDisabled )
1265- },
1266- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1267- Id : someGroupID ,
1268- OrgId : testOrgID ,
1269- }),
1270- want : nil ,
1271- wantErr : connect .NewError (connect .CodeNotFound , ErrOrgDisabled ),
1272- },
1273- {
1274- name : "should return internal server error if SetGroupMemberRole fails for any user" ,
1275- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1276- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1277- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (errors .New ("some error" ))
1278- },
1279- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1280- Id : someGroupID ,
1281- OrgId : testOrgID ,
1282- UserIds : []string {someUserID },
1283- }),
1284- want : nil ,
1285- wantErr : connect .NewError (connect .CodeInternal , ErrInternalServerError ),
1286- },
1287- {
1288- name : "should return success if SetGroupMemberRole succeeds for each user" ,
1289- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1290- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1291- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (nil )
1292- },
1293- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1294- Id : someGroupID ,
1295- OrgId : testOrgID ,
1296- UserIds : []string {someUserID },
1297- }),
1298- want : connect .NewResponse (& frontierv1beta1.AddGroupUsersResponse {}),
1299- wantErr : nil ,
1300- },
1301- {
1302- name : "should return not found if group does not exist" ,
1303- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1304- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1305- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (group .ErrNotExist )
1306- },
1307- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1308- Id : someGroupID ,
1309- OrgId : testOrgID ,
1310- UserIds : []string {someUserID },
1311- }),
1312- want : nil ,
1313- wantErr : connect .NewError (connect .CodeNotFound , ErrGroupNotFound ),
1314- },
1315- {
1316- name : "should return not found if user does not exist" ,
1317- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1318- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1319- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (user .ErrNotExist )
1320- },
1321- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1322- Id : someGroupID ,
1323- OrgId : testOrgID ,
1324- UserIds : []string {someUserID },
1325- }),
1326- want : nil ,
1327- wantErr : connect .NewError (connect .CodeNotFound , ErrUserNotExist ),
1328- },
1329- {
1330- name : "should return failed precondition if user is not a member of the org" ,
1331- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1332- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1333- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (membership .ErrNotOrgMember )
1334- },
1335- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1336- Id : someGroupID ,
1337- OrgId : testOrgID ,
1338- UserIds : []string {someUserID },
1339- }),
1340- want : nil ,
1341- wantErr : connect .NewError (connect .CodeFailedPrecondition , ErrNotOrgMember ),
1342- },
1343- {
1344- name : "should return failed precondition if demoting last group owner" ,
1345- setup : func (ms * mocks.MembershipService , os * mocks.OrganizationService ) {
1346- os .EXPECT ().Get (mock .Anything , testOrgID ).Return (testOrgMap [testOrgID ], nil )
1347- ms .EXPECT ().SetGroupMemberRole (mock .Anything , someGroupID , someUserID , schema .UserPrincipal , schema .GroupMemberRole ).Return (membership .ErrLastGroupOwnerRole )
1348- },
1349- request : connect .NewRequest (& frontierv1beta1.AddGroupUsersRequest {
1350- Id : someGroupID ,
1351- OrgId : testOrgID ,
1352- UserIds : []string {someUserID },
1353- }),
1354- want : nil ,
1355- wantErr : connect .NewError (connect .CodeFailedPrecondition , ErrLastGroupOwnerRole ),
1356- },
1357- }
1358- for _ , tt := range tests {
1359- t .Run (tt .name , func (t * testing.T ) {
1360- mockMembershipSvc := new (mocks.MembershipService )
1361- mockOrgSvc := new (mocks.OrganizationService )
1362- if tt .setup != nil {
1363- tt .setup (mockMembershipSvc , mockOrgSvc )
1364- }
1365- h := ConnectHandler {
1366- membershipService : mockMembershipSvc ,
1367- orgService : mockOrgSvc ,
1368- }
1369- got , err := h .AddGroupUsers (context .Background (), tt .request )
1370- if tt .wantErr != nil {
1371- assert .Error (t , err )
1372- assert .Equal (t , tt .wantErr .(* connect.Error ).Code (), err .(* connect.Error ).Code ())
1373- assert .Equal (t , tt .wantErr .(* connect.Error ).Message (), err .(* connect.Error ).Message ())
1374- } else {
1375- assert .NoError (t , err )
1376- assert .EqualValues (t , tt .want , got )
1377- }
1378- })
1379- }
1380- }
1381-
13821239func TestConnectHandler_RemoveGroupUser (t * testing.T ) {
13831240 randomID := utils .NewString ()
13841241
0 commit comments