Sha256: b8a0f05020c38f768806c33f2f9e88270b9d382c3377933a60f29d70c4576158

Contents?: true

Size: 918 Bytes

Versions: 11

Compression:

Stored size: 918 Bytes

Contents

# -*- coding: utf-8 -*-

require 'turnip/rspec'

module Turnip
  module RSpec
    class << self
      alias_method :original_run, :run

      def run(feature_file)
        original_run(feature_file)

        feature = Turnip::Builder.build(feature_file)
        return nil if feature.nil?

        example_group = ::RSpec.world.example_groups.last

        update_metadata(feature, example_group)
      end

      #
      # @param  [Turnip::Node::Feature]      feature
      # @param  [RSpec::Core::ExampleGroup]  example_group
      #
      def update_metadata(feature, example_group)
        examples = example_group.children

        feature.scenarios.zip(examples).each do |scenario, parent_example|
          example = parent_example.examples.first
          example.metadata[:turnip_formatter] = {
            feature: feature,
            scenario: scenario,
          }
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
turnip_formatter-0.8.0 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.7.2 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.7.1 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.7.0 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.1 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0.pre.beta.7 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0.pre.beta.6 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0.pre.beta.5 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0.pre.beta.4 lib/turnip_formatter/ext/turnip/rspec.rb
turnip_formatter-0.6.0.pre.beta.3 lib/turnip_formatter/ext/turnip/rspec.rb