Sha256: 60a7f19e1e3d8cd080a76789c89270e0ffb53b2af38d4b962f08bdaa50b077db

Contents?: true

Size: 1.71 KB

Versions: 1

Compression:

Stored size: 1.71 KB

Contents

# encoding: utf-8
#
require 'spec_helper'

describe Mode::Sdk::Client::Response do
  describe '#code' do
    it 'returns http response code as an integer' do
      http_response = double(:http_response, code: '200')

      response = Mode::Sdk::Client::Response.new(http_response)

      expect(response.code).to eq(200)
    end
  end

  describe '#body' do
    it 'parses response body' do
      http_response = double(:http_response, body: '{"foo":"bar"}')

      response = Mode::Sdk::Client::Response.new(http_response)

      expect(response.body).to eq('foo' => 'bar')
    end
  end

  describe '#validate!' do
    it 'raises exception if response is 401' do
      http_response = double(:http_response, code: '401')

      response = Mode::Sdk::Client::Response.new(http_response, [200])

      expect {
        response.validate!
      }.to raise_error(Mode::Sdk::Client::AuthenticationError)
    end

    it 'raises exception if response is 403' do
      http_response = double(:http_response, code: '403')

      response = Mode::Sdk::Client::Response.new(http_response, [200])

      expect {
        response.validate!
      }.to raise_error(Mode::Sdk::Client::AuthorizationError)
    end

    it 'raises exception if response is unexpected' do
      http_response = double(:http_response, code: '200', body: '{}')

      response = Mode::Sdk::Client::Response.new(http_response, [201])

      expect {
        response.validate!
      }.to raise_error(Mode::Sdk::Client::ResponseError)
    end

    it 'returns true if response is expected' do
      http_response = double(:http_response, code: '201')

      response = Mode::Sdk::Client::Response.new(http_response, [201])

      expect(response.validate!).to eq(true)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mode-sdk-0.1.0 spec/lib/mode/sdk/client/response_spec.rb