danger-code_coverage 1.0.0 → 1.0.1

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: 87f7da211148028a249f9cc7c7148dbb062afff5f9051ab10a61f41f9ff099fb
4
- data.tar.gz: 56e1a510efb6328c2503bfe5b2d8d692e47d7e41215ea7e8db94b5f0afb7a537
3
+ metadata.gz: 30f8c1cbdf5d0b6864186f29788385e7b745c6b4f4fb94e9ab80ddd5c3b4a52c
4
+ data.tar.gz: 6fbc3bb126d30d66d8464e14d3476392506b442aa75feff0e27d3b3cae58020b
5
5
  SHA512:
6
- metadata.gz: 0be58244b5414e839169c53a33e08d2578baf4b6dc576584d9bd6a5e43fa7d186171b5d6588816b9c9150dda50e187c5916096330e719a6571b4a0ae50af78a1
7
- data.tar.gz: 3bd3619c9e8c63258e40d955d05666d969c3bfb48e37816f29a37914957a8829fa39801d8512be2f769354b198618eccb247b1f15e2853947540fbcd40cfddcf
6
+ metadata.gz: '01839299c25eb0b3c6ed3d07a27ff11a5988c72ab6ed0deddf7f44037ac478d91e2b6371bbb21ce681779ccafccefdd808882bd308f8162f32ad98021cf5cda0'
7
+ data.tar.gz: ad06067bcf5b764d6dff81854e087ec4a03d2391f771eaa56cc82fab78ddff23b9e8ae10df332be086e7beffd09891f4d28a218e34982b1d9c2bb3436fbcc58f
data/.rubocop.yml CHANGED
@@ -1624,7 +1624,7 @@ Lint/UnifiedInteger:
1624
1624
  Enabled: true
1625
1625
  VersionAdded: '0.43'
1626
1626
 
1627
- Lint/UnneededCopDisableDirective:
1627
+ Lint/RedundantCopDisableDirective:
1628
1628
  Description: >-
1629
1629
  Checks for rubocop:disable comments that can be removed.
1630
1630
  Note: this cop is not disabled when disabling all cops.
@@ -1632,20 +1632,19 @@ Lint/UnneededCopDisableDirective:
1632
1632
  Enabled: true
1633
1633
  VersionAdded: '0.53'
1634
1634
 
1635
- Lint/UnneededCopEnableDirective:
1635
+ Lint/RedundantCopEnableDirective:
1636
1636
  Description: Checks for rubocop:enable comments that can be removed.
1637
1637
  Enabled: true
1638
1638
  VersionAdded: '0.53'
1639
1639
 
1640
- Lint/UnneededRequireStatement:
1640
+ Lint/RedundantRequireStatement:
1641
1641
  Description: 'Checks for unnecessary `require` statement.'
1642
1642
  Enabled: true
1643
1643
  VersionAdded: '0.51'
1644
1644
 
1645
- Lint/UnneededSplatExpansion:
1645
+ Lint/RedundantSplatExpansion:
1646
1646
  Description: 'Checks for splat unnecessarily being called on literals.'
1647
1647
  Enabled: true
1648
- VersionAdded: '0.43'
1649
1648
 
1650
1649
  Lint/UnreachableCode:
1651
1650
  Description: 'Unreachable code.'
@@ -3763,29 +3762,28 @@ Style/UnlessElse:
3763
3762
  Enabled: true
3764
3763
  VersionAdded: '0.9'
3765
3764
 
3766
- Style/UnneededCapitalW:
3765
+ Style/RedundantCapitalW:
3767
3766
  Description: 'Checks for %W when interpolation is not needed.'
3768
3767
  Enabled: true
3769
3768
  VersionAdded: '0.21'
3770
- VersionChanged: '0.24'
3771
3769
 
3772
- Style/UnneededCondition:
3770
+ Style/RedundantCondition:
3773
3771
  Description: 'Checks for unnecessary conditional expressions.'
3774
3772
  Enabled: true
3775
3773
  VersionAdded: '0.57'
3776
3774
 
