Skip to content

Commit 0577b10

Browse files
authored
Merge pull request #560 from fatkodima/fix-unused-views
Fix unused views report
2 parents b9d98e7 + 9f81098 commit 0577b10

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

lib/coverband.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
require "redis"
66
require "coverband/version"
77
require "coverband/at_exit"
8-
require "coverband/configuration"
98
require "coverband/utils/relative_file_converter"
109
require "coverband/utils/absolute_file_converter"
1110
require "coverband/adapters/base"
@@ -27,6 +26,7 @@
2726
require "coverband/integrations/background"
2827
require "coverband/integrations/background_middleware"
2928
require "coverband/integrations/rack_server_check"
29+
require "coverband/configuration"
3030

3131
Coverband::Adapters::RedisStore = Coverband::Adapters::HashRedisStore if ENV["COVERBAND_HASH_REDIS_STORE"]
3232

lib/coverband/collectors/view_tracker.rb

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@ class ViewTracker < AbstractTracker
1717

1818
REPORT_ROUTE = "views_tracker"
1919
TITLE = "Views"
20+
VIEWS_PATTERNS = %w[.erb$ .haml$ .slim$]
2021

2122
def initialize(options = {})
2223
@project_directory = File.expand_path(Coverband.configuration.root)
2324
@roots = options.fetch(:roots) { Coverband.configuration.all_root_patterns }
2425
@roots = @roots.split(",") if @roots.is_a?(String)
2526

2627
super
28+
29+
@ignore_patterns -= VIEWS_PATTERNS.map { |ignore_str| Regexp.new(ignore_str) }
2730
end
2831

2932
def railtie!
@@ -84,7 +87,7 @@ def unused_keys(used_views = nil)
8487
recently_used_views = used_keys.keys
8588
unused_views = all_keys - recently_used_views
8689
# since layouts don't include format we count them used if they match with ANY formats
87-
unused_views.reject { |view| view.include?("/layouts/") && recently_used_views.any? { |used_view| view.include?(used_view) } }
90+
unused_views = unused_views.reject { |view| view.include?("/layouts/") && recently_used_views.any? { |used_view| view.include?(used_view) } }
8891
unused_views.reject { |view| @ignore_patterns.any? { |pattern| view.match?(pattern) } }
8992
end
9093

lib/coverband/configuration.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class Configuration
4848
# Heroku when building assets runs code from a dynamic directory
4949
# /tmp was added to avoid coverage from /tmp/build directories during
5050
# heroku asset compilation
51-
IGNORE_DEFAULTS = %w[vendor/ .erb$ .slim$ /tmp internal:prelude db/schema.rb]
51+
IGNORE_DEFAULTS = %w[vendor/ /tmp internal:prelude db/schema.rb] + Collectors::ViewTracker::VIEWS_PATTERNS
5252

5353
# Add in missing files which were never loaded
5454
# we need to know what all paths to check for unloaded files

test/coverband/collectors/view_tracker_test.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,22 +88,22 @@ def setup
8888
Coverband::Collectors::ViewTracker.expects(:supported_version?).returns(true)
8989
store = fake_store
9090
file_path = "#{File.expand_path(Coverband.configuration.root)}/file"
91-
target = [file_path, "not_used"]
91+
target = [file_path, "not_used.html.erb"]
9292
tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir", target: target)
9393
tracker.track_key(identifier: file_path)
9494
tracker.save_report
95-
assert_equal ["not_used"], tracker.unused_keys
95+
assert_equal ["not_used.html.erb"], tracker.unused_keys
9696
end
9797

9898
test "report hides partials marked in ignore config" do
9999
Coverband::Collectors::ViewTracker.expects(:supported_version?).returns(true)
100100
store = fake_store
101101
file_path = "#{File.expand_path(Coverband.configuration.root)}/app/views/anything/ignore_me.html.erb"
102-
target = [file_path, "not_used"]
102+
target = [file_path, "not_used.html.erb"]
103103
tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir", target: target)
104104
tracker.track_key(identifier: file_path)
105105
tracker.save_report
106-
assert_equal ["not_used"], tracker.unused_keys
106+
assert_equal ["not_used.html.erb"], tracker.unused_keys
107107
assert_equal [], tracker.used_keys.keys
108108
end
109109

test/coverband/configuration_test.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def setup
1818

1919
test "ignore works with equal" do
2020
Coverband::Collectors::Coverage.instance.reset_instance
21-
expected = ["vendor/", ".erb$", ".slim$", "/tmp", "internal:prelude", "db/schema.rb", "config/environments"].map { |str| Regexp.new(str) }
21+
expected = ["vendor/", "/tmp", "internal:prelude", "db/schema.rb", ".erb$", ".haml$", ".slim$", "config/environments"].map { |str| Regexp.new(str) }
2222
assert_equal expected, Coverband.configuration.ignore
2323
end
2424

@@ -28,11 +28,12 @@ def setup
2828
end
2929
Coverband::Collectors::Coverage.instance.reset_instance
3030
expected = ["vendor/",
31-
".erb$",
32-
".slim$",
3331
"/tmp",
3432
"internal:prelude",
3533
"db/schema.rb",
34+
".erb$",
35+
".haml$",
36+
".slim$",
3637
"config/environments",
3738
"config/initializers"].map { |str| Regexp.new(str) }
3839
assert_equal expected, Coverband.configuration.ignore

0 commit comments

Comments
 (0)