Skip to content

Commit f7b8d3b

Browse files
committed
bump undercover and pronto dependencies
1 parent 7a22248 commit f7b8d3b

5 files changed

Lines changed: 42 additions & 11 deletions

File tree

lib/pronto/patch_changeset.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ def file_paths
2929

3030
def each_changed_line
3131
@patches.each do |patch|
32+
filepath = patch.delta.new_file[:path]
33+
next if @filter_set && !@filter_set.include?(filepath)
34+
3235
patch.added_lines.each do |line|
3336
yield patch.delta.new_file[:path].to_s, line.new_lineno
3437
end
@@ -40,5 +43,9 @@ def validate(lcov_report_path)
4043

4144
:stale_coverage if last_modified > File.mtime(lcov_report_path)
4245
end
46+
47+
def filter_with(filter_set)
48+
@filter_set = filter_set
49+
end
4350
end
4451
end

lib/pronto/undercover.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,20 @@ def patch_to_undercover_message(patch)
5454

5555
def undercover_warnings
5656
@undercover_warnings ||= ::Undercover::Report.new(
57-
@patch_changeset, undercover_options
57+
@patch_changeset, undercover_options, coverage_adapter
5858
).build.flagged_results
5959
end
6060

61+
def coverage_adapter
62+
if undercover_options.simplecov_resultset
63+
::Undercover::SimplecovResultAdapter.parse(File.open(undercover_options.simplecov_resultset),
64+
undercover_options)
65+
else
66+
# TODO: lcov will be deprecated end of 2025 and we'll be able to refactor harder
67+
::Undercover::LcovParser.parse(File.open(undercover_options.lcov), undercover_options)
68+
end
69+
end
70+
6171
def offending_line_numbers(patch)
6272
patch_lines = patch.added_lines.map(&:new_lineno)
6373
path = patch.new_file_full_path.to_s
@@ -91,7 +101,7 @@ def undercover_options
91101

92102
opts = []
93103
OPTS_MAPPING.each { |key, flag| opts << "#{flag}#{config[key]}" if config[key] }
94-
::Undercover::Options.new.parse(opts)
104+
@undercover_options ||= ::Undercover::Options.new.parse(opts)
95105
end
96106
end
97107
end

pronto-undercover.gemspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Gem::Specification.new do |spec|
2020
spec.require_paths = ['lib']
2121
spec.required_ruby_version = '>= 2.5'
2222

23-
spec.add_dependency 'pronto', '>= 0.9', '< 0.12'
24-
spec.add_dependency 'undercover', '~> 0.7'
23+
spec.add_dependency 'pronto', '>= 0.11', '< 0.12'
24+
spec.add_dependency 'undercover', '~> 0.8'
2525

2626
spec.add_dependency 'base64'
2727
spec.add_dependency 'bigdecimal'

spec/pronto/patch_changeset_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
collection = []
1313
changeset.each_changed_line { |file, ln| collection << [file, ln] }
1414

15-
expect(collection).to include(*((1..19).map { |line| ['class.rb', line] }))
15+
expect(collection).to include(*(1..19).map { |line| ['class.rb', line] })
1616
end
1717
end
1818

spec/pronto/undercover_spec.rb

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@
5454
write_config(valid_config)
5555

5656
expect(Undercover::Report)
57-
.to receive(:new).and_wrap_original do |m, changeset, opts|
57+
.to receive(:new).and_wrap_original do |m, changeset, opts, coverage_adapter|
5858
expect(opts.lcov).to eq('coverage/lcov/fixtures.lcov')
5959
expect(opts.path).to eq('.')
6060
expect(opts.syntax_version).to eq('ruby34')
6161
expect(opts.glob_allow_filters).to eq(['*.rb', 'Rakefile'])
6262
expect(opts.glob_reject_filters).to eq(['db/*'])
6363
expect(opts.max_warnings_limit).to eq(100)
64-
m.call(changeset, opts)
64+
m.call(changeset, opts, coverage_adapter)
6565
end
6666

6767
Pronto.run(:staged, 'test.git', nil)
@@ -100,10 +100,7 @@
100100

101101
context 'with JSON formatter option' do
102102
it 'correctly reports on a patch inside of a changed file from JSON report' do
103-
config = valid_config.merge(
104-
'simplecov' => 'coverage/fixtures_coverage.json',
105-
'lcov' => nil
106-
)
103+
config = valid_config.merge('simplecov' => 'coverage/fixtures_coverage.json')
107104
write_config(config)
108105

109106
expect_any_instance_of(Undercover::LcovParser).to receive(:coverage).never
@@ -126,6 +123,23 @@
126123
delete_config
127124
end
128125
end
126+
127+
it 'accepts include-files and exclude-files options' do
128+
config = valid_config.merge(
129+
'simplecov' => 'coverage/fixtures_coverage.json',
130+
'include-files' => '*.rb',
131+
'exclude-files' => 'module.rb'
132+
)
133+
write_config(config)
134+
135+
results = Pronto.run(:unstaged, 'test.git', nil)
136+
137+
matched_files = results.map { _1.path }
138+
expect(matched_files).to include('patch.rb')
139+
expect(matched_files).not_to include('module.rb')
140+
141+
delete_config
142+
end
129143
end
130144
end
131145

0 commit comments

Comments
 (0)