Sha256: 38490897b42d36561680660622b77391f464c01e94959404ea7e8c9f8efb5556
Contents?: true
Size: 1.98 KB
Versions: 13
Compression:
Stored size: 1.98 KB
Contents
require 'spec_helper' describe Services::Base::ExceptionWrapper do if StandardError.new.respond_to?(:cause) it 'does not wrap service errors or subclasses' do expect do ErrorService.call end.to raise_error do |error| expect(error).to be_a(ErrorService::Error) expect(error.message).to eq('I am a service error.') expect(error.cause).to be_nil end class ServiceWithCustomError < Services::Base CustomError = Class.new(self::Error) def call raise CustomError.new('I am a custom error.') end end expect do ServiceWithCustomError.call end.to raise_error do |error| expect(error).to be_a(ServiceWithCustomError::CustomError) expect(error.message).to eq('I am a custom error.') expect(error.cause).to be_nil end end it 'wraps all other exceptions' do class ServiceWithStandardError < Services::Base def call raise 'I am a StandardError.' end end expect do ServiceWithStandardError.call end.to raise_error do |error| expect(error).to be_a(ServiceWithStandardError::Error) expect(error.message).to eq('I am a StandardError.') expect(error.cause).to be_a(StandardError) expect(error.cause.message).to eq('I am a StandardError.') end class ServiceWithCustomStandardError < Services::Base CustomStandardError = Class.new(StandardError) def call raise CustomStandardError, 'I am a custom StandardError.' end end expect do ServiceWithCustomStandardError.call end.to raise_error do |error| expect(error).to be_a(ServiceWithCustomStandardError::Error) expect(error.message).to eq('I am a custom StandardError.') expect(error.cause).to be_a(ServiceWithCustomStandardError::CustomStandardError) expect(error.cause.message).to eq('I am a custom StandardError.') end end end end
Version data entries
13 entries across 13 versions & 1 rubygems