Sha256: d34ae3ef32210a3f2f6faf7360c0d9dcdfd6c8a3147ad2599cd3f0385075fd7f

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

require 'spec_helper'

describe Restforce::Middleware::RaiseError do
  let(:body)       { JSON.parse(fixture('sobject/query_error_response')) }
  let(:env)        { { status: status, body: body } }
  let(:middleware) { described_class.new app }

  describe '.on_complete' do
    subject(:on_complete) { middleware.on_complete(env) }

    context 'when the status code is 404' do
      let(:status) { 404 }

      it "raises an error" do
        expect { on_complete }.to raise_error Faraday::Error::ResourceNotFound,
                                              'INVALID_FIELD: error_message'
      end
    end

    context 'when the status code is 400' do
      let(:status) { 400 }

      it "raises an error" do
        expect { on_complete }.to raise_error Faraday::Error::ClientError,
                                              'INVALID_FIELD: error_message'
      end
    end

    context 'when the status code is 401' do
      let(:status) { 401 }

      it "raises an error" do
        expect { on_complete }.to raise_error Restforce::UnauthorizedError,
                                              'INVALID_FIELD: error_message'
      end
    end

    context 'when the status code is 413' do
      let(:status) { 413 }

      it "raises an error" do
        expect { on_complete }.to raise_error Faraday::Error::ClientError,
                                              'HTTP 413 - Request Entity Too Large'
      end
    end

    context 'when status is 400+ and body is a string' do
      let(:body)   { 'An error occured' }
      let(:status) { 404 }

      it 'raises an error with a non-existing error code' do
        expect { on_complete }.to raise_error Faraday::Error::ClientError,
                                              "(error code missing): #{body}"
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
restforce-2.1.3 spec/unit/middleware/raise_error_spec.rb
restforce-2.1.2 spec/unit/middleware/raise_error_spec.rb