Sha256: 9f3f6b29b53bce7df637830aa8ccb03afa24cb0c3f324f4d63e759fd32b67d76

Contents?: true

Size: 843 Bytes

Versions: 5

Compression:

Stored size: 843 Bytes

Contents

require 'spec_helper'

RSpec.shared_examples :capybara_context_holder do
  describe '#capybara_context' do
    let(:web_page_class) do
      klass = described_class
      Class.new do
        include klass
      end
    end
    subject { web_page_class.new.capybara_context }
    context 'when parent class has the method' do
      before do
        web_page_class.class_eval do
          def capybara_scopes
            @_scopes ||= [true]
          end
        end
      end
      it 'should execute parent method' do
        is_expected.to eq(true)
      end
    end
    context 'when parent class does not have the method' do
      it 'should raise error' do
        expect { subject }.to raise_error(
          NotImplementedError,
          "Please define 'capybara_scopes' method for class holder"
        )
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
howitzer-2.1.1 spec/support/shared_examples/capybara_context_holder.rb
howitzer-2.1.0 spec/support/shared_examples/capybara_context_holder.rb
howitzer-2.0.3 spec/support/shared_examples/capybara_context_holder.rb
howitzer-2.0.2 spec/support/shared_examples/capybara_context_holder.rb
howitzer-2.0.1 spec/support/shared_examples/capybara_context_holder.rb