Sha256: 8ef6df568450429b461f39b0ea9ad76bee569ed0a90be3f4b250d23a8d5eae2e

Contents?: true

Size: 1.72 KB

Versions: 2

Compression:

Stored size: 1.72 KB

Contents

require File.expand_path("../spec_helper", __FILE__)

describe Keen::HTTP::Async do
  let(:project_id) { "12345" }
  let(:write_key) { "abcdewrite" }
  let(:collection) { "users" }
  let(:api_url) { "https://fake.keen.io" }
  let(:event_properties) { { "name" => "Bob" } }
  let(:api_success) { { "created" => true } }

  describe "synchrony" do
    before do
      @client = Keen::Client.new(
        :project_id => project_id, :write_key => write_key,
        :api_url => api_url)
    end

    describe "success" do
      it "should post the event data" do
        stub_keen_post(api_event_resource_url(api_url, collection), 201, api_success)
        EM.synchrony {
          @client.publish_async(collection, event_properties)
          expect_keen_post(api_event_resource_url(api_url, collection), event_properties, "async", write_key)
          EM.stop
        }
      end

      it "should recieve the right response 'synchronously'" do
        stub_keen_post(api_event_resource_url(api_url, collection), 201, api_success)
        EM.synchrony {
          @client.publish_async(collection, event_properties).should == api_success
          EM.stop
        }
      end
    end

    describe "failure" do
      it "should raise an exception" do
        stub_request(:post, api_event_resource_url(api_url, collection)).to_timeout
        e = nil
        EM.synchrony {
          begin
            @client.publish_async(collection, event_properties).should == api_success
          rescue Exception => exception
            e = exception
          end
          e.class.should == Keen::HttpError
          e.message.should == "Keen IO Exception: HTTP em-synchrony publish_async error: WebMock timeout error"
          EM.stop
        }
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
keen-0.7.2 spec/synchrony/synchrony_spec.rb
keen-0.7.1 spec/synchrony/synchrony_spec.rb