Sha256: 1babc6720c1c760561c72caa562cc73fedf9c2c7e7ef2819bb78e36d46ae83d3

Contents?: true

Size: 1.31 KB

Versions: 29

Compression:

Stored size: 1.31 KB

Contents

require "spec_helper"

describe Pwwka::ErrorHandlers::Chain do
  subject(:chain) { described_class.new(default_handler_chain) }

  describe "#handle_error" do
    context "when an error handler raises an unhandled exception" do
      let(:default_handler_chain) { [bad_error_handler_klass, good_error_handler_klass] }
      let(:bad_error_handler_klass) { double("bad error handler klass", new: bad_error_handler) }
      let(:bad_error_handler) {
        handler = double("bad error handler")
        allow(handler).to receive(:handle_error).and_raise("unhandled exception in error handler")
        handler
      }
      let(:good_error_handler_klass) { double("good error handler klass") }

      before { allow(bad_error_handler).to receive(:error_handler).and_raise("Wibble") }

      it "does not run subsequent error handlers" do
        expect(good_error_handler_klass).to_not receive(:new)

        chain.handle_error(double,double,double,double,double,double.as_null_object)
      end

      it "logs exceptions that occur in the error handling chain" do
        allow(chain.logger).to receive(:send).with(any_args)
        expect(chain.logger).to receive(:send).with(:fatal, /aborting due to unhandled exception/)

        chain.handle_error(double,double,double,double,double,double.as_null_object)
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
pwwka-1.0.0 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-1.0.0.RC1 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.24.0 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.23.0 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.7 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.7.RC spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.23.0.RC2 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.6 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.23.RC1 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.5 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.4 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.3 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.2 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.21.3 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.2.RC4 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.2.RC3 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.2.RC2 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.0.RC2 spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.22.0.RC spec/lib/pwwka/error_handlers/chain_spec.rb
pwwka-0.21.2 spec/lib/pwwka/error_handlers/chain_spec.rb