Files
ubicloud/spec/coverage_helper.rb
Eren Başak f68c67b43a Support coverage for specific rhizome files
When rspec is run against rhizome folder with COVERAGE=rhizome,
The line coverage and enforcement can be observed, similar to
our CP test suite.

Currently, only the rhizome/kubernetes/lib/ubi_cni.rb is included
in the tracked files for rhizome, other files need to be added manually.

The change is included in ci.yml too, so that once a file makes into
the tracked rhizome files array, it will always be enforced.
2025-02-04 08:56:06 +01:00

39 lines
995 B
Ruby

# frozen_string_literal: true
if (suite = ENV.delete("COVERAGE"))
require "simplecov"
SimpleCov.start do
enable_coverage :branch
minimum_coverage line: 100, branch: 100
minimum_coverage_by_file line: 100, branch: 100
command_name "#{suite}#{ENV["TEST_ENV_NUMBER"]}"
if suite == "rhizome"
require "pathname"
LOCKED_FILES = ["rhizome/kubernetes/lib/ubi_cni.rb"].map do |file|
Pathname.new(File.expand_path("..", __dir__)).join(file).to_s
end
add_filter do |file|
!LOCKED_FILES.include?(file.filename)
end
else
add_filter "/rhizome"
# No need to check coverage for them
add_filter "/migrate/"
add_filter "/spec/"
add_filter "/db.rb"
add_filter "/model.rb"
add_filter "/loader.rb"
add_filter "/.env.rb"
end
add_group("Missing") { |src| src.covered_percent < 100 }
add_group("Covered") { |src| src.covered_percent == 100 }
track_files "**/*.rb"
end
end