coverband 5.2.5 → 5.2.6.rc.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -38,8 +38,7 @@ module Coverband
38
38
  # if deferred is set also sleep frst to spread load
39
39
  sleep(sleep_seconds.to_i) if Coverband.configuration.defer_eager_loading_data?
40
40
  Coverband.report_coverage
41
- Coverband.configuration.view_tracker&.report_views_tracked
42
- Coverband.configuration.route_tracker&.report_routes_tracked
41
+ Coverband.configuration.trackers.each { |tracker| tracker.save_report }
43
42
  if Coverband.configuration.verbose
44
43
  logger.debug("Coverband: background reporting coverage (#{Coverband.configuration.store.type}). Sleeping #{sleep_seconds}s")
45
44
  end
@@ -36,45 +36,49 @@ module Coverband
36
36
  return [401, {"www-authenticate" => 'Basic realm=""'}, [""]] unless check_auth
37
37
 
38
38
  request_path_info = request.path_info == "" ? "/" : request.path_info
39
- if request.post?
40
- case request_path_info
41
- when %r{\/clear_route_tracking_route}
42
- clear_route_tracking_route
43
- when %r{\/clear_route_tracking}
44
- clear_route_tracking
45
- when %r{\/clear_view_tracking_file}
46
- clear_view_tracking_file
47
- when %r{\/clear_view_tracking}
48
- clear_view_tracking
49
- when %r{\/clear_file}
50
- clear_file
51
- when %r{\/clear}
52
- clear
53
- else
54
- [404, {"Content-Type" => "text/html"}, ["404 error!"]]
39
+ tracker_route = false
40
+ Coverband.configuration.trackers.each do |tracker|
41
+ if request_path_info.match(tracker.class::REPORT_ROUTE)
42
+ tracker_route = true
43
+ if request_path_info =~ %r{\/clear_.*_key}
44
+ return clear_abstract_tracking_key(tracker)
45
+ elsif request_path_info =~ %r{\/clear_.*}
46
+ return clear_abstract_tracking(tracker)
47
+ else
48
+ return [200, {"Content-Type" => "text/html"}, [display_abstract_tracker(tracker)]]
49
+ end
55
50
  end
56
- else
57
- case request_path_info
58
- when /.*\.(css|js|gif|png)/
59
- @static.call(env)
60
- when %r{\/settings}
61
- [200, {"Content-Type" => "text/html"}, [settings]]
62
- when %r{\/view_tracker_data}
63
- [200, {"Content-Type" => "text/json"}, [view_tracker_data]]
64
- when %r{\/view_tracker}
65
- [200, {"Content-Type" => "text/html"}, [view_tracker]]
66
- when %r{\/route_tracker}
67
- [200, {"Content-Type" => "text/html"}, [route_tracker]]
68
- when %r{\/enriched_debug_data}
69
- [200, {"Content-Type" => "text/json"}, [enriched_debug_data]]
70
- when %r{\/debug_data}
71
- [200, {"Content-Type" => "text/json"}, [debug_data]]
72
- when %r{\/load_file_details}
73
- [200, {"Content-Type" => "text/json"}, [load_file_details]]
74
- when %r{\/$}
75
- [200, {"Content-Type" => "text/html"}, [index]]
51
+ end
52
+
53
+ unless tracker_route
54
+ if request.post?
55
+ case request_path_info
56
+ when %r{\/clear_file}
57
+ clear_file
58
+ when %r{\/clear}
59
+ clear
60
+ else
61
+ [404, {"Content-Type" => "text/html"}, ["404 error!"]]
62
+ end
76
63
  else
77
- [404, {"Content-Type" => "text/html"}, ["404 error!"]]
64
+ case request_path_info
65
+ when /.*\.(css|js|gif|png)/
66
+ @static.call(env)
67
+ when %r{\/settings}
68
+ [200, {"Content-Type" => "text/html"}, [settings]]
69
+ when %r{\/view_tracker_data}
70
+ [200, {"Content-Type" => "text/json"}, [view_tracker_data]]
71
+ when %r{\/enriched_debug_data}
72
+ [200, {"Content-Type" => "text/json"}, [enriched_debug_data]]
73
+ when %r{\/debug_data}
74
+ [200, {"Content-Type" => "text/json"}, [debug_data]]
75
+ when %r{\/load_file_details}
76
+ [200, {"Content-Type" => "text/json"}, [load_file_details]]
77
+ when %r{\/$}
78
+ [200, {"Content-Type" => "text/html"}, [index]]
79
+ else
80
+ [404, {"Content-Type" => "text/html"}, ["404 error!"]]
81
+ end
78
82
  end
79
83
  end
80
84
  end
@@ -93,24 +97,17 @@ module Coverband
93
97
  Coverband::Utils::HTMLFormatter.new(nil, base_path: base_path).format_settings!
94
98
  end
95
99
 
96
- def view_tracker
100
+ def display_abstract_tracker(tracker)
97
101
  notice = "<strong>Notice:</strong> #{Rack::Utils.escape_html(request.params["notice"])}<br/>"
98
102
  notice = request.params["notice"] ? notice : ""
99
103
  Coverband::Utils::HTMLFormatter.new(nil,
104
+ tracker: tracker,
100
105
  notice: notice,
101
- base_path: base_path).format_view_tracker!
102
- end
103
-
104
- def route_tracker
105
- notice = "<strong>Notice:</strong> #{Rack::Utils.escape_html(request.params["notice"])}<br/>"
106
- notice = request.params["notice"] ? notice : ""
107
- Coverband::Utils::HTMLFormatter.new(nil,
108
- notice: notice,
109
- base_path: base_path).format_route_tracker!
106
+ base_path: base_path).format_abstract_tracker!
110
107
  end
111
108
 
112
109
  def view_tracker_data
113
- Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store).as_json
110
+ Coverband::Collectors::ViewTracker.new.as_json
114
111
  end
115
112
 
116
113
  def debug_data
@@ -154,50 +151,25 @@ module Coverband
154
151
  [302, {"Location" => "#{base_path}?notice=#{notice}"}, []]
155
152
  end
156
153
 
157
- def clear_view_tracking
158
- if Coverband.configuration.web_enable_clear
159
- tracker = Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store)
160
- tracker.reset_recordings
161
- notice = "view tracking reset"
162
- else
163
- notice = "web_enable_clear isn't enabled in your configuration"
164
- end
165
- [302, {"Location" => "#{base_path}/view_tracker?notice=#{notice}"}, []]
166
- end
167
-
168
- def clear_view_tracking_file
169
- if Coverband.configuration.web_enable_clear
170
- tracker = Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store)
171
- filename = request.params["filename"]
172
- tracker.clear_file!(filename)
173
- notice = "coverage for file #{filename} cleared"
174
- else
175
- notice = "web_enable_clear isn't enabled in your configuration"
176
- end
177
- [302, {"Location" => "#{base_path}/view_tracker?notice=#{notice}"}, []]
178
- end
179
-
180
- def clear_route_tracking
154
+ def clear_abstract_tracking(tracker)
181
155
  if Coverband.configuration.web_enable_clear
182
- tracker = Coverband::Collectors::RouteTracker.new(store: Coverband.configuration.store)
183
156
  tracker.reset_recordings
184
- notice = "route tracking reset"
157
+ notice = "#{tracker.title} tracking reset"
185
158
  else
186
159
  notice = "web_enable_clear isn't enabled in your configuration"
187
160
  end
188
- [302, {"Location" => "#{base_path}/route_tracker?notice=#{notice}"}, []]
161
+ [302, {"Location" => "#{base_path}/#{tracker.route}?notice=#{notice}"}, []]
189
162
  end
190
163
 
191
- def clear_route_tracking_route
164
+ def clear_abstract_tracking_key(tracker)
192
165
  if Coverband.configuration.web_enable_clear
193
- tracker = Coverband::Collectors::RouteTracker.new(store: Coverband.configuration.store)
194
- route = request.params["route"]
195
- tracker.clear_route!(route)
196
- notice = "coverage for route #{route} cleared"
166
+ key = request.params["key"]
167
+ tracker.clear_key!(key)
168
+ notice = "coverage for #{tracker.title} #{key} cleared"
197
169
  else
198
170
  notice = "web_enable_clear isn't enabled in your configuration"
199
171
  end
200
- [302, {"Location" => "#{base_path}/route_tracker?notice=#{notice}"}, []]
172
+ [302, {"Location" => "#{base_path}/#{tracker.route}?notice=#{notice}"}, []]
201
173
  end
202
174
 
203
175
  private
@@ -211,7 +183,7 @@ module Coverband
211
183
  # %r{\/.*\/}.match?(request.path) ? request.path.match("\/.*\/")[0] : "/"
212
184
  # ^^ the above is NOT valid Ruby 2.3/2.4 even though rubocop / standard think it is
213
185
  def base_path
214
- request.path =~ %r{\/.*\/} ? request.path.match("\/.*\/")[0] : "/"
186
+ request.path =~ %r{\/.*\/} ? request.path.match("/.*/")[0] : "/"
215
187
  end
216
188
  end
217
189
  end
@@ -13,11 +13,12 @@ require "time"
13
13
  module Coverband
14
14
  module Utils
15
15
  class HTMLFormatter
16
- attr_reader :notice, :base_path
16
+ attr_reader :notice, :base_path, :tracker
17
17
 
18
18
  def initialize(report, options = {})
19
- @notice = options.fetch(:notice) { nil }
20
- @base_path = options.fetch(:base_path) { "./" }
19
+ @notice = options.fetch(:notice, nil)
20
+ @base_path = options.fetch(:base_path, "./")
21
+ @tracker = options.fetch(:tracker, nil)
21
22
  @coverage_result = Coverband::Utils::Results.new(report) if report
22
23
  end
23
24
 
@@ -33,12 +34,8 @@ module Coverband
33
34
  format_settings
34
35
  end
35
36
 
36
- def format_view_tracker!
37
- format_view_tracker
38
- end
39
-
40
- def format_route_tracker!
41
- format_route_tracker
37
+ def format_abstract_tracker!
38
+ template("abstract_tracker").result(binding)
42
39
  end
43
40
 
44
41
  def format_source_file!(filename)
@@ -57,14 +54,6 @@ module Coverband
57
54
  template("settings").result(binding)
58
55
  end
59
56
 
60
- def format_view_tracker
61
- template("view_tracker").result(binding)
62
- end
63
-
64
- def format_route_tracker
65
- template("route_tracker").result(binding)
66
- end
67
-
68
57
  def format(result)
69
58
  Dir[File.join(File.dirname(__FILE__), "../../../public/*")].each do |path|
70
59
  FileUtils.cp_r(path, asset_output_path)
@@ -109,7 +98,7 @@ module Coverband
109
98
  end
110
99
 
111
100
  def button(url, title, opts = {})
112
- delete = opts.fetch(:delete) { false }
101
+ delete = opts.fetch(:delete, false)
113
102
  button_css = delete ? "coveraband-button del" : "coveraband-button"
114
103
  button = "<form action='#{url}' class='coverband-admin-form' method='post'>"
115
104
  button += "<button class='#{button_css}' type='submit'>#{title}</button>"
@@ -27,44 +27,7 @@ module Coverband
27
27
  Coverband.runtime_coverage!
28
28
  end
29
29
 
30
- begin
31
- if Coverband.configuration.track_routes
32
- if Gem::Version.new(Rails.version) >= Gem::Version.new("6.0.0") && Gem::Version.new(Rails.version) < Gem::Version.new("7.1.0")
33
- require_relative "rails6_ext"
34
- end
35
-
36
- Coverband.configuration.route_tracker = Coverband::Collectors::RouteTracker.new
37
-
38
- ActiveSupport::Notifications.subscribe("start_processing.action_controller") do |name, start, finish, id, payload|
39
- Coverband.configuration.route_tracker.track_routes(name, start, finish, id, payload)
40
- end
41
-
42
- # NOTE: This event was instrumented in Aug 10th 2022, but didn't make the 7.0.4 release and should be in the next release
43
- # https://github.com/rails/rails/pull/43755
44
- # Automatic tracking of redirects isn't avaible before Rails 7.1.0 (currently tested against the 7.1.0.alpha)
45
- # We could consider back porting or patching a solution that works on previous Rails versions
46
- ActiveSupport::Notifications.subscribe("redirect.action_dispatch") do |name, start, finish, id, payload|
47
- Coverband.configuration.route_tracker.track_routes(name, start, finish, id, payload)
48
- end
49
- end
50
-
51
- if Coverband.configuration.track_views
52
- COVERBAND_VIEW_TRACKER = if Coverband.coverband_service?
53
- Coverband::Collectors::ViewTrackerService.new
54
- else
55
- Coverband::Collectors::ViewTracker.new
56
- end
57
-
58
- Coverband.configuration.view_tracker = COVERBAND_VIEW_TRACKER
59
-
60
- ActiveSupport::Notifications.subscribe(/render_(template|partial|collection).action_view/) do |name, start, finish, id, payload|
61
- COVERBAND_VIEW_TRACKER.track_views(name, start, finish, id, payload) unless name.include?("!")
62
- end
63
- end
64
- rescue Redis::CannotConnectError => error
65
- Coverband.configuration.logger.info "Redis is not available (#{error}), Coverband not configured"
66
- Coverband.configuration.logger.info "If this is a setup task like assets:precompile feel free to ignore"
67
- end
30
+ Coverband.configuration.railtie!
68
31
  end
