From 65cad497f0c59f32291c73b2c6ffa6c9272f7b83 Mon Sep 17 00:00:00 2001 From: Holger Just Date: Fri, 28 Jul 2017 12:59:46 +0200 Subject: [PATCH] Add complete tests for setting a custom error_flow on Flows --- spec/rackstash/flow_spec.rb | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/spec/rackstash/flow_spec.rb b/spec/rackstash/flow_spec.rb index 648cfd7..ec45744 100644 --- a/spec/rackstash/flow_spec.rb +++ b/spec/rackstash/flow_spec.rb @@ -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) {}