require 'spec_helper' require 'shared_examples_for_endpoints' module Fizzy module Api module Endpoints describe RenderOverview do let(:dossier_id) { '123' } let(:protocol_subscription_id) { 'abc' } let(:response) { httparty_response('{}') } let(:session) { FactoryGirl.build :basic_auth_session } it_behaves_like 'an endpoint' before do allow(Sessions::BasicAuthSession).to receive(:new).and_return session end it 'should call the correct url' do expect(session).to receive(:get) .with("/dossier/#{dossier_id}/protocol_subscriptions/#{protocol_subscription_id}/render.json") .and_return(response) outcome = described_class.run! dossier_id: dossier_id, protocol_subscription_id: protocol_subscription_id expect(outcome).to eq response end describe 'error handling' do it 'should fail a 500 with an UnexpectedStatusError' do allow(response).to receive(:code).and_return 500 expect(session).to receive(:get) .with("/dossier/#{dossier_id}/protocol_subscriptions/#{protocol_subscription_id}/render.json") .and_return(response) outcome = lambda do described_class.run! dossier_id: dossier_id, protocol_subscription_id: protocol_subscription_id end expect { outcome.call }.to raise_error(Errors::UnexpectedStatusError) end end end end end end