Sha256: d81260d3008562c77f29657a25feaeb8f14632d851f559c64ff8dd6041997b3b

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

require "spec_helper"

describe FooMapper do
  let (:connection) { instance_double(Faraday::Connection, :get => nil) }
  let (:context) do
    {
      :foo => :bar
    }
  end

  subject { described_class.new(connection, context) }

  describe "#data" do
    let (:expected_raw_data) do
      {
        :some => 'data'
      }
    end
    let (:expected_data) { JSON::generate(expected_raw_data, :symbolize_names => true) }
    let (:expected_response) { instance_double(Faraday::Response, :body => expected_data, :status => 200) }

    context "with a valid endpoint" do
      before(:each) do
        allow(connection).to receive(:get).with("/some/test/endpoint/#{context.values[0]}").and_return(expected_response)
      end

      specify { expect(subject.data).to eq expected_raw_data }
    end

    context "invalid hostname" do
      let (:expected_exception) { Alephant::Publisher::Request::ConnectionFailed }
      let (:faraday_exception) { Faraday::ConnectionFailed.new(StandardError) }

      before(:each) do
        allow(connection).to receive(:get).and_raise(faraday_exception)
      end

      specify { expect{ subject.data }.to raise_error expected_exception }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
alephant-publisher-request-0.1.1 spec/data_mapper_spec.rb
alephant-publisher-request-0.0.3 spec/data_mapper_spec.rb
alephant-publisher-request-0.0.2 spec/data_mapper_spec.rb