Add specs for Diff#colorized_diff and fix implementation
This commit is contained in:
parent
a0b9bfd246
commit
7f86a53cc4
2 changed files with 18 additions and 19 deletions
|
@ -36,9 +36,7 @@ module Mutant
|
|||
#
|
||||
def colorized_diff
|
||||
return unless diff
|
||||
diff.lines.map do |line|
|
||||
self.class.colorize_line(line)
|
||||
end.join
|
||||
diff.lines.map(&self.class.method(:colorize_line)).join
|
||||
end
|
||||
memoize :colorized_diff
|
||||
|
||||
|
@ -109,6 +107,7 @@ module Mutant
|
|||
Color::NONE
|
||||
end.format(line)
|
||||
end
|
||||
private_class_method :colorize_line
|
||||
|
||||
end # Diff
|
||||
end # Mutant
|
||||
|
|
|
@ -12,27 +12,27 @@ RSpec.describe Mutant::Diff do
|
|||
|
||||
end
|
||||
|
||||
describe '.colorize_line' do
|
||||
let(:object) { described_class }
|
||||
describe '#colorized_diff' do
|
||||
let(:object) { described_class.new(old, new) }
|
||||
|
||||
subject { object.colorize_line(line) }
|
||||
subject { object.colorized_diff }
|
||||
|
||||
context 'line beginning with "+"' do
|
||||
let(:line) { '+line' }
|
||||
context 'when there is a diff at begin of hunk' do
|
||||
let(:old) { %w[foo bar] }
|
||||
let(:new) { %w[baz bar] }
|
||||
|
||||
it { should eql(Mutant::Color::GREEN.format(line)) }
|
||||
end
|
||||
let(:expectation) do
|
||||
[
|
||||
"@@ -1,3 +1,3 @@\n",
|
||||
Mutant::Color::RED.format("-foo\n"),
|
||||
Mutant::Color::GREEN.format("+baz\n"),
|
||||
" bar\n"
|
||||
].join
|
||||
end
|
||||
|
||||
context 'line beginning with "-"' do
|
||||
let(:line) { '-line' }
|
||||
it { should eql(expectation) }
|
||||
|
||||
it { should eql(Mutant::Color::RED.format(line)) }
|
||||
end
|
||||
|
||||
context 'line beginning in other char' do
|
||||
let(:line) { ' line' }
|
||||
|
||||
it { should eql(line) }
|
||||
it_should_behave_like 'an idempotent method'
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue