Sha256: 0236d954b5ac68a437d08b55ae08a809a8476d3dd5f25ac6103feb2d1ef02b0d

Contents?: true

Size: 923 Bytes

Versions: 5

Compression:

Stored size: 923 Bytes

Contents

shared_examples 'record request' do
  let(:api_record_endpoint) { %r{www.europeana.eu/api/v2/record#{record_id}\.json} }
  let(:api_key) { 'xyz' }
  let(:record_id) { '/abc/1234' }
  let(:params) { { callback: 'doSomething();' } }

  before(:each) do
    stub_request(:get, api_record_endpoint).to_return(body: '{"success":true}')
    Europeana::API.api_key = api_key
  end

  it_behaves_like 'API request'

  it 'sends a Record request to the API' do
    subject
    expect(a_request(:get, api_record_endpoint)).to have_been_made.once
  end

  context 'when record ID is invalid' do
    it 'raises RequestError from HTML 404 response' do
      stub_request(:get, api_record_endpoint).
        to_return(body: '<html></html>', headers: { 'Content-Type' => 'text/html' }, status: 404)
      expect { subject }.to raise_error(Europeana::API::Errors::RequestError, "Invalid record identifier: #{record_id}")
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
europeana-api-0.5.2 spec/support/shared_examples/record_request.rb
europeana-api-0.5.0 spec/support/shared_examples/record_request.rb
europeana-api-0.4.3 spec/support/shared_examples/record_request.rb
europeana-api-0.4.2 spec/support/shared_examples/record_request.rb
europeana-api-0.4.1 spec/support/shared_examples/record_request.rb