lib/polytrix/rspec.rb in polytrix-0.1.0.pre vs lib/polytrix/rspec.rb in polytrix-0.1.0

- old
+ new

@@ -11,21 +11,23 @@ module RSpec class << self def shared_examples(caller) # rubocop:disable MethodLength # FIXME: Long method because it's hard to eval in the right context caller.instance_eval do - Polytrix.manifest['suites'].each do |suite_name, suite_config| + Polytrix.manifest.suites.each do |suite_name, suite_config| describe suite_name do - samples = suite_config['samples'] || [] + samples = suite_config.samples || [] samples.each do |scenario| - describe scenario do + describe scenario.name do Polytrix.implementors.each do |sdk| it sdk.name, sdk.name.to_sym => true do begin skip "#{sdk.name} is not setup" unless File.directory? sdk.basedir - challenge = sdk.build_challenge suite: suite_name, name: scenario, vars: suite_config['env'] + slug = Polytrix::Challenge.slugify(suite_name, scenario.name, sdk.name) + challenge = Polytrix.manifest.challenges[slug] + # sdk.build_challenge suite: suite_name, name: scenario, vars: suite_config.env example.metadata[:polytrix_challenge] = challenge - challenge.run + challenge.exec validators = Polytrix::ValidatorRegistry.validators_for challenge validators.each do |validator| instance_exec challenge, &validator.callback end rescue Polytrix::FeatureNotImplementedError => e