spec/flipper/instrumenters/memory_spec.rb in flipper-0.22.2 vs spec/flipper/instrumenters/memory_spec.rb in flipper-0.23.0

- old
+ new

@@ -1,6 +1,5 @@ -require 'helper' require 'flipper/instrumenters/memory' RSpec.describe Flipper::Instrumenters::Memory do describe '#initialize' do it 'sets events to empty array' do @@ -19,8 +18,26 @@ result = instrumenter.instrument(name, payload) { block_result } expect(result).to eq(block_result) event = described_class::Event.new(name, payload, block_result) expect(instrumenter.events).to eq([event]) + end + + context 'when an error is raised' do + subject do + instrumenter.instrument(:name) { raise IOError } + end + + let(:instrumenter) { described_class.new } + + it 'captures and propagates the error' do + expect { subject }.to raise_error(IOError) + + expect(instrumenter.events.count).to be 1 + + payload = instrumenter.events[0].payload + expect(payload.keys).to include(:exception, :exception_object) + expect(payload[:exception_object]).to be_a IOError + end end end end