lib/simplecov/exit_codes/exit_code_handling.rb
# frozen_string_literal: true
module SimpleCov
module ExitCodes
module ExitCodeHandling
module_function
def call(result, coverage_limits:)
checks = coverage_checks(result, coverage_limits)
failing_check = checks.find(&:failing?)
if failing_check
failing_check.report
failing_check.exit_code
else
SimpleCov::ExitCodes::SUCCESS
end
end
def coverage_checks(result, coverage_limits)
[
MinimumOverallCoverageCheck.new(result, coverage_limits.minimum_coverage),
MinimumCoverageByFileCheck.new(result, coverage_limits.minimum_coverage_by_file),
MaximumCoverageDropCheck.new(result, coverage_limits.maximum_coverage_drop)
]
end
end
end
end