Sha256: cdb68e3c8d1149587908879e588cc9cd8c7b82d6e90711a05024f4a09fdd0d5d

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

RSpec.describe Base::Apis::Search do
  let(:client_secret) { Base::APIClient::ClientSecret.new }
  subject { Base::Apis::Search.new client_secret }
  let(:query) { 'blue black white' }

  describe '::new' do
    include_examples 'Base::Apis::Something.new'
  end

  describe '#generate_body' do
    context 'without block' do
      it 'returns basic body' do
        expect(subject.generate_body(query)).to eq \
          client_id:     'fake_search_client_id',
          client_secret: 'fake_search_client_secret',
          q:             'blue black white'
      end
    end

    context 'with block' do
      it 'returns body with given parameters' do
        expect(
          subject.generate_body(query) do
            {
              start:   999,
              size:    888,
              fields: 'fake_field',
              shop_id: 123 }
          end
        ).to eq \
          client_id:     'fake_search_client_id',
          client_secret: 'fake_search_client_secret',
          q:             'blue black white',
          start:          999,
          size:           888,
          fields:        'fake_field',
          shop_id:        123
      end
    end
  end

  describe '#request' do
    let(:response) do
      VCR.use_cassette('search/request') do
        subject.request(query)
      end
    end

    it 'status is 200' do
      expect(response.status).to eq 200
    end

    it 'body contains query chars' do
      query.split.each do |q|
        expect(response.body).to match(/#{q}/)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
base-api-client-0.3.3.beta spec/base/apis/search_spec.rb
base-api-client-0.3.2.beta spec/base/apis/search_spec.rb