1
0
mirror of https://github.com/meineerde/rackstash.git synced 2025-10-17 14:01:01 +00:00

Add complete tests for setting a custom error_flow on Flows

This commit is contained in:
Holger Just 2017-07-28 12:59:46 +02:00
parent c4f0b9cdeb
commit 65cad497f0

View File

@ -46,6 +46,13 @@ describe Rackstash::Flow do
expect(flow.filter_chain[0]).to equal filter
end
it 'accepts an error_flow' do
error_flow = described_class.new(nil)
flow = described_class.new(adapter, error_flow: error_flow)
expect(flow.error_flow).to equal error_flow
end
it 'yields the adapter if block given' do
expect { |b| described_class.new(adapter, &b) }
.to yield_with_args(instance_of(described_class))
@ -121,6 +128,32 @@ describe Rackstash::Flow do
end
end
describe '#error_flow' do
it 'returns the global error_flow by default' do
expect(Rackstash).to receive(:error_flow).and_call_original
expect(flow.error_flow).to be_instance_of described_class
end
it 'can set a custom error_flow' do
error_flow = described_class.new(adapter)
expect(flow.error_flow(error_flow)).to equal error_flow
# The error_flow is persisted and is returned afterwards
expect(flow.error_flow).to equal error_flow
end
it 'creates a flow object when setting a value' do
# load the flow helper so that the receive test below counts correctly
flow = self.flow
expect(described_class).to receive(:new).with(adapter).and_call_original
new_flow = flow.error_flow(adapter)
expect(flow.error_flow).to be_instance_of described_class
expect(flow.error_flow).to equal new_flow
end
end
describe '#filter_after' do
before(:each) do
flow.filter_chain << ->(event) {}