Sha256: 7dac995c7e8b75c1fb76d046dac1cd4d0f7052e6b1fd656604454d389e895d79

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 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, /.*\/summary.*/).to_return(:status => 401, :body => '{\n  \"errors\": [\n    \"UNAUTHORIZED\"\n  ]\n}', :headers => {})
    lambda {@client.summary}.should raise_error( Wakatime::AuthError )

    # make sure status and body is
    # set on error object.
    begin
      @client.summary
    rescue Exception => e
      e.body.should == '{\n  \"errors\": [\n    \"UNAUTHORIZED\"\n  ]\n}'
      e.status.should == 401
    end
  end

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

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

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wakatime-0.0.1 spec/session_spec.rb