3777
- Style/UnneededInterpolation:
3775
+ Style/RedundantInterpolation:
3778
3776
  Description: 'Checks for strings that are just an interpolated expression.'
3779
3777
  Enabled: true
3780
3778
  VersionAdded: '0.36'
3781
3779
 
3782
- Style/UnneededPercentQ:
3780
+ Style/RedundantPercentQ:
3783
3781
  Description: 'Checks for %q/%Q when single quotes or double quotes would do.'
3784
3782
  StyleGuide: '#percent-q'
3785
3783
  Enabled: true
3786
3784
  VersionAdded: '0.24'
3787
3785
 
3788
- Style/UnneededSort:
3786
+ Style/RedundantSort:
3789
3787
  Description: >-
3790
3788
  Use `min` instead of `sort.first`,
3791
3789
  `max_by` instead of `sort_by...last`, etc.
data/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.0.1] - 2019-11-07
8
+ ### Fixed
9
+ - Fix crash if an item has no data
10
+
7
11
  ## [1.0.0] - 2019-6-26
8
12
  ### Fixed
9
13
  - Catch all errors while parsing url content
@@ -64,7 +64,7 @@ module CodeCoverage
64
64
  end
65
65
 
66
66
  def find_element_ratio(elements, name)
67
- element = elements.select { |it| it['name'] == name }.first
67
+ element = elements.find { |it| it['name'] == name }
68
68
  element['ratio'].round(2) if element
69
69
  end
70
70
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CodeCoverage
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
@@ -51,8 +51,9 @@ module Danger
51
51
  options = args.first
52
52
  sort_order = options && options[:sort]
53
53
  if sort_order && !sort_order.eql?(:ascending) && !sort_order.eql?(:descending)
54
- raise(ArgumentError, 'Invalid configuration, use [:ascending, :descending]')
54
+ raise(ArgumentError.new('Invalid configuration, use [:ascending, :descending]'))
55
55
  end
56
+
56
57
  check_auth(options)
57
58
 
58
59
  items = coverage_items
@@ -121,7 +122,11 @@ module Danger
121
122
  sum += convert_entry(item.instruction)
122
123
  end
123
124
 
124
- (sum / count).round(2)
125
+ if count.zero?
126
+ 0.0
127
+ else
128
+ (sum / count).round(2)
129
+ end
125
130
  end
126
131
 
127
132
  def auth_user(options)
@@ -158,7 +163,7 @@ module Danger
158
163
  end
159
164
 
160
165
  def coverage_json
161
- options = {ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE}
166
+ options = { ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE }
162
167
  options[:http_basic_authentication] = [@auth[:user], @auth[:token]] if @auth
163
168
  OpenURI.open_uri("#{ENV['BUILD_URL']}/coverage/result/api/json?depth=5", options).read
164
169
  end
@@ -0,0 +1,226 @@
1
+ {
2
+ "_class": "io.jenkins.plugins.coverage.targets.CoverageResult",
3
+ "results": {
4
+ "children": [
5
+ {
6
+ "children": [
7
+ {
8
+ "children": [
9
+ {
10
+ "children": [
11
+ {
12
+ "children": [
13
+ {},
14
+ {}
15
+ ],
16
+ "elements": [
17
+ {
18
+ "denominator": 2.0,
19
+ "name": "Class",
20
+ "numerator": 0.0,
21
+ "ratio": 0.0
22
+ }
23
+ ],
24
+ "name": "MainActivity.java"
25
+ }
26
+ ],
27
+ "elements": [
28
+ {
29
+ "denominator": 3.0,
30
+ "name": "File",
31
+ "numerator": 1.0,
32
+ "ratio": 33.333332
33
+ },
34
+ {
35
+ "denominator": 4.0,
36
+ "name": "Class",
37
+ "numerator": 1.0,
38
+ "ratio": 25.0
39
+ },
40
+ {
41
+ "denominator": 15.0,
42
+ "name": "Method",
43
+ "numerator": 1.0,
44
+ "ratio": 6.6666665
45
+ },
46
+ {
47
+ "denominator": 110.0,
48
+ "name": "Instruction",
49
+ "numerator": 6.0,
50
+ "ratio": 5.4545455
51
+ },
52
+ {
53
+ "denominator": 34.0,
54
+ "name": "Line",
55
+ "numerator": 1.0,
56
+ "ratio": 2.9411764
57
+ },
58
+ {
59
+ "denominator": 6.0,
60
+ "name": "Conditional",
61
+ "numerator": 2.0,
62
+ "ratio": 33.333332
63
+ }
64
+ ],
65
+ "name": "com/example/kyaak/myapplication"
66
+ }
67
+ ],
68
+ "elements": [
69
+ {
70
+ "denominator": 5.0,
71
+ "name": "Package",
72
+ "numerator": 3.0,
73
+ "ratio": 60.0
74
+ },
75
+ {
76
+ "denominator": 18.0,
77
+ "name": "File",
78
+ "numerator": 3.0,
79
+ "ratio": 16.666666
80
+ },
81
+ {
82
+ "denominator": 21.0,
83
+ "name": "Class",
84
+ "numerator": 3.0,
85
+ "ratio": 14.285714
86
+ },
87
+ {
88
+ "denominator": 193.0,
89
+ "name": "Method",
90
+ "numerator": 6.0,
91
+ "ratio": 3.1088083
92
+ },
93
+ {
94
+ "denominator": 2169.0,
95
+ "name": "Instruction",
96
+ "numerator": 52.0,
97
+ "ratio": 2.3974183
98
+ },
99
+ {
100
+ "denominator": 296.0,
101
+ "name": "Line",
102
+ "numerator": 9.0,
103
+ "ratio": 3.0405405
104
+ },
105
+ {
106
+ "denominator": 178.0,
107
+ "name": "Conditional",
108
+ "numerator": 3.0,
109
+ "ratio": 1.6853932
110
+ }
111
+ ],
112
+ "name": "project"
113
+ }
114
+ ],
115
+ "elements": [
116
+ {
117
+ "denominator": 1.0,
118
+ "name": "Group",
119
+ "numerator": 1.0,
120
+ "ratio": 100.0
121
+ },
122
+ {
123
+ "denominator": 5.0,
124
+ "name": "Package",
125
+ "numerator": 3.0,
126
+ "ratio": 60.0
127
+ },
128
+ {
129
+ "denominator": 18.0,
130
+ "name": "File",
131
+ "numerator": 3.0,
132
+ "ratio": 16.666666
133
+ },
134
+ {
135
+ "denominator": 21.0,
136
+ "name": "Class",
137
+ "numerator": 3.0,
138
+ "ratio": 14.285714
139
+ },
140
+ {
141
+ "denominator": 193.0,
142
+ "name": "Method",
143
+ "numerator": 6.0,
144
+ "ratio": 3.1088083
145
+ },
146
+ {
147
+ "denominator": 2169.0,
148
+ "name": "Instruction",
149
+ "numerator": 52.0,
150
+ "ratio": 2.3974183
151
+ },
152
+ {
153
+ "denominator": 296.0,
154
+ "name": "Line",
155
+ "numerator": 9.0,
156
+ "ratio": 3.0405405
157
+ },
158
+ {
159
+ "denominator": 178.0,
160
+ "name": "Conditional",
161
+ "numerator": 3.0,
162
+ "ratio": 1.6853932
163
+ }
164
+ ],
165
+ "name": "code_quality: jacoco.xml"
166
+ }
167
+ ],
168
+ "elements": [
169
+ {
170
+ "denominator": 1.0,
171
+ "name": "Report",
172
+ "numerator": 1.0,
173
+ "ratio": 100.0
174
+ },
175
+ {
176
+ "denominator": 1.0,
177
+ "name": "Group",
178
+ "numerator": 1.0,
179
+ "ratio": 100.0
180
+ },
181
+ {
182
+ "denominator": 5.0,
183
+ "name": "Package",
184
+ "numerator": 3.0,
185
+ "ratio": 60.0
186
+ },
187
+ {
188
+ "denominator": 18.0,
189
+ "name": "File",
190
+ "numerator": 3.0,
191
+ "ratio": 16.666666
192
+ },
193
+ {
194
+ "denominator": 21.0,
195
+ "name": "Class",
196
+ "numerator": 3.0,
197
+ "ratio": 14.285714
198
+ },
199
+ {
200
+ "denominator": 193.0,
201
+ "name": "Method",
202
+ "numerator": 6.0,
203
+ "ratio": 3.1088083
204
+ },
205
+ {
206
+ "denominator": 2169.0,
207
+ "name": "Instruction",
208
+ "numerator": 52.0,
209
+ "ratio": 2.3974183
210
+ },
211
+ {
212
+ "denominator": 296.0,
213
+ "name": "Line",
214
+ "numerator": 9.0,
215
+ "ratio": 3.0405405
216
+ },
217
+ {
218
+ "denominator": 178.0,
219
+ "name": "Conditional",
220
+ "numerator": 3.0,
221
+ "ratio": 1.6853932
222
+ }
223
+ ],
224
+ "name": "All reports"
225
+ }
226
+ }
@@ -88,6 +88,22 @@ module Danger
88
88
  expect(entries[2]).to(eq('50.94'))
