coverband 5.0.2 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3b98c9059d81fec16d880a8fad573126d84a01ca07a62ff5ffad37cae5291dbf
4
- data.tar.gz: '01649a623307249c03338564770702c3f912a62ee478818fdb65864aba98194f'
3
+ metadata.gz: bbff118005d968f8d2158135273f108cbb9b867c9c13d783b5fb8a2220dd5540
4
+ data.tar.gz: bc7ec947e707d4feaf213a0559f110ae5d11a487ea370f5e9f6a1256c2799701
5
5
  SHA512:
6
- metadata.gz: c9f5bf66e7dcb8c324f77f3fcbe7760f7b8a591c7060126f27917be485e35cd8b865d939a343db98f727fdaec93c9411eb02af30cf1e035bec0626ea16913973
7
- data.tar.gz: 50bdcda8675352e9a98880e35de84229e744ed2a323dd4328870f2084cde8f39befecde59aaf55810d1b71d8c9f4f224aa71de22b031e2a4bb8f44cfe9bf32a1
6
+ metadata.gz: af026a80339c3047c62c99c6ec47385288fc7a0fd1d295b646abffdd4b74ea48118f01b2caa2ef997d7dc8775ebc047ce9844189065148f82eaea10fb2bf2978
7
+ data.tar.gz: a4555a8209507c66efc7ba2432bb5b743cc45331fead66f038df9823a85e8a1bbf9401cd9b47a450cfd184ff399d429e193527df6745ec1770b0b0e08a863141
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2018 Dan Mayer
1
+ Copyright (c) 2010-2020 Dan Mayer
2
2
 
3
3
  MIT License
4
4
 
data/changes.md CHANGED
@@ -53,12 +53,17 @@ Will be the fully modern release that drops maintenance legacy support in favor
53
53
 
54
54
  # Alpha / Beta / Release Candidates
55
55
 
56
- ### Coverband 5.0.3
56
+ ### Coverband 5.0.4
57
57
 
58
58
  - ?
59
59
 
60
60
  # Released
61
61
 
62
+ ### Coverband 5.0.3
63
+
64
+ - fix for non standard root paths for view_tracker thx @markshawtoronto
65
+ - support basic auth for Rack prior to 2.0 thx @kadru
66
+
62
67
  ### Coverband 5.0.2
63
68
 
64
69
  - change default port of local server
@@ -63,18 +63,29 @@ module Coverband
63
63
  normalized_views = {}
64
64
  views.each_pair do |view, time|
65
65
  roots.each do |root|
66
- view = view.gsub(/#{root}/, "")
66
+ view = view.gsub(root, "")
67
67
  end
68
68
  normalized_views[view] = time
69
69
  end
70
70
  normalized_views
71
71
  end
72
72
 
73
+ def all_views
74
+ all_views = []
75
+ target.each do |view|
76
+ roots.each do |root|
77
+ view = view.gsub(root, "")
78
+ end
79
+ all_views << view
80
+ end
81
+ all_views.uniq
82
+ end
83
+
73
84
  def unused_views
74
85
  recently_used_views = used_views.keys
75
- all_views = target.reject { |view| recently_used_views.include?(view) }
86
+ unused_views = all_views.reject { |view| recently_used_views.include?(view) }
76
87
  # since layouts don't include format we count them used if they match with ANY formats
77
- all_views.reject { |view| view.match(/\/layouts\//) && recently_used_views.any? { |used_view| view.include?(used_view) } }
88
+ unused_views.reject { |view| view.match(/\/layouts\//) && recently_used_views.any? { |used_view| view.include?(used_view) } }
78
89
  end
79
90
 
80
91
  def as_json
@@ -23,7 +23,8 @@ module Coverband
23
23
  def check_auth
24
24
  return true unless Coverband.configuration.password
25
25
 
26
- auth_header = request.get_header("HTTP_AUTHORIZATION")
26
+ # support rack 1.6.x and rack 2.0 (get_header)
27
+ auth_header = request.respond_to?(:get_header) ? request.get_header("HTTP_AUTHORIZATION") : request.env["HTTP_AUTHORIZATION"]
27
28
  return unless auth_header
28
29
 
29
30
  Coverband.configuration.password == Base64.decode64(auth_header.split[1]).split(":")[1]
@@ -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.0.2"
8
+ VERSION = "5.0.3"
9
9
  end
@@ -43,4 +43,38 @@ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.2.0")
43
43
  end
44
44
  end
45
45
  end
46
+
47
+ module Coverband
48
+ class AuthWebTest < Minitest::Test
49
+ include Rack::Test::Methods
50
+
51
+ def setup
52
+ super
53
+ @store = Coverband.configuration.store
54
+ Coverband.configure do |config|
55
+ config.password = "test_pass"
56
+ end
57
+ end
58
+
59
+ def app
60
+ Coverband::Reporters::Web.new
61
+ end
62
+
63
+ def teardown
64
+ super
65
+ end
66
+
67
+ test "renders index with basic auth" do
68
+ basic_authorize "anything", "test_pass"
69
+ get "/"
70
+ assert last_response.ok?
71
+ assert_match "Coverband Home", last_response.body
72
+ end
73
+
74
+ test "renders 401 auth error when not provided" do
75
+ get "/"
76
+ assert_equal 401, last_response.status
77
+ end
78
+ end
79
+ end
46
80
  end
@@ -25,6 +25,7 @@ class RailsFullStackTest < Minitest::Test
25
25
  Coverband.configuration.view_tracker&.report_views_tracked
26
26
  visit "/coverage/view_tracker"
27
27
  assert_content("Used Views: (1)")
28
+ assert_content("Unused Views: (2)")
28
29
  assert_selector("li.used-views", text: "dummy_view/show.html.erb")
29
30
  assert_selector("li.unused-views", text: "dummy_view/show_haml.html.haml")
30
31
  assert_selector("li.unused-views", text: "dummy_view/show_slim.html.slim")
@@ -35,6 +36,7 @@ class RailsFullStackTest < Minitest::Test
35
36
  Coverband.configuration.view_tracker&.report_views_tracked
36
37
  visit "/coverage/view_tracker"
37
38
  assert_content("Used Views: (2)")
39
+ assert_content("Unused Views: (1)")
38
40
  assert_selector("li.used-views", text: "dummy_view/show_haml.html.haml")
39
41
 
40
42
  visit "/dummy_view/show_slim"
@@ -43,6 +45,7 @@ class RailsFullStackTest < Minitest::Test
43
45
  Coverband.configuration.view_tracker&.report_views_tracked
44
46
  visit "/coverage/view_tracker"
45
47
  assert_content("Used Views: (3)")
48
+ assert_content("Unused Views: (0)")
46
49
  assert_selector("li.used-views", text: "dummy_view/show_slim.html.slim")
47
50
  end
48
51
  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.0.2
4
+ version: 5.0.3
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: 2020-09-30 00:00:00.000000000 Z
12
+ date: 2020-10-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: benchmark-ips