Skip to content

Commit 09532dd

Browse files
authored
Merge pull request #567 from fatkodima/simple-method-is-not-dead
Do not mark single-line and empty methods as dead
2 parents c39130f + 9e3a7b0 commit 09532dd

File tree

5 files changed

+25
-8
lines changed

5 files changed

+25
-8
lines changed

lib/coverband/utils/method_definition_scanner.rb

+14-2
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,23 @@ def coverage?(file_coverage)
3232
private
3333

3434
def first_line_number
35-
@method_definition.first_line_number + 1
35+
if multiline?
36+
@method_definition.first_line_number + 1
37+
else
38+
@method_definition.first_line_number
39+
end
3640
end
3741

3842
def last_line_number
39-
@method_definition.last_line_number - 1
43+
if multiline?
44+
@method_definition.last_line_number - 1
45+
else
46+
@method_definition.last_line_number
47+
end
48+
end
49+
50+
def multiline?
51+
@method_definition.last_line_number - @method_definition.first_line_number > 1
4052
end
4153
end
4254

test/coverband/collectors/coverage_test.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ def teardown
2323
file = require_unique_file
2424
coverband.report_coverage
2525
coverage = Coverband.configuration.store.coverage
26-
assert_equal(coverage[file]["data"], [nil, nil, 1, 1, 0, nil, nil])
26+
assert_equal(coverage[file]["data"], [nil, nil, 1, 1, 0, nil, nil, 1, nil, 1, nil, nil])
2727
end
2828

2929
test "Dog method and class coverage" do
3030
load File.expand_path("../../dog.rb", File.dirname(__FILE__))
3131
Dog.new.bark
3232
coverband.report_coverage
3333
coverage = Coverband.configuration.store.coverage
34-
assert_equal(coverage["./test/dog.rb"]["data"], [nil, nil, 1, 1, 1, nil, nil])
34+
assert_equal(coverage["./test/dog.rb"]["data"], [nil, nil, 1, 1, 1, nil, nil, 1, nil, 1, nil, nil])
3535
end
3636

3737
test "Dog eager load coverage" do
@@ -45,7 +45,7 @@ def teardown
4545
coverband.eager_loading!
4646
coverage = Coverband.configuration.store.coverage[file]
4747
refute_nil coverage, "Eager load coverage is present"
48-
assert_equal(coverage["data"], [nil, nil, 1, 1, 0, nil, nil])
48+
assert_equal(coverage["data"], [nil, nil, 1, 1, 0, nil, nil, 1, nil, 1, nil, nil])
4949
end
5050

5151
test "gets coverage instance" do

test/coverband/utils/dead_methods_test.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def setup
1616

1717
def test_dog_dead_methods
1818
file_path = require_unique_file
19-
coverage = [nil, nil, 1, 1, 0, nil, nil]
19+
coverage = [nil, nil, 1, 1, 0, nil, nil, 1, nil, 1, nil, nil]
2020
dead_methods =
2121
DeadMethods.scan(file_path: file_path, coverage: coverage)
2222
assert_equal(1, dead_methods.length)
@@ -56,7 +56,7 @@ def test_output_all
5656

5757
def test_dog_methods_not_dead
5858
file = require_unique_file
59-
coverage = [nil, nil, 1, 1, 1, nil, nil]
59+
coverage = [nil, nil, 1, 1, 1, nil, nil, 1, nil, 1, nil, nil]
6060
assert_empty(DeadMethods.scan(file_path: file, coverage: coverage))
6161
end
6262
end

test/coverband/utils/method_definition_scanner_test.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class MethodDefinitionScannerTest < Minitest::Test
4040
def test_scan
4141
method_definitions = MethodDefinitionScanner.scan("./test/dog.rb")
4242
assert(method_definitions)
43-
assert_equal(1, method_definitions.length)
43+
assert_equal(3, method_definitions.length)
4444
method_definition = method_definitions.first # assert_equal(4, method.first_line)
4545
assert_equal(4, method_definition.first_line_number)
4646
assert_equal(6, method_definition.last_line_number)

test/dog.rb

+5
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,9 @@ class Dog
44
def bark
55
"woof"
66
end
7+
8+
def single_line; end # rubocop:disable Style
9+
10+
def empty
11+
end
712
end

0 commit comments

Comments
 (0)