69
32
 
70
33
  config.before_configuration do
@@ -5,5 +5,5 @@
5
5
  # use format "4.2.1.rc.1" ~> 4.2.1.rc to prerelease versions like v4.2.1.rc.2 and v4.2.1.rc.3
6
6
  ###
7
7
  module Coverband
8
- VERSION = "5.2.5"
8
+ VERSION = "5.2.6.rc.2"
9
9
  end
data/lib/coverband.rb CHANGED
@@ -16,9 +16,11 @@ require "coverband/adapters/stdout_store"
16
16
  require "coverband/adapters/null_store"
17
17
  require "coverband/utils/file_hasher"
18
18
  require "coverband/collectors/coverage"
19
+ require "coverband/collectors/abstract_tracker"
19
20
  require "coverband/collectors/view_tracker"
20
21
  require "coverband/collectors/view_tracker_service"
21
22
  require "coverband/collectors/route_tracker"
23
+ require "coverband/collectors/translation_tracker"
22
24
  require "coverband/reporters/base"
23
25
  require "coverband/reporters/console_report"
24
26
  require "coverband/integrations/background"
@@ -23,7 +23,7 @@ class RouterTrackerTest < Minitest::Test
23
23
  assert_equal nil, tracker.target.first
24
24
  assert !tracker.store.nil?
25
25
  assert_equal [], tracker.target
26
- assert_equal [], tracker.logged_routes
26
+ assert_equal [], tracker.logged_keys
27
27
  end
28
28
 
29
29
  test "track redirect routes" do
@@ -35,9 +35,9 @@ class RouterTrackerTest < Minitest::Test
35
35
  payload = {
36
36
  request: Payload.new("path", "GET")
37
37
  }
38
- tracker.track_routes("name", "start", "finish", "id", payload)
39
- tracker.report_routes_tracked
40
- assert_equal [route_hash], tracker.logged_routes
38
+ tracker.track_key(payload)
39
+ tracker.save_report
40
+ assert_equal [route_hash], tracker.logged_keys
41
41
  end
42
42
 
43
43
  test "track controller routes" do
@@ -52,9 +52,9 @@ class RouterTrackerTest < Minitest::Test
52
52
  path: "path",
53
53
  method: "GET"
54
54
  }
55
- tracker.track_routes("name", "start", "finish", "id", payload)
56
- tracker.report_routes_tracked
57
- assert_equal [route_hash], tracker.logged_routes
55
+ tracker.track_key(payload)
56
+ tracker.save_report
57
+ assert_equal [route_hash], tracker.logged_keys
58
58
  end
59
59
 
60
60
  test "report used routes" do
@@ -68,9 +68,9 @@ class RouterTrackerTest < Minitest::Test
68
68
  path: "path",
69
69
  method: "GET"
70
70
  }
71
- tracker.track_routes("name", "start", "finish", "id", payload)
72
- tracker.report_routes_tracked
73
- assert_equal [route_hash.to_s], tracker.used_routes.keys
71
+ tracker.track_key(payload)
72
+ tracker.save_report
73
+ assert_equal [route_hash.to_s], tracker.used_keys.keys
74
74
  end
75
75
 
76
76
  test "report unused routes" do
@@ -97,9 +97,9 @@ class RouterTrackerTest < Minitest::Test
97
97
  path: "path",
