------art_6560_7810088.1205733908212
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Can anyone point me in the direction of the correct way to use rspec's
configuration class to mixin modules into example groups (and add
before/after blocks) according to type.

http://rspec.info/rdoc/classes/Spec/Example/Configuration.html

I expected the following (very silly and contrived) code to prepend_before,
prepend_after and include their respective blocks/mixin _only_ for the specs
with :type :awe_inspiring but find that they get applied to all example
groups.

require 'spec'

module AMixin
  def wow
  end
end

Spec::Runner.configure do |config|
  config.include(AMixin, :type :awe_inspiring)
  config.prepend_before(:type :awe_inspiring) do
    puts 'before awe_inspiring test'
  end
  config.prepend_after(:type :awe_inspiring) do
    puts 'after awe_inspiring test'
  end
end

describe 'without enthusiasm', :type :mediocre do
  it "should do something without enthusiasm" do
    puts 'have wow' if self.respond_to?(:wow)
  end
end

describe 'with enthusiasm', :type :awe_inspiring do
  it "should do something with enthusiasm" do
    puts 'have wow' if self.respond_to?(:wow)
  end
end

------art_6560_7810088.1205733908212--