diff options
author | Mark Fletcher <mark@gitlab.com> | 2018-03-26 18:56:53 +0100 |
---|---|---|
committer | Mark Fletcher <mark@gitlab.com> | 2018-03-26 19:34:36 +0100 |
commit | 847671e06c13155c02d8f0be3565705cd89969ee (patch) | |
tree | c079f07d7a9e5680cab03e35f3f210183425b55a /spec/requests/api/commits_spec.rb | |
parent | 3adbc579bc45bf61510bc83900d07e8b0bafa088 (diff) | |
download | gitlab-ce-847671e06c13155c02d8f0be3565705cd89969ee.tar.gz |
Allow merge requests related to a commit to be found via API
- Original work for the web interface here:
- https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13713
Diffstat (limited to 'spec/requests/api/commits_spec.rb')
-rw-r--r-- | spec/requests/api/commits_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb index 852f67db958..8ad19e3f0f5 100644 --- a/spec/requests/api/commits_spec.rb +++ b/spec/requests/api/commits_spec.rb @@ -1141,4 +1141,33 @@ describe API::Commits do end end end + + describe 'GET /projects/:id/repository/commits/:sha/merge_requests' do + let!(:project) { create(:project, :repository, :private) } + let!(:merged_mr) { create(:merge_request, source_project: project, source_branch: 'master', target_branch: 'feature') } + let(:commit) { merged_mr.merge_request_diff.commits.last } + + it 'returns the correct merge request' do + get api("/projects/#{project.id}/repository/commits/#{commit.id}/merge_requests", user) + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response.length).to eq(1) + expect(json_response[0]['id']).to eq(merged_mr.id) + end + + it 'returns 403 for an unauthorized user' do + project.add_guest(user) + + get api("/projects/#{project.id}/repository/commits/#{commit.id}/merge_requests", user) + + expect(response).to have_gitlab_http_status(403) + end + + it 'responds 404 when the commit does not exist' do + get api("/projects/#{project.id}/repository/commits/a7d26f00c35b/merge_requests", user) + + expect(response).to have_gitlab_http_status(404) + end + end end |