36 lines
1.2 KiB
Ruby
36 lines
1.2 KiB
Ruby
![]() |
require 'spec_helper.rb'
|
||
|
|
||
|
describe Issues::FetchReferencedMergeRequestsService do
|
||
|
let(:project) { create(:project) }
|
||
|
let(:issue) { create(:issue, project: project) }
|
||
|
let(:other_project) { create(:project) }
|
||
|
|
||
|
let(:mr) { create(:merge_request, source_project: project, target_project: project, id: 2)}
|
||
|
let(:other_mr) { create(:merge_request, source_project: other_project, target_project: other_project, id: 1)}
|
||
|
|
||
|
let(:user) { create(:user) }
|
||
|
let(:service) { described_class.new(project, user) }
|
||
|
|
||
|
context 'with mentioned merge requests' do
|
||
|
it 'returns a list of sorted merge requests' do
|
||
|
allow(issue).to receive(:referenced_merge_requests).with(user).and_return([other_mr, mr])
|
||
|
|
||
|
mrs, closed_by_mrs = service.execute(issue)
|
||
|
|
||
|
expect(mrs).to match_array([mr, other_mr])
|
||
|
expect(closed_by_mrs).to match_array([])
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context 'with closed-by merge requests' do
|
||
|
it 'returns a list of sorted merge requests' do
|
||
|
allow(issue).to receive(:closed_by_merge_requests).with(user).and_return([other_mr, mr])
|
||
|
|
||
|
mrs, closed_by_mrs = service.execute(issue)
|
||
|
|
||
|
expect(mrs).to match_array([])
|
||
|
expect(closed_by_mrs).to match_array([mr, other_mr])
|
||
|
end
|
||
|
end
|
||
|
end
|