Sha256: 839e399a5d644e77a9c391e00fe2fc4367e486da82e1d74801f12271902df1ae

Contents?: true

Size: 1.36 KB

Versions: 33

Compression:

Stored size: 1.36 KB

Contents

describe QuizApiClient::Services::QuizSessionsService do
  let(:host) { 'api.host' }
  let(:config) { QuizApiClient::Config.new { |c| c.host = host } }
  let(:subject) { described_class.new(config) }

  describe '#create' do
    let(:params) { { quiz_id: 1 } }
    let(:stubbed_response) { { 'id' => '1' } }
    let(:expected_url) { "https://#{host}/api/quizzes/#{params[:quiz_id]}/quiz_sessions" }
    let(:expected_body) { { quiz_session: { quiz_id: 1 } }.to_json }
    let(:status_code) { 200 }

    before do
      stub_request(:post, expected_url)
        .with(body: expected_body)
        .to_return(
          status: status_code,
          body: stubbed_response.to_json,
          headers: { 'Content-Type' => 'application/json' }
        )
    end

    it 'posts to quiz_api/api/quizzes and returns the response' do
      result = subject.create(params: params, token: 'token')
      expect(result.parsed_response).to eql(stubbed_response)
    end

    it 'raises an error when no quiz_id is specified' do
      params = {}
      expect do
        subject.create(params: params, token: 'token')
      end.to raise_error 'Quiz Id Required'
    end

    context 'response' do
      it 'returns the response with the correct status code' do
        response = subject.create(params: params, token: 'token')
        expect(response.code).to eq(status_code)
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
quiz_api_client-4.19.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.18.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.17.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.17.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.16.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.16.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.15.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.14.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.14.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.13.4 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.13.3 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.13.2 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.13.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.13.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.12.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.11.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.11.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.10.0 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.9.1 spec/services/quiz_sessions_service_spec.rb
quiz_api_client-4.9.0 spec/services/quiz_sessions_service_spec.rb