98
98
  method: "GET"
99
99
  }
100
- tracker.track_routes("name", "start", "finish", "id", payload)
101
- tracker.report_routes_tracked
102
- assert_equal [app_routes.first], tracker.unused_routes
100
+ tracker.track_key(payload)
101
+ tracker.save_report
102
+ assert_equal [app_routes.first], tracker.unused_keys
103
103
  end
104
104
 
105
105
  test "report unused routes pulls out parameterized routes" do
@@ -120,9 +120,9 @@ class RouterTrackerTest < Minitest::Test
120
120
  path: "some/controller/123",
121
121
  method: "GET"
122
122
  }
123
- tracker.track_routes("name", "start", "finish", "id", payload)
124
- tracker.report_routes_tracked
125
- assert_equal [], tracker.unused_routes
123
+ tracker.track_key(payload)
124
+ tracker.save_report
125
+ assert_equal [], tracker.unused_keys
126
126
  end
127
127
 
128
128
  test "reset store" do
@@ -135,9 +135,9 @@ class RouterTrackerTest < Minitest::Test
135
135
  method: "GET"
136
136
  }
137
137
  store.raw_store.expects(:del).with(tracker_key)
138
- store.raw_store.expects(:del).with("route_tracker_time")
138
+ store.raw_store.expects(:del).with("RouteTracker_tracker_time")
139
139
  tracker = Coverband::Collectors::RouteTracker.new(store: store, roots: "dir")
140
- tracker.track_routes("name", "start", "finish", "id", payload)
140
+ tracker.track_key(payload)
141
141
  tracker.reset_recordings
142
142
  end
143
143
 
@@ -152,10 +152,10 @@ class RouterTrackerTest < Minitest::Test
152
152
  path: "path",
153
153
  method: "GET"
154
154
  }
155
- tracker.track_routes("name", "start", "finish", "id", payload)
156
- tracker.report_routes_tracked
157
- assert_equal [route_hash.to_s], tracker.used_routes.keys
158
- tracker.clear_route!(route_hash.to_s)
155
+ tracker.track_key(payload)
156
+ tracker.save_report
157
+ assert_equal [route_hash.to_s], tracker.used_keys.keys
158
+ tracker.clear_key!(route_hash.to_s)
159
159
  assert_equal [], tracker.store.raw_store.hgetall(tracker_key).keys
160
160
  end
