Sha256: 0773aacf41f9a86881af2128d90790696b473893e2160fe12ed3596784cb1a6d

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

# encoding: UTF-8

require 'spec_helper'
require 'support/account'
require 'wakatime'
require 'webmock/rspec'

describe Wakatime::Session do
  before do
    @session = Wakatime::Session.new(
      api_key: 'Lame Key'
    )

    @client = Wakatime::Client.new(@session)
  end

  it 'raises a RequestError if a badly formed request detected by the server' do
    stub_request(:get, /.*\/summaries.*/).to_return(status: 401, body: '{\n  \"errors\": [\n    \"UNAUTHORIZED\"\n  ]\n}', headers: {})
    expect { @client.summaries }.to raise_error(Wakatime::AuthError)

    # make sure status and body is
    # set on error object.
    begin
      @client.summaries
    rescue StandardError => e
      expect(e.body).to eq '{\n  \"errors\": [\n    \"UNAUTHORIZED\"\n  ]\n}'
      expect(e.status).to eq 401
    end
  end

  it 'raises a ServerError if the server raises a 500 error' do
    stub_request(:get, /.*\/summaries.*/)
      .to_return(status: 503, body: '{"type": "error", "status": 503, "message": "We messed up!"}', headers: {})
    expect { @client.summaries }.to raise_error(Wakatime::ServerError)

    # make sure status and body is
    # set on error object.
    begin
      @client.summaries
    rescue StandardError => e
      expect(e.body).to eq '{"type": "error", "status": 503, "message": "We messed up!"}' # TODO: establish what happens when wakatime returns a 500 or something else.
      expect(e.status).to eq 503
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wakatime-0.2.1 spec/session_spec.rb