Sha256: ae1af5176c551e0b0912506ba5b8e73dfceb0f9091b8a1a3f76db6a15b88854b

Contents?: true

Size: 1.48 KB

Versions: 3

Compression:

Stored size: 1.48 KB

Contents

require 'rails_helper'

describe LHC do

  context 'get' do

    before(:each) do
      stub_request(:get, 'http://datastore/v2/feedbacks?has_reviews=true')
        .to_return(status: 200, body: { total: 99 }.to_json, headers: {'Content-Encoding' => 'UTF-8'})
    end

    let(:parameters) do
      { has_reviews: true }
    end

    it 'does a get request when providing a complete url' do
      LHC.get('http://datastore/v2/feedbacks', params: parameters)
    end

    it 'does a get request when providing the name of a configured endpoint' do
      url = 'http://:datastore/v2/feedbacks'
      options = { params: { datastore: 'datastore' } }
      LHC.configure { |c| c.endpoint(:feedbacks, url, options) }
      LHC.get(:feedbacks, params: parameters)
    end

    it 'it makes response data available in a rails way' do
      response = LHC.get('http://datastore/v2/feedbacks', params: parameters)
      expect(response.data.total).to eq 99
    end

    it 'provides response headers' do
      response = LHC.get('http://datastore/v2/feedbacks', params: parameters)
      expect(response.headers).to be
    end
  end

  context 'get json' do

    before(:each) do
      stub_request(:get, 'http://datastore/v2/feedbacks').with(headers: {'Content-Type' => 'application/json'})
        .to_return(body: {some: 'json'}.to_json)
    end

    it 'requests json and parses response body' do
      data = LHC.json.get('http://datastore/v2/feedbacks').data
      expect(data.some).to eq 'json'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lhc-3.4.0 spec/basic_methods/get_spec.rb
lhc-3.3.0 spec/basic_methods/get_spec.rb
lhc-3.2.0 spec/basic_methods/get_spec.rb