danger-undercover 1.0.0 → 1.1.0
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 +4 -4
- data/Gemfile.lock +5 -3
- data/README.md +10 -4
- data/bin/undercover-report +10 -0
- data/lib/undercover/cli.rb +51 -0
- data/lib/undercover/gem_version.rb +1 -1
- data/lib/undercover/plugin.rb +6 -5
- data/spec/cli_spec.rb +48 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5ba1eda2ac42f3e902619f81a4c6eda0371c5add9c8f6e4a63dbe69e54ec3d6
|
4
|
+
data.tar.gz: 3336e15c47eb09127809cabc2ea4b6ee7a0e646bf1f2be7ad7f631a4052cdecb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf71b015300f51aa2d57172a03032a4534ce9fad0e83f97e840e4c951c2d4e042253fcc4581fcc725e4fc2343eb3d357aef557904d8235204e232a1dfda77fed
|
7
|
+
data.tar.gz: a4323eb9d539a83fe0041ad528023d7f175d075f4f4091126fb5676c466096dacb614f43302d6c122b99a56cb919fc834a98d6c845788b08a9caf0c63ac4741b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
danger-undercover (1.
|
4
|
+
danger-undercover (1.1.0)
|
5
5
|
danger-plugin-api (~> 1.0)
|
6
6
|
|
7
7
|
GEM
|
@@ -19,7 +19,7 @@ GEM
|
|
19
19
|
colored2 (3.1.2)
|
20
20
|
cork (0.3.0)
|
21
21
|
colored2 (~> 3.1)
|
22
|
-
danger (8.0
|
22
|
+
danger (8.1.0)
|
23
23
|
claide (~> 1.0)
|
24
24
|
claide-plugins (>= 0.9.2)
|
25
25
|
colored2 (~> 3.1)
|
@@ -35,8 +35,9 @@ GEM
|
|
35
35
|
danger-plugin-api (1.0.0)
|
36
36
|
danger (> 2.0)
|
37
37
|
diff-lcs (1.4.4)
|
38
|
-
faraday (1.0
|
38
|
+
faraday (1.1.0)
|
39
39
|
multipart-post (>= 1.2, < 3)
|
40
|
+
ruby2_keywords
|
40
41
|
faraday-http-cache (2.2.0)
|
41
42
|
faraday (>= 0.8)
|
42
43
|
ffi (1.13.1)
|
@@ -117,6 +118,7 @@ GEM
|
|
117
118
|
rubocop-ast (0.7.1)
|
118
119
|
parser (>= 2.7.1.5)
|
119
120
|
ruby-progressbar (1.10.1)
|
121
|
+
ruby2_keywords (0.0.2)
|
120
122
|
sawyer (0.8.2)
|
121
123
|
addressable (>= 2.3.5)
|
122
124
|
faraday (> 0.8, < 2.0)
|
data/README.md
CHANGED
@@ -15,10 +15,16 @@ To know more about running undercover [visit here](https://github.com/grodowski/
|
|
15
15
|
> Use the `-c --compare ref` flag to specify a git ref (commit hash, branch name, tag) to compare against.
|
16
16
|
**This is a recommended usage for CI/CD build environments**, as `undercover` will `exit 1` if there are any warnings.
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
This plugin provides a command `undercover-report` that uses `undercover` command from
|
19
|
+
[Undercover](https://github.com/grodowski/undercover) gem. It takes all the options that `undercover` command takes.
|
20
20
|
|
21
|
-
|
21
|
+
They both works in the same way but what `undercover-report` extra does is it prints `undercover` report to a default
|
22
|
+
file in `coverage/undercover.txt`. This makes using `undercover` in CI server much easier.
|
23
|
+
|
24
|
+
To use it on a CI server, run the below command before running `Danger` so that the report file is created beforehand
|
25
|
+
which `Danger` will use..
|
26
|
+
|
27
|
+
$ undercover-report -c $compare_git_ref
|
22
28
|
|
23
29
|
>Here $compare_git_ref as per undercover documentation, can be a commit hash, branch name, or tag. i.e. origin/master
|
24
30
|
, origin/development
|
@@ -27,7 +33,7 @@ To use it on a CI server, run this command before running `Danger` so that the f
|
|
27
33
|
Then in your `Dangerfile` add the following line with the output file
|
28
34
|
|
29
35
|
```ruby
|
30
|
-
undercover.report
|
36
|
+
undercover.report
|
31
37
|
```
|
32
38
|
|
33
39
|
## Development
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module DangerUndercover
|
6
|
+
# module for undercover-report
|
7
|
+
module CLI
|
8
|
+
class << self
|
9
|
+
# Runs the undercover command with provided arguments
|
10
|
+
# and writes the output to a file
|
11
|
+
# @return [String]
|
12
|
+
#
|
13
|
+
def run(args = nil)
|
14
|
+
undercover_output = `undercover #{args&.join(' ')}`
|
15
|
+
|
16
|
+
File.open(output_file, 'w') do |f|
|
17
|
+
f.write(undercover_output)
|
18
|
+
end
|
19
|
+
|
20
|
+
undercover_output
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
# Returns the file to write report to
|
26
|
+
# @return [String]
|
27
|
+
#
|
28
|
+
def output_file
|
29
|
+
create_directory!
|
30
|
+
|
31
|
+
File.join(output_directory, 'undercover.txt')
|
32
|
+
end
|
33
|
+
|
34
|
+
# Creates directory if doesn't exists
|
35
|
+
# @return [String]
|
36
|
+
#
|
37
|
+
def create_directory!
|
38
|
+
return if Dir.exist?(output_directory)
|
39
|
+
|
40
|
+
FileUtils.mkdir_p(output_directory)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Output directory
|
44
|
+
# @return [String]
|
45
|
+
#
|
46
|
+
def output_directory
|
47
|
+
File.join(Dir.getwd, 'coverage')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/undercover/plugin.rb
CHANGED
@@ -16,6 +16,7 @@ module Danger
|
|
16
16
|
#
|
17
17
|
class DangerUndercover < Plugin
|
18
18
|
VALID_FILE_FORMAT = '.txt'
|
19
|
+
DEFAULT_PATH = 'coverage/undercover.txt'
|
19
20
|
|
20
21
|
# Checks the file validity and warns if no file is found
|
21
22
|
# if a valid file is found then if there are no changes,
|
@@ -23,15 +24,15 @@ module Danger
|
|
23
24
|
# If there are reports then it shows the report as a warning in danger.
|
24
25
|
# @return [void]
|
25
26
|
#
|
26
|
-
def report(undercover_path, sticky: true)
|
27
|
+
def report(undercover_path = DEFAULT_PATH, sticky: true)
|
27
28
|
return fail('Undercover: coverage report cannot be found.') unless valid_file? undercover_path
|
28
29
|
|
29
|
-
report = File.open(undercover_path).read
|
30
|
+
report = File.open(undercover_path).read.force_encoding('UTF-8')
|
30
31
|
|
31
|
-
if report.match(/
|
32
|
-
message(report, sticky: sticky)
|
33
|
-
else
|
32
|
+
if report.match(/some methods have no test coverage/)
|
34
33
|
warn(report, sticky: sticky)
|
34
|
+
else
|
35
|
+
message(report, sticky: sticky)
|
35
36
|
end
|
36
37
|
end
|
37
38
|
|
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path('spec_helper', __dir__)
|
4
|
+
require 'undercover/cli'
|
5
|
+
|
6
|
+
# rubocop:disable Metrics/BlockLength
|
7
|
+
module DangerUndercover
|
8
|
+
describe DangerUndercover::CLI do
|
9
|
+
let!(:mock_message) { 'Test Passed' }
|
10
|
+
let!(:directory) { File.join(Dir.getwd, 'coverage') } # default directory
|
11
|
+
let!(:file) { File.join(Dir.getwd, 'coverage/undercover.txt') } # default file
|
12
|
+
|
13
|
+
before(:each) do
|
14
|
+
# mocks the undercover #{args&.join(' ')} CLI command output.
|
15
|
+
allow(described_class).to receive(:`).and_return(mock_message)
|
16
|
+
end
|
17
|
+
|
18
|
+
after(:all) do
|
19
|
+
# removes the folder after tests pass.
|
20
|
+
FileUtils.rm_rf(File.join(Dir.getwd, 'coverage'))
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'prints the undercover output' do
|
24
|
+
expect(described_class.run).to eql(mock_message)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "creates a default folder if doesn't exists" do
|
28
|
+
FileUtils.rm_rf(directory)
|
29
|
+
described_class.run
|
30
|
+
|
31
|
+
expect(Dir.exist?(directory)).to be true
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'creates default file undercover.txt' do
|
35
|
+
described_class.run
|
36
|
+
|
37
|
+
expect(File.exist?(file)).to be true
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'writes undercover report to default file' do
|
41
|
+
described_class.run
|
42
|
+
report = File.open(file).read
|
43
|
+
|
44
|
+
expect(report).to eql(mock_message)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
# rubocop:enable Metrics/BlockLength
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: danger-undercover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nimble
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-10-
|
12
|
+
date: 2020-10-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: danger-plugin-api
|
@@ -155,7 +155,8 @@ description: Show undercover report to PRs
|
|
155
155
|
email:
|
156
156
|
- dev@nimblehq.co
|
157
157
|
- rafayet@nimblehq.co
|
158
|
-
executables:
|
158
|
+
executables:
|
159
|
+
- undercover-report
|
159
160
|
extensions: []
|
160
161
|
extra_rdoc_files: []
|
161
162
|
files:
|
@@ -171,11 +172,14 @@ files:
|
|
171
172
|
- LICENSE
|
172
173
|
- README.md
|
173
174
|
- Rakefile
|
175
|
+
- bin/undercover-report
|
174
176
|
- danger-undercover.gemspec
|
175
177
|
- lib/danger_plugin.rb
|
176
178
|
- lib/danger_undercover.rb
|
179
|
+
- lib/undercover/cli.rb
|
177
180
|
- lib/undercover/gem_version.rb
|
178
181
|
- lib/undercover/plugin.rb
|
182
|
+
- spec/cli_spec.rb
|
179
183
|
- spec/fixtures/undercover_failed.txt
|
180
184
|
- spec/fixtures/undercover_passed.txt
|
181
185
|
- spec/spec_helper.rb
|
@@ -204,6 +208,7 @@ signing_key:
|
|
204
208
|
specification_version: 4
|
205
209
|
summary: A Danger plugin for Undercover gem
|
206
210
|
test_files:
|
211
|
+
- spec/cli_spec.rb
|
207
212
|
- spec/fixtures/undercover_failed.txt
|
208
213
|
- spec/fixtures/undercover_passed.txt
|
209
214
|
- spec/spec_helper.rb
|