89
89
  end
90
90
 
91
+ it 'total returns 0 if no coverage data' do
92
+ mock_coverage_json('/assets/coverage_jacoco_no_data.json')
93
+ mock_file_in_changeset(true)
94
+
95
+ @plugin.report
96
+ markdowns = @dangerfile.status_report[:markdowns]
97
+ expect(markdowns.length).to(be(1))
98
+ lines = markdowns.first.message.split("\n")
99
+ entries = lines[4].split('|')
100
+ expect(entries[2]).to(eq('0.0'))
101
+ expect(entries[3]).to(eq('-'))
102
+ expect(entries[4]).to(eq('-'))
103
+ expect(entries[5]).to(eq('-'))
104
+ expect(entries[6]).to(eq('-'))
105
+ end
106
+
91
107
  it 'ignores empty column in total' do
92
108
  mock_coverage_json('/assets/coverage_jacoco_no_conditional.json')
93
109
  mock_file_in_changeset(true)
@@ -157,11 +173,11 @@ module Danger
157
173
 
158
174
  it 'throws error if sort config invalid' do
159
175
  mock_coverage_json('/assets/coverage_jacoco_single.json')
160
- expect {
176
+ expect do
161
177
  @plugin.report(
162
178
  sort: :invalid
163
179
  )
164
- }.to(raise_error(%r{:ascending, :descending}))
180
+ end.to(raise_error(%r{:ascending, :descending}))
165
181
  end
166
182
 
167
183
  it 'finds changed file in subdirectory' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-code_coverage
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyaak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-26 00:00:00.000000000 Z
11
+ date: 2019-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-plugin-api
@@ -194,6 +194,7 @@ files:
194
194
  - spec/assets/coverage_jacoco.json
195
195
  - spec/assets/coverage_jacoco_multiple_unordered.json
196
196
  - spec/assets/coverage_jacoco_no_conditional.json
197
+ - spec/assets/coverage_jacoco_no_data.json
197
198
  - spec/assets/coverage_jacoco_single.json
198
199
  - spec/assets/coverage_no_files.json
199
200
  - spec/assets/missing_json.html
@@ -219,7 +220,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
220
  - !ruby/object:Gem::Version
220
221
  version: '0'
221
222
  requirements: []
222
- rubygems_version: 3.0.4
223
+ rubyforge_project:
224
+ rubygems_version: 2.7.7
223
225
  signing_key:
224
226
  specification_version: 4
225
227
  summary: Read Jenkins code-coverage reports and comment pull request with coverage
@@ -231,6 +233,7 @@ test_files:
231
233
  - spec/assets/coverage_jacoco.json
232
234
  - spec/assets/coverage_jacoco_multiple_unordered.json
233
235
  - spec/assets/coverage_jacoco_no_conditional.json
236
+ - spec/assets/coverage_jacoco_no_data.json
234
237
  - spec/assets/coverage_jacoco_single.json
235
238
  - spec/assets/coverage_no_files.json
236
239
  - spec/assets/missing_json.html