summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/conflict/file_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/conflict/file_spec.rb')
-rw-r--r--spec/lib/gitlab/conflict/file_spec.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/lib/gitlab/conflict/file_spec.rb b/spec/lib/gitlab/conflict/file_spec.rb
index 80bd517ec92..0de944d3f8a 100644
--- a/spec/lib/gitlab/conflict/file_spec.rb
+++ b/spec/lib/gitlab/conflict/file_spec.rb
@@ -93,6 +93,51 @@ RSpec.describe Gitlab::Conflict::File do
end
end
+ describe '#diff_lines_for_serializer' do
+ let(:diff_line_types) { conflict_file.diff_lines_for_serializer.map(&:type) }
+
+ it 'assigns conflict types to the diff lines' do
+ expect(diff_line_types[4]).to eq('conflict_marker')
+ expect(diff_line_types[5..10]).to eq(['conflict_marker_our'] * 6)
+ expect(diff_line_types[11]).to eq('conflict_marker')
+ expect(diff_line_types[12..17]).to eq(['conflict_marker_their'] * 6)
+ expect(diff_line_types[18]).to eq('conflict_marker')
+
+ expect(diff_line_types[19..24]).to eq([nil] * 6)
+
+ expect(diff_line_types[25]).to eq('conflict_marker')
+ expect(diff_line_types[26..27]).to eq(['conflict_marker_our'] * 2)
+ expect(diff_line_types[28]).to eq('conflict_marker')
+ expect(diff_line_types[29..30]).to eq(['conflict_marker_their'] * 2)
+ expect(diff_line_types[31]).to eq('conflict_marker')
+ end
+
+ it 'does not add a match line to the end of the section' do
+ expect(diff_line_types.last).to eq(nil)
+ end
+
+ context 'when there are unchanged trailing lines' do
+ let(:rugged_conflict) { index.conflicts.first }
+ let(:raw_conflict_content) { index.merge_file('files/ruby/popen.rb')[:data] }
+
+ it 'assign conflict types and adds match line to the end of the section' do
+ expect(diff_line_types).to eq([
+ 'match',
+ nil, nil, nil,
+ "conflict_marker",
+ "conflict_marker_our",
+ "conflict_marker",
+ "conflict_marker_their",
+ "conflict_marker_their",
+ "conflict_marker_their",
+ "conflict_marker",
+ nil, nil, nil,
+ "match"
+ ])
+ end
+ end
+ end
+
describe '#sections' do
it 'only inserts match lines when there is a gap between sections' do
conflict_file.sections.each_with_index do |section, i|