require 'spec_helper' describe 'CoreSpring::APIClient' do let(:client_id) { SecureRandom.hex(13) } let(:client_secret) { SecureRandom.hex(13) } let(:client) { CoreSpring::APIClient.new(client_id, client_secret) } let(:item_id) { SecureRandom.hex(13) } let(:collection_id) { SecureRandom.hex(13) } let(:session_id) { SecureRandom.hex(13) } let(:access_token) { SecureRandom.hex(13) } before(:each) do stub_request(:post, "https://platform.corespring.org/auth/access_token"). with(:body => "client_id=#{client_id}&client_secret=#{client_secret}"). to_return(:status => 200, :body => "{\"access_token\": \"#{access_token}\"}", :headers => {}) end describe "#get_item" do before do stub_request(:get, "https://platform.corespring.org/api/v2/items/#{item_id}?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.get_item(item_id) } it { is_expected.to be_a(CoreSpring::Item) } end describe "#get_item_session" do before do stub_request(:get, "https://platform.corespring.org/api/v2/sessions/#{session_id}?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.get_item_session(session_id) } it { is_expected.to be_a(CoreSpring::ItemSession) } end describe "#create_item_session" do before do stub_request(:post, "https://platform.corespring.org/api/v2/items/#{item_id}/sessions?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.create_item_session(item_id) } it { is_expected.to be_a(CoreSpring::ItemSession) } end describe "#reopen_item_session" do before do stub_request(:put, "https://platform.corespring.org/api/v2/sessions/#{session_id}/reopen?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.reopen_item_session(session_id) } it { is_expected.not_to be_nil } end describe "#complete_item_session" do before do stub_request(:put, "https://platform.corespring.org/api/v2/sessions/#{session_id}/complete?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.complete_item_session(session_id) } it { is_expected.not_to be_nil } end describe "#get_score" do before do stub_request(:get, "https://platform.corespring.org/api/v2/sessions/#{session_id}/score.json?access_token=#{access_token}"). to_return(:status => 200, :body => "{}", :headers => {}) end subject { client.get_score(session_id) } it { is_expected.to be_a(CoreSpring::Score) } end end