diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-17 21:09:52 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2024-01-17 21:09:52 +0300 |
commit | 003efb27fc4d7d0571979553c602fccfbf5ad0c2 (patch) | |
tree | 721ec9af57108c73fc5c4c7a06e996800ead367e /spec/requests/api | |
parent | 78a5f872de316860ccd7a983c10805bf6c6b771c (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api')
-rw-r--r-- | spec/requests/api/members_spec.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/requests/api/members_spec.rb b/spec/requests/api/members_spec.rb index 7fc58140fb6..01a8ca055a5 100644 --- a/spec/requests/api/members_spec.rb +++ b/spec/requests/api/members_spec.rb @@ -346,6 +346,24 @@ RSpec.describe API::Members, feature_category: :groups_and_projects do expect(json_response['access_level']).to eq(Member::DEVELOPER) end + it 'returns the error message if there was an error adding the member to the group' do + error_message = 'Test CreateService Error Message' + allow_next_instance_of(::Members::CreateService) do |service| + expect(service).to receive(:execute).and_return(status: :error, message: error_message) + allow(service).to receive(:single_member).and_return( + instance_double(Member, invalid?: false) + ) + end + + expect do + post api("/#{source_type.pluralize}/#{source.id}/members", maintainer), + params: { user_id: stranger.id, access_level: Member::DEVELOPER } + end.not_to change { source.members.count } + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['status']).to eq('error') + expect(json_response['message']).to eq(error_message) + end + context 'with invite_source considerations', :snowplow do let(:params) { { user_id: stranger.id, access_level: Member::DEVELOPER } } |