coverband 5.2.6.rc.6 → 6.0.1.rc.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '038d579fb6a17cf39e836bdf1918f3535de5a774337a782c20b8b4f15021bace'
4
- data.tar.gz: b1c8a6310809f17bcead1dceef71679bc768a392cd0682daf7c668343a898f86
3
+ metadata.gz: 528837dcf37ad2876aa8db7d37b1811a8a2398e509cfa9b6e906ab9dc21bcbde
4
+ data.tar.gz: 5071316674a98cdf47e517d2ee91f179d75d951845ca69ab523c15299a113e36
5
5
  SHA512:
6
- metadata.gz: 7d8ed302f5e3715fc3f4649364743223dcc8a2e7f07112603800cf03302ed64a8f63e3c993993baaeccd99290667b5ec48b0714cf1b564c8cf24db8c60ad1e47
7
- data.tar.gz: 2ba722322a9219b3a4ab369ee0f337152151b0301e42f444ac4d9f9866cf1399687ceb2549ae9bb33781661d63b692e07d9b10b7a3c4287638f2ffaed844621c
6
+ metadata.gz: 2ddb35805b62bcbb271f0ed7378e98292598650d6c5a12f6bfbe4af1a9bf80cade68b068568e4fc67e08e039c0d9af7ed8bc81656ee6aa9f7e3c56f4aa6840cb
7
+ data.tar.gz: 754f0b51a5f0c37be952dd309597039a7ac68ac697f3c8a4d134647bf12ee93afde165093c95106e15f2372c439f329e845b17216e654f2b1048cb34f454345d
@@ -19,6 +19,7 @@ jobs:
19
19
  # truffleruby,
20
20
  # truffleruby-head,
21
21
  # removing jruby again to flaky
22
+ gemfile: [ Gemfile.rails6.0, Gemfile.rails6.1, Gemfile.rails7.0, Gemfile.rails7.1 ]
22
23
  # ruby: [2.3, 2.4, 2.5, 2.6, 2.7, "3.0", "3.1", jruby]
23
24
  # need to add support for multiple gemfiles
24
25
  ruby: ["2.7", "3.0", "3.1", "3.2"]
data/Gemfile.rails6.0 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem "rails", "~>6.0.0"
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails6.1 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem "rails", "~>6.1.0"
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails7.0 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem 'rails', '~>7.0.0'
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/Gemfile.rails7.1 ADDED
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in coverband.gemspec
6
+ gemspec
7
+ gem 'rails', '~>7.1.0'
8
+ gem "haml"
9
+ gem "slim"
10
+ gem "webrick"
data/README.md CHANGED
@@ -407,7 +407,7 @@ If you submit a change please make sure the tests and benchmarks are passing.
407
407
 
408
408
  - run tests:
409
409
  - `bundle exec rake`
410
- - `BUNDLE_GEMFILE=Gemfile.rails6 bundle exec rake` (Same tests using rails 6 instead of 5)
410
+ - `BUNDLE_GEMFILE=Gemfile.rails7 bundle exec rake` (Same tests using rails 7 instead of 6)
411
411
  - view test coverage: `open coverage/index.html`
412
412
  - run the benchmarks before and after your change to see impact
413
413
  - `rake benchmarks`
data/changes.md CHANGED
@@ -1,3 +1,11 @@
1
+ ### Coverband 6.0.0
2
+
3
+ __NOTE: I ended up having 5.2.6 in various RCs for a long time, mostly because I had some breaking changes that were related to dropping support for old versions of Ruby and Rails__
4
+
5
+ * The 6.0.0 release is all that was the 6 different RC releases of 5.2.6
6
+ * Added Rails test matrix to github actions to test on all the supported versions
7
+ - Rails: 6.0.x, 6.1.x, 7.0.x, 7.1.x
8
+
1
9
  ### Coverband 5.2.6
2
10
 
3
11
  __NOTE: the current RCs include below, but this might turn into coverband 6.0__
data/coverband.gemspec CHANGED
@@ -35,7 +35,8 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "capybara"
36
36
  spec.add_development_dependency "m"