161
161
 
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("../../test_helper", File.dirname(__FILE__))
4
+ require "ostruct"
5
+
6
+ class TranslationTrackerTest < Minitest::Test
7
+ # NOTE: using struct vs open struct as open struct has a special keyword method that overshadows the method value on Ruby 2.x
8
+ Payload = Struct.new(:path, :method)
9
+
10
+ def tracker_key
11
+ Coverband::Collectors::TranslationTracker.expects(:supported_version?).at_least_once.returns(true)
12
+ Coverband::Collectors::TranslationTracker.new.send(:tracker_key)
13
+ end
14
+
15
+ def tracker_time_key
16
+ Coverband::Collectors::TranslationTracker.expects(:supported_version?).at_least_once.returns(true)
17
+ Coverband::Collectors::TranslationTracker.new.send(:tracker_time_key)
18
+ end
19
+
20
+ def setup
21
+ super
22
+ fake_store.raw_store.del(tracker_key)
23
+ end
24
+
25
+ test "init correctly" do
26
+ Coverband::Collectors::TranslationTracker.expects(:supported_version?).returns(true)
27
+ tracker = Coverband::Collectors::TranslationTracker.new(store: fake_store, roots: "dir")
28
+ assert_equal nil, tracker.target.first
29
+ assert !tracker.store.nil?
30
+ assert_equal [], tracker.target
31
+ assert_equal [], tracker.logged_keys
32
+ end
33
+
34
+ test "track standard translation keys" do
35
+ store = fake_store
36
+ translation_key = "en.views.pagination.truncate"
37
+ store.raw_store.expects(:hset).with(tracker_key, translation_key, anything)
38
+ tracker = Coverband::Collectors::TranslationTracker.new(store: store, roots: "dir")
39
+
40
+ tracker.track_key(translation_key.to_sym)
41
+ tracker.save_report
42
+ assert_equal [translation_key.to_sym], tracker.logged_keys
43
+ end
44
+
45
+ test "report used_keys" do
46
+ store = fake_store
47
+ translation_key = "en.views.pagination.truncate"
48
+ tracker = Coverband::Collectors::TranslationTracker.new(store: store, roots: "dir")
49
+ tracker.track_key(:"en.views.pagination.truncate")
50
+ tracker.save_report
51
+ assert_equal [translation_key], tracker.used_keys.keys
52
+ end
53
+
54
+ test "report unused_keys" do
55
+ store = fake_store
56
+ app_keys = [
57
+ "en.views.pagination.truncate",
58
+ "en.views.pagination.next"
59
+ ]
60
+ tracker = Coverband::Collectors::TranslationTracker.new(store: store, roots: "dir", target: app_keys)
61
+ tracker.track_key(:"en.views.pagination.truncate")
62
+ tracker.save_report
63
+ assert_equal [app_keys.last], tracker.unused_keys
64
+ end
65
+
66
+ test "reset store" do
67
+ store = fake_store
68
+ store.raw_store.expects(:del).with(tracker_key)
69
+ store.raw_store.expects(:del).with(tracker_time_key)
70
+ tracker = Coverband::Collectors::TranslationTracker.new(store: store, roots: "dir")
71
+ tracker.track_key(:"en.views.pagination.truncate")
72
+ tracker.reset_recordings
73
+ end
74
+
75
+ test "clear_key" do
76
+ store = fake_store
77
+ translation_key = "en.views.pagination.truncate"
78
+ tracker = Coverband::Collectors::TranslationTracker.new(store: store, roots: "dir")
79
+ tracker.track_key(translation_key.to_sym)
80
+ tracker.save_report
81
+ assert_equal [translation_key.to_s], tracker.used_keys.keys
82
+ tracker.clear_key!(translation_key.to_s)
83
+ assert_equal [], tracker.store.raw_store.hgetall(tracker_key).keys
84
+ end
85
+
86
+ protected
87
+
88
+ def fake_store
89
+ @fake_store ||= Coverband::Adapters::RedisStore.new(Coverband::Test.redis, redis_namespace: "coverband_test")
90
+ end
91
+ end
@@ -4,7 +4,7 @@ require File.expand_path("../../test_helper", File.dirname(__FILE__))
4
4
 
5
5
  class ViewTrackerTest < Minitest::Test
6
6
  def tracker_key
7
- "render_tracker_2"
7
+ "ViewTracker_tracker"
8
8
  end
9
9
 
10
10
  def setup
@@ -18,7 +18,7 @@ class ViewTrackerTest < Minitest::Test
18
18
  assert_equal "dir", tracker.roots.first
19
19
  assert !tracker.store.nil?
20
20
  assert_equal [], tracker.target
21
- assert_equal [], tracker.logged_views
21
+ assert_equal [], tracker.logged_keys
22
22
  end
23
23
 
24
24
  test "track partials" do
@@ -27,9 +27,9 @@ class ViewTrackerTest < Minitest::Test
27
27
  file_path = "#{File.expand_path(Coverband.configuration.root)}/file"
28
28
  store.raw_store.expects(:hset).with(tracker_key, file_path, anything)
29
29
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
30
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
31
- tracker.report_views_tracked
32
- assert_equal [file_path], tracker.logged_views
30
+ tracker.track_key(identifier: file_path)
31
+ tracker.save_report
32
+ assert_equal [file_path], tracker.logged_keys
33
33
  end
34
34
 
35
35
  test "track partials that include the word vendor in the path" do
@@ -37,9 +37,9 @@ class ViewTrackerTest < Minitest::Test
37
37
  store = fake_store
38
38
  file_path = "#{File.expand_path(Coverband.configuration.root)}/vendor_relations/file"
39
39
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
40
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
41
- tracker.report_views_tracked
42
- assert_equal [file_path], tracker.used_views.keys
40
+ tracker.track_key(identifier: file_path)
41
+ tracker.save_report
42
+ assert_equal [file_path], tracker.used_keys.keys
43
43
  end
44
44
 
45
45
  test "track partials that include the word _mailer in the path" do
@@ -47,9 +47,9 @@ class ViewTrackerTest < Minitest::Test
47
47
  store = fake_store
