Sha256: 889a17338a5a598ff8e0618129b2af796a81b8d11d232d590e6a931c5e43cc51

Contents?: true

Size: 1.88 KB

Versions: 2

Compression:

Stored size: 1.88 KB

Contents

require "spec_helper"

describe Copy::Request::Connection do
  let(:consumer_key) { '_your_consumen_key_' }
  let(:consumer_secret) { '_your_consumen_secret_' }
  let(:access_token) do
    {
      token: '_your_user_token_',
      secret: '_your_secret_token_'
    }
  end
  let(:connection) { Copy::Request::Connection.new(info) }
  let(:info) do
    Copy::Request::Info.new(:get, nil, 'user', {}, { session: session })
  end
  let(:client) { Copy::Client.new(session) }
  let(:session) { Copy::Session.new(access_token) }

  before :each do
    Copy.config do |configuration|
      configuration[:consumer_key] = consumer_key
      configuration[:consumer_secret] = consumer_secret
    end
  end

  describe "#set_request_data" do
    it "creates a request_data object" do
      connection.set_request_data

      expect(connection.request_data).to_not be_nil
    end
  end

  describe "#request" do
    it "performs the actual request" do
      connection.set_request_data
      connection.stub(:set_request_data)

      connection.access_token.should_receive(:send).with(*connection.request_data)

      connection.request
    end
  end

  describe "#request_data" do
    it "correctly formats the form data" do
      info = double(
        http_method: :post,
        url: "/some/path",
        data: params,
        subdomain: Copy::DOMAIN_BASE,
        session: session
      )
      connection = Copy::Request::Connection.new(info)
      connection.set_request_data

      connection.request_data.should eq(
        [ :post,
          "https://api.copy.com/some/path",
          "{\"email\":\"abc_abc.com\",\"event_types\":[\"user.created\",\"user.failed\",\"team.created\",\"documents.available\"]}",
          {"X-Api-Version"=>"1"}
        ]
      )
    end
  end

  def params
    {
      email: "abc_abc.com",
      event_types: ["user.created","user.failed", "team.created", "documents.available"]
    }
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
copy-ruby-0.0.2 spec/copy/request/connection_spec.rb
copy-ruby-0.0.1 spec/copy/request/connection_spec.rb