Sha256: b01d04684f2309a39915d033d91eb8e68a73b8490c26580ec927581b77bda954

Contents?: true

Size: 1.17 KB

Versions: 11

Compression:

Stored size: 1.17 KB

Contents

require File.dirname(__FILE__) + '/../../../spec_helper.rb'
require 'rack/test'

describe Apphunkd::API::Service do
  include Rack::Test::Methods

  def app
    Apphunkd::API::Service
  end

  before(:each) do
    @queue = mock('Queue')
    Apphunkd.queue = @queue
  end

  it 'should be an instance of Sinatra::Base' do
    Apphunkd::API::Service.new.should be_kind_of(Sinatra::Base)
  end

  describe 'POST /api/messages' do
    it 'should store a message in the queue' do
      @queue.should_receive(:store).with("params" => 'test')
      post '/api/messages', :params => 'test'
    end
  
    it 'should return status 201 on success' do
      @queue.stub!(:store).and_return(true)
      post '/api/messages', :params => 'test'
      last_response.status.should eql(201)
    end
  
    it 'should return status 400 on failure' do
      @queue.stub!(:store).and_return(false)
      post '/api/messages'
      last_response.status.should eql(400)
    end
  end

  context 'error handling' do
    it 'should return status 404 not found' do
      post '/api/not-existing-resource'
      last_response.status.should eql(404)
      last_response.body.should include('Not found')
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
apphunkd-0.13.0 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.12.2 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.12.1 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.12.0 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.11.1 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.11.0 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.10.1 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.10.0 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.9.2 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.9.1 spec/lib/apphunkd/api/service_spec.rb
apphunkd-0.9.0 spec/lib/apphunkd/api/service_spec.rb