48
48
  file_path = "#{File.expand_path(Coverband.configuration.root)}/_mailer/file"
49
49
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
50
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
51
- tracker.report_views_tracked
52
- assert_equal [file_path], tracker.used_views.keys
50
+ tracker.track_key(identifier: file_path)
51
+ tracker.save_report
52
+ assert_equal [file_path], tracker.used_keys.keys
53
53
  end
54
54
 
55
55
  test "ignore partials that include the folder vendor in the path" do
@@ -57,9 +57,9 @@ class ViewTrackerTest < Minitest::Test
57
57
  store = fake_store
58
58
  file_path = "#{File.expand_path(Coverband.configuration.root)}/vendor/file"
59
59
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
60
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
61
- tracker.report_views_tracked
62
- assert_equal({}, tracker.used_views)
60
+ tracker.track_key(identifier: file_path)
61
+ tracker.save_report
62
+ assert_equal({}, tracker.used_keys)
63
63
  end
64
64
 
65
65
  test "track layouts" do
@@ -68,9 +68,9 @@ class ViewTrackerTest < Minitest::Test
68
68
  file_path = "#{File.expand_path(Coverband.configuration.root)}/layout"
69
69
  store.raw_store.expects(:hset).with(tracker_key, file_path, anything)
70
70
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
71
- tracker.track_views("name", "start", "finish", "id", layout: file_path)
72
- tracker.report_views_tracked
73
- assert_equal [file_path], tracker.logged_views
71
+ tracker.track_key(layout: file_path)
72
+ tracker.save_report
73
+ assert_equal [file_path], tracker.logged_keys
74
74
  end
75
75
 
76
76
  test "report used partials" do
@@ -78,9 +78,9 @@ class ViewTrackerTest < Minitest::Test
78
78
  store = fake_store
79
79
  file_path = "#{File.expand_path(Coverband.configuration.root)}/file"
80
80
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
81
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
82
- tracker.report_views_tracked
83
- assert_equal [file_path], tracker.used_views.keys
81
+ tracker.track_key(identifier: file_path)
82
+ tracker.save_report
83
+ assert_equal [file_path], tracker.used_keys.keys
84
84
  end
85
85
 
86
86
  test "report unused partials" do
@@ -89,30 +89,30 @@ class ViewTrackerTest < Minitest::Test
89
89
  file_path = "#{File.expand_path(Coverband.configuration.root)}/file"
90
90
  target = [file_path, "not_used"]
91
91
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir", target: target)
92
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
93
- tracker.report_views_tracked
94
- assert_equal ["not_used"], tracker.unused_views
92
+ tracker.track_key(identifier: file_path)
93
+ tracker.save_report
94
+ assert_equal ["not_used"], tracker.unused_keys
95
95
  end
96
96
 
97
97
  test "reset store" do
98
98
  Coverband::Collectors::ViewTracker.expects(:supported_version?).returns(true)
99
99
  store = fake_store
100
100
  store.raw_store.expects(:del).with(tracker_key)
101
- store.raw_store.expects(:del).with("render_tracker_time")
101
+ store.raw_store.expects(:del).with("ViewTracker_tracker_time")
102
102
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
103
- tracker.track_views("name", "start", "finish", "id", identifier: "file")
103
+ tracker.track_key(identifier: "file")
104
104
  tracker.reset_recordings
105
105
  end
106
106
 
107
- test "clear_file" do
107
+ test "clear_key" do
108
108
  Coverband::Collectors::ViewTracker.expects(:supported_version?).returns(true)
109
109
  store = fake_store
110
110
  file_path = "#{File.expand_path(Coverband.configuration.root)}/file"
111
111
  store.raw_store.expects(:hdel).with(tracker_key, file_path)
112
112
  tracker = Coverband::Collectors::ViewTracker.new(store: store, roots: "dir")
113
- tracker.track_views("name", "start", "finish", "id", identifier: file_path)
114
- tracker.clear_file!("file")
115
- assert_equal [], tracker.logged_views
113
+ tracker.track_key(identifier: file_path)
114
+ tracker.clear_key!("file")
115
+ assert_equal [], tracker.logged_keys
116
116
  end
117
117
 
118
118
  protected