Pass current_user to merge_request.closes_issues in API ans streamline MR API specs

This commit is contained in:
Rémy Coutable 2016-02-10 17:11:23 +01:00
parent 78e36780be
commit b91d1890a8
3 changed files with 9 additions and 19 deletions

View file

@ -310,7 +310,7 @@ module API
# GET /projects/:id/merge_requests/:merge_request_id/closes_issues # GET /projects/:id/merge_requests/:merge_request_id/closes_issues
get "#{path}/closes_issues" do get "#{path}/closes_issues" do
merge_request = user_project.merge_requests.find(params[:merge_request_id]) 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 present paginate(issues), with: Entities::Issue
end end
end end

View file

@ -73,12 +73,6 @@ FactoryGirl.define do
merge_user author merge_user author
end end
trait :with_closes_issues do
source_branch "markdown"
target_branch "master"
state :opened
end
factory :closed_merge_request, traits: [:closed] factory :closed_merge_request, traits: [:closed]
factory :reopened_merge_request, traits: [:reopened] factory :reopened_merge_request, traits: [:reopened]
factory :merge_request_with_diffs, traits: [:with_diffs] factory :merge_request_with_diffs, traits: [:with_diffs]

View file

@ -448,25 +448,21 @@ describe API::API, api: true do
end end
end end
describe "GET :id/merge_requests/:merge_request_id/closes_issues" do 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}") } it 'returns the issue that will be closed on merge' do
let(:issue) do issue = create(:issue, project: project)
create :issue, mr = merge_request.tap do |mr|
author: user, mr.update_attribute(:description, "Closes #{issue.to_reference(mr.project)}")
assignee: user,
project: project,
milestone: nil
end end
it "should return the issues that will be closed on merge" do get api("/projects/#{project.id}/merge_requests/#{mr.id}/closes_issues", user)
get api("/projects/#{project.id}/merge_requests/#{merge_request_with_closes_issues.id}/closes_issues", user)
expect(response.status).to eq(200) expect(response.status).to eq(200)
expect(json_response).to be_an Array expect(json_response).to be_an Array
expect(json_response.length).to eq(1) expect(json_response.length).to eq(1)
expect(json_response.first['id']).to eq(issue.id) expect(json_response.first['id']).to eq(issue.id)
end 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) get api("/projects/#{project.id}/merge_requests/#{merge_request.id}/closes_issues", user)
expect(response.status).to eq(200) expect(response.status).to eq(200)
expect(json_response).to be_an Array expect(json_response).to be_an Array