Skip to content
Snippets Groups Projects
Commit b1e4d55d authored by Mark Chao's avatar Mark Chao
Browse files

Refactor to inline version_index to its only use

Add spec and factory for multiple diffs
parent 4440e175
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -80,12 +80,6 @@ def merge_request_version_path(project, merge_request, merge_request_diff, start
diffs_project_merge_request_path(project, merge_request, diff_id: merge_request_diff.id, start_sha: start_sha)
end
 
def version_index(merge_request_diff)
return if @merge_request_diffs.empty?
@merge_request_diffs.size - @merge_request_diffs.index(merge_request_diff)
end
def merge_params(merge_request)
{
auto_merge_strategy: AutoMergeService::STRATEGY_MERGE_WHEN_PIPELINE_SUCCEEDS,
Loading
Loading
Loading
Loading
@@ -6,13 +6,13 @@ class MergeRequestDiffEntity < Grape::Entity
include MergeRequestsHelper
 
expose :version_index do |merge_request_diff|
@merge_request_diffs = options[:merge_request_diffs]
merge_request_diffs = options[:merge_request_diffs]
diff = options[:merge_request_diff]
 
next unless @merge_request_diffs.include?(diff)
next unless @merge_request_diffs.size > 1
next unless merge_request_diffs.include?(diff)
next unless merge_request_diffs.size > 1
 
version_index(merge_request_diff)
merge_request_diffs.size - merge_request_diffs.index(merge_request_diff)
end
 
expose :created_at
Loading
Loading
Loading
Loading
@@ -341,6 +341,11 @@
create(:diff_note_on_merge_request, noteable: mr, project: mr.source_project)
end
end
factory :merge_request_with_multiple_diffs do
after(:create) do |mr|
mr.merge_request_diffs.create!(head_commit_sha: '6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9')
end
end
 
factory :labeled_merge_request do
transient do
Loading
Loading
Loading
Loading
@@ -10,7 +10,9 @@
let(:merge_request_diffs) { merge_request.merge_request_diffs }
let(:merge_request_diff) { merge_request_diffs.first }
 
let(:entity) do
let(:entity) { initialize_entity(merge_request, merge_request_diff) }
def initialize_entity(merge_request, merge_request_diff)
described_class.new(
merge_request_diff,
request: request,
Loading
Loading
@@ -70,6 +72,22 @@
 
it_behaves_like 'version_index is nil'
end
context 'when @merge_request_diffs.size > 1' do
let(:merge_request) { create(:merge_request_with_multiple_diffs) }
it 'returns difference between size and diff index' do
expect(merge_request_diffs.size).to eq(2)
# diff index: 0
subject = initialize_entity(merge_request, merge_request_diffs.first)
expect(subject.as_json[:version_index]).to eq(2)
# diff index: 1
subject = initialize_entity(merge_request, merge_request_diffs.last)
expect(subject.as_json[:version_index]).to eq(1)
end
end
end
 
describe '#short_commit_sha' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment