Sha256: 07e496a6381dd9ccb0f633b40b048758e6f3dbf6271186dbd1c85c147072bcaa

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 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: '{ "errors": ["UNAUTHORIZED"]}', 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 "{ \"errors\": [\"UNAUTHORIZED\"]}"

      expect(e.status).to eq 401
      expect(e.message).to eq 'UNAUTHORIZED'
    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.2 spec/session_spec.rb