# frozen_string_literal: true

desc 'Run chunked rspec tests on specific qty, sample: CI_JOBS=3 CI_JOB=1 rake rspec_chunked' task :rspec_chunked do

job_number, qty_jobs = (ENV['CI_JOBS'] || '1/3').split('/')
logic = (ENV['CI_LOGIC'] || :file_size).to_sym
load_config
service = RspecChunked::ChunkedTests.new(qty_jobs.to_i, job_number.to_i,
                                         cmd: ENV['CI_CMD'], order_logic: logic)
service.run
copy_coverage(job_number)

end

def load_config

config_file = File.join(Dir.pwd, 'config', 'rspec_chunked.rb')
load config_file if File.exist?(config_file)

end

def copy_coverage(job_number)

path = 'coverage/.resultset.json'
FileUtils.cp path, "coverage/.resultset-#{job_number}.json" if File.exist?(path)

end

namespace :rspec_chunked do

desc 'Collates all result sets generated by the different test runners'
task :merge_reports do
  require 'simplecov'
  SimpleCov.collate Dir['coverage/.resultset-*']
end

end