Sha256: 4d6af1566319e4a42ac78960f48eadd9c96e2f410b7b4eb687da42bda23d0bb6

Contents?: true

Size: 1.64 KB

Versions: 29

Compression:

Stored size: 1.64 KB

Contents

require 'spec_helper'
require 'rack/utils'

RSpec.describe RockRMS::Error do
  let(:client) do
    RockRMS::Client.new(
      url: 'http://some-rock-uri.com',
      username: 'test',
      password: 'test',
      logger: false
    )
  end

  CODES = Rack::Utils::HTTP_STATUS_CODES.keys.freeze

  def stub(code, body)
    stub_request(:any, /rock/).to_return(status: code, body: body)
  end

  def expect_failure(code, body)
    expect {
      client.get('anything')
    }.to raise_error(RockRMS::Error, "#{code}: #{body}")
  end

  def expect_success
    expect { client.get('anything') }.to_not raise_error
  end

  context 'informational responses' do
    CODES.grep(100..199).each do |code|
      it "does not raise error for #{code}" do
        stub(code, '{}')
        expect_success
      end
    end
  end

  context 'success responses' do
    CODES.grep(200..299).each do |code|
      it "does not raise error for #{code}" do
        stub(code, '{}')
        expect_success
      end
    end
  end

  context 'redirection responses' do
    CODES.grep(300..399).each do |code|
      it "does not raise error for #{code}" do
        stub(code, '')
        expect_success
      end
    end
  end

  context 'client error responses' do
    CODES.grep(400..499).each do |code|
      it "raises exception for #{code}" do
        stub(code, 'test client error')
        expect_failure(code, 'test client error')
      end
    end
  end

  context 'server error responses' do
    CODES.grep(500..599).each do |code|
      it "raises exception for #{code}" do
        stub(code, 'test client error')
        expect_failure(code, 'test client error')
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
rock_rms-4.7.0 spec/rock_rms/error_spec.rb
rock_rms-4.6.0 spec/rock_rms/error_spec.rb
rock_rms-4.5.0 spec/rock_rms/error_spec.rb
rock_rms-4.4.0 spec/rock_rms/error_spec.rb
rock_rms-4.3.0 spec/rock_rms/error_spec.rb
rock_rms-4.2.3 spec/rock_rms/error_spec.rb
rock_rms-4.2.2 spec/rock_rms/error_spec.rb
rock_rms-4.2.1 spec/rock_rms/error_spec.rb
rock_rms-4.2.0 spec/rock_rms/error_spec.rb
rock_rms-4.1.1 spec/rock_rms/error_spec.rb
rock_rms-4.1.0 spec/rock_rms/error_spec.rb
rock_rms-4.0.0 spec/rock_rms/error_spec.rb
rock_rms-3.9.0 spec/rock_rms/error_spec.rb
rock_rms-3.8.0 spec/rock_rms/error_spec.rb
rock_rms-3.7.0 spec/rock_rms/error_spec.rb
rock_rms-3.6.3 spec/rock_rms/error_spec.rb
rock_rms-3.6.2 spec/rock_rms/error_spec.rb
rock_rms-3.6.1 spec/rock_rms/error_spec.rb
rock_rms-3.6.0 spec/rock_rms/error_spec.rb
rock_rms-3.5.0 spec/rock_rms/error_spec.rb