summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-02-10 17:11:23 +0100
committerRémy Coutable <remy@rymai.me>2016-02-11 09:34:07 +0100
commitb91d1890a8f33566d52c653e9ae083a3a3329590 (patch)
treef9468f1f8f218ae525b9a5a8c7c1715e4007c089
parent78e36780be31257a59cb3076ba5402e380ca240f (diff)
downloadgitlab-ce-Schniz/gitlab-ce-feature/merge-request-closes-issues-in-api.tar.gz
Pass current_user to merge_request.closes_issues in API ans streamline MR API specsSchniz/gitlab-ce-feature/merge-request-closes-issues-in-api
-rw-r--r--lib/api/merge_requests.rb2
-rw-r--r--spec/factories/merge_requests.rb6
-rw-r--r--spec/requests/api/merge_requests_spec.rb20
3 files changed, 9 insertions, 19 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index 004ff52c1d3..4230c68abb2 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -310,7 +310,7 @@ module API
# GET /projects/:id/merge_requests/:merge_request_id/closes_issues
get "#{path}/closes_issues" do
merge_request = user_project.merge_requests.find(params[:merge_request_id])
- issues = ::Kaminari.paginate_array(merge_request.closes_issues)
+ issues = ::Kaminari.paginate_array(merge_request.closes_issues(current_user))
present paginate(issues), with: Entities::Issue
end
end
diff --git a/spec/factories/merge_requests.rb b/spec/factories/merge_requests.rb
index 777bdb95008..0c6a881f868 100644
--- a/spec/factories/merge_requests.rb
+++ b/spec/factories/merge_requests.rb
@@ -73,12 +73,6 @@ FactoryGirl.define do
merge_user author
end
- trait :with_closes_issues do
- source_branch "markdown"
- target_branch "master"
- state :opened
- end
-
factory :closed_merge_request, traits: [:closed]
factory :reopened_merge_request, traits: [:reopened]
factory :merge_request_with_diffs, traits: [:with_diffs]
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 90faf82fc01..7a722777d59 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -448,25 +448,21 @@ describe API::API, api: true do
end
end
- describe "GET :id/merge_requests/:merge_request_id/closes_issues" do
- let(:merge_request_with_closes_issues) { create(:merge_request, :with_closes_issues, author: user, assignee: user, source_project: project, target_project: project, title: "Closed ##{issue.id}", created_at: base_time + 3.seconds, description: "This should close ##{issue.iid}") }
- let(:issue) do
- create :issue,
- author: user,
- assignee: user,
- project: project,
- milestone: nil
- end
+ describe 'GET :id/merge_requests/:merge_request_id/closes_issues' do
+ it 'returns the issue that will be closed on merge' do
+ issue = create(:issue, project: project)
+ mr = merge_request.tap do |mr|
+ mr.update_attribute(:description, "Closes #{issue.to_reference(mr.project)}")
+ end
- it "should return the issues that will be closed on merge" do
- get api("/projects/#{project.id}/merge_requests/#{merge_request_with_closes_issues.id}/closes_issues", user)
+ get api("/projects/#{project.id}/merge_requests/#{mr.id}/closes_issues", user)
expect(response.status).to eq(200)
expect(json_response).to be_an Array
expect(json_response.length).to eq(1)
expect(json_response.first['id']).to eq(issue.id)
end
- it "should return an empty array when there are no issues to be closed" do
+ it 'returns an empty array when there are no issues to be closed' do
get api("/projects/#{project.id}/merge_requests/#{merge_request.id}/closes_issues", user)
expect(response.status).to eq(200)
expect(json_response).to be_an Array