37
37
  spec.add_development_dependency "memory_profiler"
38
- spec.add_development_dependency "minitest"
38
+ # breaking change in minitest and mocha
39
+ spec.add_development_dependency "minitest", "= 5.18.1"
39
40
  spec.add_development_dependency "minitest-fork_executor"
40
41
  spec.add_development_dependency "minitest-stub-const"
41
42
  spec.add_development_dependency "mocha", "~> 1.7.0"
@@ -47,7 +48,8 @@ Gem::Specification.new do |spec|
47
48
  spec.add_development_dependency "standardrb"
48
49
 
49
50
  spec.add_development_dependency "coveralls"
50
- spec.add_development_dependency "minitest-profile"
51
+ # minitest-profile is not compatible with Rails 7.1.0 setup... dropping it for now
52
+ # spec.add_development_dependency "minitest-profile"
51
53
  spec.add_development_dependency "webmock"
52
54
 
53
55
  # TODO: Remove when other production adapters exist
@@ -51,7 +51,7 @@ module Coverband
51
51
  local_type ||= opts.key?(:override_type) ? opts[:override_type] : type
52
52
  env_filter = opts.key?(:env_filter) ? opts[:env_filter] : "production"
53
53
  uri = URI("#{coverband_url}/api/coverage?type=#{local_type}&env_filter=#{env_filter}")
54
- req = Net::HTTP::Get.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
54
+ req = Net::HTTP::Get.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
55
55
  res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
56
56
  http.request(req)
57
57
  end
@@ -133,7 +133,7 @@ module Coverband
133
133
 
134
134
  def send_report_body(coverage_body)
135
135
  uri = URI("#{coverband_url}/api/collector")
136
- req = ::Net::HTTP::Post.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
136
+ req = ::Net::HTTP::Post.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
137
137
  req.body = coverage_body
138
138
  logger&.info "Coverband: saving (#{uri}) #{req.body}" if Coverband.configuration.verbose
