Pass current_user to merge_request.closes_issues in API ans streamline MR API specs
This commit is contained in:
parent
78e36780be
commit
b91d1890a8
3 changed files with 9 additions and 19 deletions
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue