firespring_dev_commands 2.1.20 → 2.1.21.pre.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f0890635dbc5e02fe76779902337c6435bafb6feca39615e44f6163e50e997e
4
- data.tar.gz: 2f7aa3997ede91430a662be821f1c8b762cc2826ea2ae9db9961b960e08cb84b
3
+ metadata.gz: beba9e91440acb52b0d11b471288857a0dca2322339dc97332f1e1c2d0233689
4
+ data.tar.gz: f5c188acfd23e35ef90b1b2f34ab198b5855659a16593563f59bdd4cdc3b242e
5
5
  SHA512:
6
- metadata.gz: 555a9a43a8a2239ef92c32e8db031125135c280c208e2eef7a25298620f6f6e162b5e3f1de48ce250cf7eecd13fe0c025b7897f55ddb277551173f734a75ea8c
7
- data.tar.gz: cc7b6953b961e75c67de30b4fb8f16aae19f915da42daa4a21028baf35a15f45e917b9c59b66fb267898106b5871cd6f913fe28e62a198dbd569c616b2c5ae0e
6
+ metadata.gz: 6bf7a75e329def5150ed99b105dc7c0da490c0078e5da88bb2cbf2477ef00b6f7b8b44dc98de36fc187f199095780cfbfa10e6e1b4cfd358ae7e760ae2bce684
7
+ data.tar.gz: af4215015156cf33254dddb558bd2bfd633c25735e00260e624f1ef18dae350749b66b91d13ecd1a086fa4d0d7fafa1d8ee9e3b88677701648bf5c6879b73f89
@@ -0,0 +1,30 @@
1
+ module Dev
2
+ module Coverage
3
+ class Cobertura
4
+ attr_reader :local_filename, :container_filename, :filename, :threshold
5
+
6
+ def initialize(filename: 'cobertura.xml', threshold: nil, container_path: nil, local_path: nil)
7
+ @filename = filename
8
+ @local_filename = File.join(local_path || '.', @filename)
9
+ @container_filename = File.join(container_path || '.', @filename)
10
+ @threshold = threshold.to_f
11
+
12
+ # Remove any previous coverage info
13
+ FileUtils.rm_f(local_filename, verbose: true)
14
+ end
15
+
16
+ def options
17
+ %W(--coverage-cobertura #{container_filename})
18
+ end
19
+
20
+ def check
21
+ report = Ox.load(File.read(local_filename), mode: :hash)
22
+ attrs, = report[:coverage]
23
+ cov_pct = attrs[:'line-rate'].to_f * 100
24
+ raise format('Line coverage %.2f%% is less than the threshold %.2f%%', cov_pct, threshold) if cov_pct < threshold
25
+
26
+ puts format('Line coverage %.2f%% is above the threshold %.2f%%', cov_pct, threshold)
27
+ end
28
+ end
29
+ end
30
+ end
@@ -8,11 +8,12 @@ module Dev
8
8
  DEFAULT_PACKAGE_FILE = 'composer.json'.freeze
9
9
 
10
10
  # Config object for setting top level git config options
11
- Config = Struct.new(:container_path, :local_path, :package_file) do
11
+ Config = Struct.new(:container_path, :local_path, :package_file, :coverage_threshold) do
12
12
  def initialize
13
13
  self.container_path = DEFAULT_PATH
14
14
  self.local_path = DEV_COMMANDS_ROOT_DIR
15
15
  self.package_file = DEFAULT_PACKAGE_FILE
16
+ self.coverage_threshold = nil
16
17
  end
17
18
  end
18
19
 
@@ -30,12 +31,13 @@ module Dev
30
31
  alias_method :configure, :config
31
32
  end
32
33
 
33
- attr_accessor :container_path, :local_path, :package_file
34
+ attr_accessor :container_path, :local_path, :package_file, :coverage
34
35
 
35
- def initialize(container_path: nil, local_path: nil, package_file: nil)
36
+ def initialize(container_path: nil, local_path: nil, package_file: nil, coverage_threshold: nil)
36
37
  @container_path = container_path || self.class.config.container_path
37
38
  @local_path = local_path || self.class.config.local_path
38
39
  @package_file = package_file || self.class.config.package_file
40
+ @coverage = Dev::Coverage::Cobertura.new(container_path:, local_path:, threshold: coverage_threshold)
39
41
  end
40
42
 
41
43
  # The base npm command that is the starting point for all subsequent commands
@@ -93,6 +95,7 @@ module Dev
93
95
  def test_command
94
96
  test = []
95
97
  test << './vendor/bin/phpunit'
98
+ test << coverage.options if coverage
96
99
  test.concat(Dev::Common.new.tokenize(ENV['OPTS'].to_s))
97
100
  test
98
101
  end
@@ -20,10 +20,12 @@ module Dev
20
20
  container_path: nil,
21
21
  local_path: nil,
22
22
  start_container_dependencies_on_test: true,
23
+ coverage_threshold: nil,
23
24
  exclude: []
24
25
  )
25
- @php = Dev::Php.new(container_path:, local_path:)
26
+ @php = Dev::Php.new(container_path:, local_path:, coverage_threshold:)
26
27
  @start_container_dependencies_on_test = start_container_dependencies_on_test
28
+
27
29
  super(application, exclude:)
28
30
  end
29
31
 
@@ -133,6 +135,7 @@ module Dev
133
135
  options = []
134
136
  options << '-T' if Dev::Common.new.running_codebuild?
135
137
  Dev::Docker::Compose.new(services: application, options:).exec(*php.test_command)
138
+ php.coverage.check
136
139
  end
137
140
  end
138
141
  end
@@ -6,6 +6,6 @@ module Dev
6
6
  # Use 'v.v.v.pre.alpha.v' for pre-release vesions
7
7
  # Use 'v.v.v.beta.v for beta versions
8
8
  # Use semantic versioning for any releases (https://semver.org/)
9
- VERSION = '2.1.20'.freeze
9
+ VERSION = '2.1.21.pre.alpha.1'.freeze
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firespring_dev_commands
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.20
4
+ version: 2.1.21.pre.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Firespring
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -333,6 +333,7 @@ files:
333
333
  - lib/firespring_dev_commands/bloom_growth/user.rb
334
334
  - lib/firespring_dev_commands/boolean.rb
335
335
  - lib/firespring_dev_commands/common.rb
336
+ - lib/firespring_dev_commands/coverage/cobertura.rb
336
337
  - lib/firespring_dev_commands/daterange.rb
337
338
  - lib/firespring_dev_commands/docker.rb
338
339
  - lib/firespring_dev_commands/docker/compose.rb
@@ -403,9 +404,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
403
404
  version: '3.1'
404
405
  required_rubygems_version: !ruby/object:Gem::Requirement
405
406
  requirements:
406
- - - ">="
407
+ - - ">"
407
408
  - !ruby/object:Gem::Version
408
- version: '0'
409
+ version: 1.3.1
409
410
  requirements: []
410
411
  rubygems_version: 3.4.10
411
412
  signing_key: