Sha256: 71c1ccfac7b6baa9b0da6a5b17760d0995bd6a180f32c4cfa0d55bd723ca0da3

Contents?: true

Size: 976 Bytes

Versions: 3

Compression:

Stored size: 976 Bytes

Contents

require 'tango/response/raise_error'
require 'faraday'

describe Tango::Response::RaiseError do
  context 'error class raises if status code >= 500' do
    class Error < StandardError
      def self.from_status_code(status_code)
        new(status_code.to_s)
      end
      def self.raise_on?(status_code)
        status_code >= 500
      end
    end

    let(:conn) {
      Faraday::Connection.new do |conn|
        conn.use Tango::Response::RaiseError, Error

        conn.use Faraday::Adapter::Test do |stub|
          stub.get '/499' do |env|
            [ 400, {}, '' ]
          end
          stub.get '/500' do |env|
            [ 500, {}, '' ]
          end
        end
      end
    }

    it 'raises error if status code is 500' do
      expect {
        conn.get('/500')
      }.to raise_exception(Error)
    end
    it 'does not raise error if status code is 499' do
      expect {
        conn.get('/499')
      }.not_to raise_exception(Error)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tango-client-1.0.2 spec/tango/response/raise_error_spec.rb
tango-client-1.0.1 spec/tango/response/raise_error_spec.rb
tango-client-1.0.0 spec/tango/response/raise_error_spec.rb