diff --git a/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.test.tsx b/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.test.tsx index 21b694135e..f44b129a23 100644 --- a/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.test.tsx +++ b/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.test.tsx @@ -217,4 +217,50 @@ describe('components/admin_console/group_settings/group_details/GroupDetails', ( getAnyInstance(wrapper).onMentionToggle(true); expect(getAnyState(wrapper).groupMentionName).toBe('any_name_at_all'); }); + + test('handleRolesToUpdate should only update scheme_admin and not auto_add', async () => { + const patchGroupSyncable = jest.fn().mockReturnValue(Promise.resolve({data: true})); + const actions = { + ...defaultProps.actions, + patchGroupSyncable, + }; + + const wrapper = shallowWithIntl( + , + ); + + const instance = getAnyInstance(wrapper); + instance.setState({ + rolesToChange: { + 'team1/public-team': true, + 'channel1/public-channel': false, + }, + }); + + await instance.handleRolesToUpdate(); + + expect(patchGroupSyncable).toHaveBeenCalledTimes(2); + expect(patchGroupSyncable).toHaveBeenCalledWith( + 'xxxxxxxxxxxxxxxxxxxxxxxxxx', + 'team1', + 'team', + {scheme_admin: true}, + ); + expect(patchGroupSyncable).toHaveBeenCalledWith( + 'xxxxxxxxxxxxxxxxxxxxxxxxxx', + 'channel1', + 'channel', + {scheme_admin: false}, + ); + + // Verify auto_add was not included in any of the patch calls + patchGroupSyncable.mock.calls.forEach((call) => { + expect(call[3]).not.toHaveProperty('auto_add'); + expect(Object.keys(call[3]).length).toBe(1); + expect(Object.keys(call[3])[0]).toBe('scheme_admin'); + }); + }); }); diff --git a/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.tsx b/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.tsx index e15ef47edc..d480383554 100644 --- a/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.tsx +++ b/webapp/channels/src/components/admin_console/group_settings/group_details/group_details.tsx @@ -68,7 +68,7 @@ export type Props = { id: string, syncableID: string, syncableType: SyncableType, - patch: SyncablePatch + patch: Partial ) => Promise; patchGroup: (id: string, patch: GroupPatch) => Promise; setNavigationBlocked: (blocked: boolean) => { @@ -531,7 +531,7 @@ class GroupDetails extends React.PureComponent { this.props.groupID, syncableID, syncableType, - {scheme_admin: value, auto_add: false}, + {scheme_admin: value}, ), ); }