1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
# frozen_string_literal: true
# rubocop:todo all
module Unified
class TestGroup
def initialize(path, **opts)
if String === path
data = ::Utils.load_spec_yaml_file(path)
else
data = path
end
@spec = BSON::ExtJSON.parse_obj(data)
@options = opts
end
attr_reader :options
def tests
reqs = @spec['runOnRequirements']
@spec.fetch('tests').map do |test|
sub = @spec.dup
sub.delete('tests')
sub['test'] = test
sub['group_runOnRequirements'] = reqs
Test.new(sub, **options)
end
end
end
end
|