Sha256: 76dc5265557aae4748714976b962a82f8f54302b7cf3fb081373b2834065727d

Contents?: true

Size: 1.95 KB

Versions: 38

Compression:

Stored size: 1.95 KB

Contents

require 'spec_helper'

module RSpec::Core::SharedExampleGroup
  describe Collection do

    # this represents:
    #
    # shared_examples "top level group"
    #
    # context do
    #   shared_examples "nested level one"
    # end
    #
    # context do
    #   shared_examples "nested level two"
    # end
    #
    let(:examples) do
      Hash.new { |hash,k| hash[k] = Hash.new }.tap do |hash|
        hash["main"]     = { "top level group"  => example_1 }
        hash["nested 1"] = { "nested level one" => example_2 }
        hash["nested 2"] = { "nested level two" => example_3 }
      end
    end
    (1..3).each { |num| let("example_#{num}") { double "example #{num}" } }

    context 'setup with one source, which is the top level' do

      let(:collection) { Collection.new ['main'], examples }

      it 'fetches examples from the top level' do
        expect(collection['top level group']).to eq example_1
      end

      it 'fetches examples across the nested context' do
        RSpec.stub(:warn_deprecation)
        expect(collection['nested level two']).to eq example_3
      end

      it 'warns about deprecation when you fetch across nested contexts' do
        RSpec.should_receive(:warn_deprecation)
        collection['nested level two']
      end
    end

    context 'setup with multiple sources' do

      let(:collection) { Collection.new ['main','nested 1'], examples }

      it 'fetches examples from the context' do
        expect(collection['nested level one']).to eq example_2
      end

      it 'fetches examples from main' do
        expect(collection['top level group']).to eq example_1
      end

      it 'fetches examples across the nested context' do
        RSpec.stub(:warn_deprecation)
        expect(collection['nested level two']).to eq example_3
      end

      it 'warns about deprecation when you fetch across nested contexts' do
        RSpec.should_receive(:warn_deprecation)
        collection['nested level two']
      end

    end
  end
end

Version data entries

38 entries across 38 versions & 8 rubygems

Version Path
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.4.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.9.5.1 vendor/bundle/ruby/2.4.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.9.1.1 vendor/bundle/ruby/2.4.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.8.5.2 vendor/bundle/ruby/2.3.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.8.5.1 vendor/bundle/ruby/2.3.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.8.4.2 vendor/bundle/ruby/2.3.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.8.4.1 vendor/bundle/ruby/2.3.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-unbundled-1.8.1.1 vendor/bundle/ruby/2.3.0/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
vagrant-cloudstack-1.1.0 vendor/bundle/gems/rspec-core-2.14.8/spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.99.2 spec/rspec/core/shared_example_group/collection_spec.rb
dxruby_rp5-0.0.4 spec/vendor/rspec-core-2.14.7/spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.99.1 spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.99.0 spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.99.0.rc1 spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.14.8 spec/rspec/core/shared_example_group/collection_spec.rb
rspec-core-2.99.0.beta2 spec/rspec/core/shared_example_group/collection_spec.rb
mango-0.8.0 vendor/bundler/ruby/2.1.0/gems/rspec-core-2.14.7/spec/rspec/core/shared_example_group/collection_spec.rb
mango-0.7.1 vendor/bundler/ruby/2.0.0/gems/rspec-core-2.14.7/spec/rspec/core/shared_example_group/collection_spec.rb
dxruby_rp5-0.0.3 spec/vendor/rspec-core-2.14.7/spec/rspec/core/shared_example_group/collection_spec.rb
tuktuk-rails-0.0.10 vendor/bundle/ruby/2.0.0/gems/rspec-core-2.14.7/spec/rspec/core/shared_example_group/collection_spec.rb