repo_analyzer 1.0.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c041d9cb3adb2da0b9f65b650ac2cea07e03b5cb9c18f91bc088e0d64fdf0aa
4
- data.tar.gz: 7256cb29b42d8be0cf7debeee505b96c038226e5de44718cb10978b75c255472
3
+ metadata.gz: 9d1b86e2ab569ab6ba492b0e2ad78284a16d5224a66bf8ef781ebbceffdbbc5b
4
+ data.tar.gz: 179576b67a152a131c89f0c873e018a01df9cc20509c72ef30391304701a87f3
5
5
  SHA512:
6
- metadata.gz: db7ef6fbb1f035680630a1c31f89ff9e323b2ca0cf37daf43fbdb790a1d7b7cb45eb808f10ab3c3cb5826d5df61302f416a3f8c6417b22d73534591049a0ab50
7
- data.tar.gz: 68e5aa2262cbf3b463c30d4b6f595eeaa6bdd547996f7f1802ab48cf5e92170ff11a0157a2dc5303b07c942ad6137d9b073d10e243eb20741c527c8079b4c88f
6
+ metadata.gz: 886b9d9b023b032d75bd3d1f8958d9a674aae36b49cf79a8635179d6c5dc419e489935797ec4bd9f3db64cd05ea23c827fecc2d09a3a066843bb92f4c7f0944b
7
+ data.tar.gz: 0d6465e08b70b38b568b5009ce16f3151455f3d017b9c4afa99bd1234aa7ad13fa1754351022e197f6241d3791f36476ed4151acfbe7e5e4f063a06cd69fe1b6
data/.circleci/config.yml CHANGED
@@ -16,7 +16,7 @@ executors:
16
16
  default: "2.7"
17
17
  type: string
18
18
  docker:
19
- - image: circleci/ruby:<<parameters.ruby-version>>-node
19
+ - image: cimg/ruby:<<parameters.ruby-version>>-node
20
20
  environment: *env-vars
21
21
 
22
22
  commands:
@@ -93,7 +93,7 @@ workflows:
93
93
  - test:
94
94
  matrix:
95
95
  parameters:
96
- ruby-version: ["2.7"]
96
+ ruby-version: ["2.7", "3.1"]
97
97
  - deploy:
98
98
  context: org-global
99
99
  filters:
data/.gitignore CHANGED
@@ -6,4 +6,4 @@ spec/dummy/db/*.sqlite3-journal
6
6
  spec/dummy/log/*.log
7
7
  spec/dummy/tmp/
8
8
  spec/dummy/.sass-cache
9
- coverage/
9
+ /coverage
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7
1
+ 3.1
data/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
+
6
+ ### v1.2.0
7
+
8
+ #### Added
9
+
10
+ * Add total coverage % to simplecov results on tests info extractor.
11
+
12
+ ### v1.1.0
13
+
14
+ #### Added
15
+
16
+ * Extract code coverage using Simplecov JSON formatter's generated file.
17
+
5
18
  ### v1.0.0
6
19
 
7
20
  * Initial release.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- repo_analyzer (1.0.0)
4
+ repo_analyzer (1.2.0)
5
5
  brakeman
6
6
  octokit (~> 4.0)
7
7
  rails (>= 6.0)
@@ -300,6 +300,7 @@ GEM
300
300
 
301
301
  PLATFORMS
302
302
  x86_64-darwin-20
303
+ x86_64-darwin-21
303
304
  x86_64-linux
304
305
 
305
306
  DEPENDENCIES
@@ -36,7 +36,8 @@ module RepoAnalyzer
36
36
  swagger_tests_count: swagger_tests,
37
37
  system_tests_count: system_tests_count,
38
38
  jest_tests_count: jest_tests_count,
39
- rails_code_coverage: rails_code_coverage.merge(total: coverage_total)
39
+ rails_code_coverage: rails_code_coverage.merge(total: coverage_total),
40
+ simplecov_coverage: simplecov_coverage.merge(total: simplecov_total_percentage)
40
41
  }
41
42
  end
42
43
 
@@ -54,6 +55,34 @@ module RepoAnalyzer
54
55
  end
55
56
  end
56
57
 
58
+ def simplecov_coverage
59
+ @simplecov_coverage ||= TESTEABLE_RAILS_RESOURCES.inject({}) do |data, resource|
60
+ covered_percent = coverage_file.dig(
61
+ "groups", resource.to_s.camelize, "lines", "covered_percent"
62
+ )
63
+ value = covered_percent&.to_f&.round(2)
64
+ data[resource] = value
65
+ add_value_to_simplecov_total(value) if value
66
+ data
67
+ end
68
+ end
69
+
70
+ def add_value_to_simplecov_total(value)
71
+ @simplecov_covered_total ||= 0
72
+ @simplecov_covered_total += value
73
+ @simplecov_total ||= 0
74
+ @simplecov_total += 100
75
+ end
76
+
77
+ def coverage_file
78
+ @coverage_file ||= begin
79
+ content = project_data_bridge.file_content("coverage/coverage.json")
80
+ return {} if content.blank?
81
+
82
+ JSON.parse(content).with_indifferent_access
83
+ end
84
+ end
85
+
57
86
  def rails_code_coverage
58
87
  TESTEABLE_RAILS_RESOURCES.inject({}) do |data, resource|
59
88
  tests_count = project_data_bridge.dir_files("spec/#{resource}").count do |file|
@@ -77,6 +106,15 @@ module RepoAnalyzer
77
106
  true
78
107
  end
79
108
 
109
+ def simplecov_total_percentage
110
+ @simplecov_total_percentage ||= begin
111
+ return if @simplecov_covered_total.nil? || @simplecov_total.nil?
112
+ return 0.0 if @simplecov_total.zero?
113
+
114
+ (@simplecov_covered_total / @simplecov_total * 100.0).round(2)
115
+ end
116
+ end
117
+
80
118
  def coverage_total
81
119
  @coverage_total ||= {
82
120
  files_count: 0,
@@ -1,3 +1,3 @@
1
1
  module RepoAnalyzer
2
- VERSION = '1.0.0'
2
+ VERSION = '1.2.0'
3
3
  end