diff options
author | Felipe Artur <felipefac@gmail.com> | 2018-08-16 21:53:33 +0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2018-08-31 21:32:48 +0300 |
commit | 5bc54ca425866c37f6cdf6448d8ae2dcbabea3bf (patch) | |
tree | df5971d723e3239fe86740d78873522f6667537a /spec/serializers | |
parent | 472f2d566633df6c1dee1f703b06958b9a0a2cd8 (diff) |
Use a serializer to render diff lines
Diffstat (limited to 'spec/serializers')
-rw-r--r-- | spec/serializers/diff_file_entity_spec.rb | 17 | ||||
-rw-r--r-- | spec/serializers/diff_line_serializer_spec.rb | 25 |
2 files changed, 42 insertions, 0 deletions
diff --git a/spec/serializers/diff_file_entity_spec.rb b/spec/serializers/diff_file_entity_spec.rb index 00b2146dc86..3d90ce44dfb 100644 --- a/spec/serializers/diff_file_entity_spec.rb +++ b/spec/serializers/diff_file_entity_spec.rb @@ -67,4 +67,21 @@ describe DiffFileEntity do end end end + + context '#parallel_diff_lines' do + it 'exposes parallel diff lines correctly' do + response = subject + + lines = response[:parallel_diff_lines] + + # make sure at least one line is present for each side + expect(lines.map { |line| line[:right] }.compact).to be_present + expect(lines.map { |line| line[:left] }.compact).to be_present + # make sure all lines are in correct format + lines.each do |parallel_line| + expect(parallel_line[:left].as_json).to match_schema('entities/diff_line') if parallel_line[:left] + expect(parallel_line[:right].as_json).to match_schema('entities/diff_line') if parallel_line[:right] + end + end + end end diff --git a/spec/serializers/diff_line_serializer_spec.rb b/spec/serializers/diff_line_serializer_spec.rb new file mode 100644 index 00000000000..6dd8abd0579 --- /dev/null +++ b/spec/serializers/diff_line_serializer_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +describe DiffLineSerializer do + let(:line) { Gitlab::Diff::Line.new('hello world', 'new', 1, nil, 1) } + let(:serializer) { described_class.new.represent(line) } + + describe '#to_json' do + subject { serializer.to_json } + + it 'matches the schema' do + expect(subject).to match_schema('entities/diff_line') + end + + context 'when lines are parallel' do + let(:right_line) { Gitlab::Diff::Line.new('right line', 'new', 1, nil, 1) } + let(:left_line) { Gitlab::Diff::Line.new('left line', 'match', 1, nil, 1) } + let(:parallel_line) { [{ right: right_line, left: left_line }] } + let(:serializer) { described_class.new.represent(parallel_line, {}, DiffLineParallelEntity) } + + it 'matches the schema' do + expect(subject).to match_schema('entities/diff_line_parallel') + end + end + end +end |