Sha256: 214f8f7e6be53cb303185b32c9f1ef086b343aed464f7feda3d6d684e2951cd8

Contents?: true

Size: 1.64 KB

Versions: 15

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

15 entries across 15 versions & 1 rubygems

Version Path
rock_rms-5.1.0 spec/rock_rms/error_spec.rb
rock_rms-5.0.0 spec/rock_rms/error_spec.rb
rock_rms-4.18.0 spec/rock_rms/error_spec.rb
rock_rms-4.17.0 spec/rock_rms/error_spec.rb
rock_rms-4.16.0 spec/rock_rms/error_spec.rb
rock_rms-4.15.0 spec/rock_rms/error_spec.rb
rock_rms-4.14.0 spec/rock_rms/error_spec.rb
rock_rms-4.13.0 spec/rock_rms/error_spec.rb
rock_rms-4.12.3 spec/rock_rms/error_spec.rb
rock_rms-4.12.2 spec/rock_rms/error_spec.rb
rock_rms-4.12.1 spec/rock_rms/error_spec.rb
rock_rms-4.11.0 spec/rock_rms/error_spec.rb
rock_rms-4.10.0 spec/rock_rms/error_spec.rb
rock_rms-4.9.0 spec/rock_rms/error_spec.rb
rock_rms-4.8.0 spec/rock_rms/error_spec.rb