Sha256: 4698ad1f9b6360468314402c77f24102a8ee898cec6ec5f434201b97b9a2bddf

Contents?: true

Size: 1.33 KB

Versions: 5

Compression:

Stored size: 1.33 KB

Contents

# -*- encoding: utf-8 -*-
require 'helper'

describe Faraday::Response do
  before do
    @client = Octokit::Client.new
  end

  {
    400 => Octokit::BadRequest,
    401 => Octokit::Unauthorized,
    403 => Octokit::Forbidden,
    404 => Octokit::NotFound,
    406 => Octokit::NotAcceptable,
    422 => Octokit::UnprocessableEntity,
    500 => Octokit::InternalServerError,
    501 => Octokit::NotImplemented,
    502 => Octokit::BadGateway,
    503 => Octokit::ServiceUnavailable,
  }.each do |status, exception|
    context "when HTTP status is #{status}" do

      before do
        stub_get('https://api.github.com/users/sferik').
          to_return(:status => status)
      end

      it "raises #{exception.name} error" do
        expect {
          @client.user('sferik')
        }.to raise_error(exception)
      end
    end
  end

  [
    {:message => "Problems parsing JSON"},
    {:error => "Body should be a JSON Hash"}
  ].each do |body|
    context "when the response body contains an error message" do

      before do
        stub_get('https://api.github.com/users/sferik').
          to_return(:status => 400, :body => body)
      end

      it "raises an error with the error message" do
        expect {
          @client.user('sferik')
        }.to raise_error(Octokit::BadRequest, /#{body.values.first}/)
      end
    end
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
octokit-1.21.0 spec/faraday/response_spec.rb
octokit-1.20.0 spec/faraday/response_spec.rb
octokit-1.19.0 spec/faraday/response_spec.rb
octokit-1.18.0 spec/faraday/response_spec.rb
octokit-1.17.1 spec/faraday/response_spec.rb