diff --git a/spec/lib/gitlab/diff/highlight_spec.rb b/spec/lib/gitlab/diff/highlight_spec.rb index fc5cb894d2..4ab509f47b 100644 --- a/spec/lib/gitlab/diff/highlight_spec.rb +++ b/spec/lib/gitlab/diff/highlight_spec.rb @@ -6,24 +6,24 @@ describe Gitlab::Diff::Highlight, lib: true do let(:project) { create(:project) } let(:commit) { project.commit(sample_commit.id) } let(:diff) { commit.diffs.first } - let(:diff_file) { Gitlab::Diff::File.new(diff) } + let(:diff_file) { Gitlab::Diff::File.new(diff, [commit.parent.id, commit.id], project.repository) } describe '.process_diff_lines' do context 'when processing Gitlab::Diff::Line objects' do - let(:diff_lines) { Gitlab::Diff::Highlight.process_diff_lines(diff_file.new_path, diff_file.diff_lines) } + let(:diff_lines) { Gitlab::Diff::Highlight.process_diff_lines(diff_file) } it 'should return Gitlab::Diff::Line elements' do expect(diff_lines.first).to be_an_instance_of(Gitlab::Diff::Line) end it 'should highlight the code' do - code = %Q{ def popen(cmd, path=nil)\n} + code = %Q{ def popen(cmd, path=nil)\n} expect(diff_lines[2].text).to eq(code) end - it 'should keep the inline diff markup' do - expect(diff_lines[5].text).to match(Regexp.new(Regexp.escape('RuntimeError, '))) + it 'should not generate the inline diff markup' do + expect(diff_lines[5].text).not_to match(Regexp.new(Regexp.escape(''))) end it 'should not modify "match" lines' do @@ -31,19 +31,18 @@ describe Gitlab::Diff::Highlight, lib: true do expect(diff_lines[22].text).to eq('@@ -19,6 +25,7 @@ module Popen') end end + end - context 'when processing raw lines' do - let(:lines) { ["puts 'Hello'\n", "# A comment"] } - let(:highlighted_lines) { Gitlab::Diff::Highlight.process_diff_lines('demo.rb', lines) } - - it 'should highlight the code' do - line_1 = %Q{puts 'Hello'\n} - line_2 = %Q{# A comment} - - expect(highlighted_lines[0]).to eq(line_1) - expect(highlighted_lines[1]).to eq(line_2) - end + describe '.process_file' do + let(:lines) do + Gitlab::Diff::Highlight.process_file(project.repository, commit.id, 'files/ruby/popen.rb') end + it 'should properly highlight all the lines' do + expect(lines[4]).to eq(%Q{ extend self\n}) + expect(lines[21]).to eq(%Q{ unless File.directory?(path)\n}) + expect(lines[26]).to eq(%Q{ @cmd_status = 0\n}) + end end + end