139
139
  res = ::Net::HTTP.start(
@@ -76,6 +76,11 @@ module Coverband
76
76
 
77
77
  def concrete_target
78
78
  if defined?(Rails.application)
79
+ if Rails.application.respond_to?(:reload_routes!) && Rails.application.routes.empty?
80
+ # NOTE: depending on eager loading etc, routes may not be loaded
81
+ # so load them if they aren't
82
+ Rails.application.reload_routes!
83
+ end
79
84
  Rails.application.routes.routes.map do |route|
80
85
  {
81
86
  controller: route.defaults[:controller],
@@ -35,7 +35,7 @@ module Coverband
35
35
 
36
36
  def save_tracked_views(views:, reported_time:)
37
37
  uri = URI("#{Coverband.configuration.service_url}/api/collector")
38
- req = Net::HTTP::Post.new(uri, "Content-Type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
38
+ req = Net::HTTP::Post.new(uri, "content-type" => "application/json", "Coverband-Token" => Coverband.configuration.api_key)
39
39
  data = {
40
40
  collection_type: "view_tracker_delta",
41
41
  collection_data: {
@@ -66,7 +66,7 @@ module Coverband
66
66
  elsif request_path_info =~ %r{\/clear_.*}
67
67
  return clear_abstract_tracking(tracker)
68
68
  else
69
- return [200, {"Content-Type" => "text/html"}, [display_abstract_tracker(tracker)]]
69
+ return [200, {"content-type" => "text/html"}, [display_abstract_tracker(tracker)]]
70
70
  end
71
71
  end
72
72
  end
@@ -203,9 +203,9 @@ module Coverband
203
203
 
204
204
  def coverband_headers(content_type: "text/html")
205
205
  web_headers = {
206
- "Content-Type" => content_type
206
+ "content-type" => content_type
207
207
  }
208
- web_headers["Content-Security-Policy-Report-Only"] = CSP_HEADER if Coverband.configuration.csp_policy
208
+ web_headers["content-security-policy-report-only"] = CSP_HEADER if Coverband.configuration.csp_policy
209
209
  web_headers
210
210
  end
211
211
 
@@ -46,9 +46,9 @@ module ActionDispatch
46
46
  body = ""
47
47
 
48
48
  headers = {
49
- "Location" => uri.to_s,
50
- "Content-Type" => "text/html",
51
- "Content-Length" => body.length.to_s
49
+ "location" => uri.to_s,
50
+ "content-type" => "text/html",
51
+ "content-length" => body.length.to_s
52
52
  }
53
53
 
54
54
  ActionDispatch::Response.new(status, headers, body)
@@ -46,6 +46,15 @@ namespace :coverband do
46
46
  Coverband.configuration.store.clear!
47
47
  end
48
48
 
49
+ ###
50
+ # clear all coverband trackers data
51
+ ###
52
+ desc "reset Coverband trackers data (view, routes, translations, etc), helpful for development, debugging, etc"
53
+ task :clear_tracker do
54
+ trackers = Coverband.configuration.trackers
55
+ trackers.each(&:reset_recordings)
56
+ end
57
+
49
58
  ###
50
59
  # Updates the data in the coverband store from one format to another
51
60
  ###
@@ -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.6.rc.6"
8
+ VERSION = "6.0.1.rc.1"
9
9
  end
@@ -38,7 +38,7 @@ class BackgroundMiddlewareTest < Minitest::Test
38
38
 
39
39
  def fake_app
40
40
  @fake_app ||= lambda do |env|
41
- [200, {"Content-Type" => "text/plain"}, env["PATH_INFO"]]
41
+ [200, {"content-type" => "text/plain"}, env["PATH_INFO"]]
42
42
  end
43
43
  end
44
44
  end
@@ -34,7 +34,7 @@ class ReportMiddlewareTest < Minitest::Test
34
34
 
35
35
  def fake_app
36
36
  @fake_app ||= lambda do |env|
37
- [200, {"Content-Type" => "text/plain"}, env["PATH_INFO"]]
37
+ [200, {"content-type" => "text/plain"}, env["PATH_INFO"]]
38
38
  end
39
39
  end
40
40
 
@@ -4,6 +4,6 @@ require "rack"
4
4
 
5
5
  class HelloWorld
6
6
  def call(_env)
7
- [200, {"Content-Type" => "text/html"}, "Hello Rack!"]
7
+ [200, {"content-type" => "text/html"}, "Hello Rack!"]
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coverband
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.6.rc.6
4
+ version: 6.0.1.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Mayer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-07 00:00:00.000000000 Z
12
+ date: 2023-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: benchmark-ips
@@ -71,16 +71,16 @@ dependencies:
71
71
  name: minitest
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - '='
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 5.18.1
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - '='
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: 5.18.1
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: minitest-fork_executor
86
86
  requirement: !ruby/object:Gem::Requirement
@@ -221,20 +221,6 @@ dependencies:
221
221
  - - ">="
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
- - !ruby/object:Gem::Dependency
225
- name: minitest-profile
226
- requirement: !ruby/object:Gem::Requirement
227
- requirements:
228
- - - ">="
229
- - !ruby/object:Gem::Version
230
- version: '0'
231
- type: :development
232
- prerelease: false
233
- version_requirements: !ruby/object:Gem::Requirement
234
- requirements:
235
- - - ">="
236
- - !ruby/object:Gem::Version
237
- version: '0'
238
224
  - !ruby/object:Gem::Dependency
239
225
  name: webmock
240
226
  requirement: !ruby/object:Gem::Requirement
@@ -280,7 +266,11 @@ files:
280
266
  - CODE_OF_CONDUCT.md
281
267
  - CONTRIBUTING.md
282
268
  - Gemfile
269
+ - Gemfile.rails6.0
270
+ - Gemfile.rails6.1
283
271
  - Gemfile.rails7
272
+ - Gemfile.rails7.0
273
+ - Gemfile.rails7.1
284
274
  - LICENSE
285
275
  - LICENSE.txt
286
276
  - README.md