Sha256: 41d3f696028fbd8e48429a5ce8d4e9a2511f52a38837c01524cc5236e25875aa

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true
require 'cucumber/filters/gated_receiver'

describe Cucumber::Filters::GatedReceiver do
  subject(:gated_receiver) { Cucumber::Filters::GatedReceiver.new(receiver) }

  let(:receiver) { double(:receiver) }
  let(:test_cases){ [double(:test_case), double(:test_case)] }

  describe '#test_case' do
    it 'does not immediately describe the test case to the receiver' do
      test_cases.each do |test_case|
        expect(test_case).to_not receive(:describe_to).with(receiver)
      end

      test_cases.each do |test_case|
        gated_receiver.test_case(test_case)
      end
    end
  end

  describe '#done' do
    before do
      test_cases.each do |test_case|
        gated_receiver.test_case(test_case)
      end

      test_cases.each do |test_case|
        allow(test_case).to receive(:describe_to).with(receiver)
      end

      allow(receiver).to receive(:done)
    end

    it 'describes all test cases to the receiver' do
      test_cases.each do |test_case|
        expect(test_case).to receive(:describe_to).with(receiver)
      end

      gated_receiver.done
    end

    it 'calls done on the receiver' do
      expect(receiver).to receive(:done)
      gated_receiver.done
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cucumber-3.0.1 spec/cucumber/filters/gated_receiver_spec.rb
cucumber-3.0.0 spec/cucumber/filters/gated_receiver_spec.rb
cucumber-3.0.0.pre.2 spec/cucumber/filters/gated_receiver_spec.rb