Sha256: f005ed7778afcf0927a9c538129a803b681ba50474104a968309c45eaf838185

Contents?: true

Size: 1.7 KB

Versions: 69

Compression:

Stored size: 1.7 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)
    url = 'http://some-rock-uri.com/api/Auth/Login'

    expect {
      client.get('anything')
    }.to raise_error(RockRMS::Error, /#{code}: #{url} #{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

69 entries across 69 versions & 1 rubygems

Version Path
rock_rms-9.0.0 spec/rock_rms/error_spec.rb
rock_rms-8.23.0 spec/rock_rms/error_spec.rb
rock_rms-8.22.0 spec/rock_rms/error_spec.rb
rock_rms-8.21.0 spec/rock_rms/error_spec.rb
rock_rms-8.20.0 spec/rock_rms/error_spec.rb
rock_rms-8.19.0 spec/rock_rms/error_spec.rb
rock_rms-8.18.0 spec/rock_rms/error_spec.rb
rock_rms-8.17.0 spec/rock_rms/error_spec.rb
rock_rms-8.16.0 spec/rock_rms/error_spec.rb
rock_rms-8.15.2 spec/rock_rms/error_spec.rb
rock_rms-8.15.1 spec/rock_rms/error_spec.rb
rock_rms-8.15.0 spec/rock_rms/error_spec.rb
rock_rms-8.14.0 spec/rock_rms/error_spec.rb
rock_rms-8.13.0 spec/rock_rms/error_spec.rb
rock_rms-8.12.0 spec/rock_rms/error_spec.rb
rock_rms-8.11.0 spec/rock_rms/error_spec.rb
rock_rms-8.10.0 spec/rock_rms/error_spec.rb
rock_rms-8.9.0 spec/rock_rms/error_spec.rb
rock_rms-8.8.0 spec/rock_rms/error_spec.rb
rock_rms-8.7.0 spec/rock_rms/error_spec.rb