34 lines
900 B
Ruby
34 lines
900 B
Ruby
# frozen_string_literal: true
|
|
|
|
class CoverageReport
|
|
def self.generate(type, report_path, data)
|
|
if type == 'simplecov'
|
|
simplecov(report_path, data)
|
|
elsif type == 'jest'
|
|
jest(report_path, data)
|
|
else
|
|
raise 'InvalidCoverageReportType'
|
|
end
|
|
end
|
|
|
|
def self.simplecov(report_path, data)
|
|
report = read_json(report_path)
|
|
minumum_percent = data[:min]
|
|
covered_percent = report.dig('result', 'covered_percent')
|
|
{ 'lines' => { 'covered_percent' => covered_percent, 'minumum_percent' => minumum_percent } }
|
|
end
|
|
|
|
def self.jest(report_path, data)
|
|
report = read_json(report_path)
|
|
minumum_percent = data[:min]
|
|
covered_percent = report.dig('result', 'covered_percent')
|
|
{ 'lines' => { 'covered_percent' => covered_percent, 'minumum_percent' => minumum_percent } }
|
|
end
|
|
|
|
private
|
|
|
|
def read_json(path)
|
|
JSON.parse(File.read(path))
|
|
end
|
|
end
|