Sha256: 15897194b099e9c5e94d3d6f55d713c64e08e01ecc244308c844b01b8e88299d

Contents?: true

Size: 1.21 KB

Versions: 2

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

RSpec.describe Apitizer::Connection::Dispatcher do
  extend ResourceHelper
  include ResourceHelper

  let(:address) { 'https://service.com/api/articles' }

  def create_request(method)
    double(method: method, address: address, parameters: {})
  end

  describe '#process' do
    { :json => '{}', :yaml => '---' }.each do |format, sample|
      context "when interacting in #{ format }" do
        let(:subject) { Apitizer::Connection::Dispatcher.new(format: format) }

        http_methods.each do |method|
          context "when performing #{ method } operations" do
            it 'uses propoer HTTP methods' do
              stub = stub_http_request(method, address).to_return(body: sample)
              response = subject.process(create_request(method))
              expect(stub).to have_been_requested
            end

            it 'sets proper headers' do
              stub = stub_http_request(method, address).to_return(body: sample).
                with(headers: { 'Accept' => mime_type_dictionary[format] })
              response = subject.process(create_request(method))
              expect(stub).to have_been_requested
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
apitizer-0.0.3 spec/apitizer/connection/dispatcher_spec.rb
apitizer-0.0.2 spec/apitizer/connection/dispatcher_spec.rb