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 +4 -4
- data/.github/workflows/main.yml +1 -0
- data/Gemfile.rails6.0 +10 -0
- data/Gemfile.rails6.1 +10 -0
- data/Gemfile.rails7.0 +10 -0
- data/Gemfile.rails7.1 +10 -0
- data/README.md +1 -1
- data/changes.md +8 -0
- data/coverband.gemspec +4 -2
- data/lib/coverband/adapters/web_service_store.rb +2 -2
- data/lib/coverband/collectors/route_tracker.rb +5 -0
- data/lib/coverband/collectors/view_tracker_service.rb +1 -1
- data/lib/coverband/reporters/web.rb +3 -3
- data/lib/coverband/utils/rails6_ext.rb +3 -3
- data/lib/coverband/utils/tasks.rb +9 -0
- data/lib/coverband/version.rb +1 -1
- data/test/coverband/integrations/background_middleware_test.rb +1 -1
- data/test/coverband/integrations/report_middleware_test.rb +1 -1
- data/test/fake_app/basic_rack.rb +1 -1
- metadata +10 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 528837dcf37ad2876aa8db7d37b1811a8a2398e509cfa9b6e906ab9dc21bcbde
|
4
|
+
data.tar.gz: 5071316674a98cdf47e517d2ee91f179d75d951845ca69ab523c15299a113e36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ddb35805b62bcbb271f0ed7378e98292598650d6c5a12f6bfbe4af1a9bf80cade68b068568e4fc67e08e039c0d9af7ed8bc81656ee6aa9f7e3c56f4aa6840cb
|
7
|
+
data.tar.gz: 754f0b51a5f0c37be952dd309597039a7ac68ac697f3c8a4d134647bf12ee93afde165093c95106e15f2372c439f329e845b17216e654f2b1048cb34f454345d
|
data/.github/workflows/main.yml
CHANGED
@@ -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
data/Gemfile.rails6.1
ADDED
data/Gemfile.rails7.0
ADDED
data/Gemfile.rails7.1
ADDED
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.
|
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
|
-
|
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
|
-
|
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, "
|
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, "
|
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, "
|
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, {"
|
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
|
-
"
|
206
|
+
"content-type" => content_type
|
207
207
|
}
|
208
|
-
web_headers["
|
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
|
-
"
|
50
|
-
"
|
51
|
-
"
|
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
|
###
|
data/lib/coverband/version.rb
CHANGED
data/test/fake_app/basic_rack.rb
CHANGED
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:
|
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-
|
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:
|
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:
|
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
|