Sha256: a2d3513d51cbf57fc867b7d14a8fa81b65bea9492d42ecaba6b54f82996b9797

Contents?: true

Size: 1.43 KB

Versions: 4

Compression:

Stored size: 1.43 KB

Contents

require 'spec_helper'

describe Trakio do

  subject { Trakio }

  after {
    Trakio.default_instance = nil
  }

  describe '#page_view' do

    context "when a url is specified" do
      context "when a title is specified" do
        it "tracks a page_view" do
          stub = stub_request(:post, "https://api.trak.io/v1/track").
            with(:body => {
              token: 'my_api_token',
              data: {
                time: /.+/,
                distinct_id: 'user@example.com',
                event: 'Page view',
                properties: {
                  title: 'Test Title',
                  url: 'http://test.test/test',
                }
              }
            }).to_return(:body => {
              status: 'success',
              trak_id: '1234567890'
            }.to_json)

          trakio = Trakio.new 'my_api_token'
          resp = trakio.page_view distinct_id: 'user@example.com', title: 'Test Title', url: 'http://test.test/test'

          expect(resp[:status]).to eql 'success'
          expect(resp[:trak_id]).to eql '1234567890'

          expect(stub).to have_been_requested
        end
      end
    end

    context "when a url is not specified" do
      it "raises an error" do
        trakio = Trakio.new 'my_api_token'
        expect {
          trakio.page_view distinct_id: 'user@example.com'
        }.to raise_error Trakio::Exceptions::InvalidParameter
      end
    end

  end  # end .page_view

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trakio-ruby-0.2.3 spec/trakio/page_view_spec.rb
trakio-ruby-0.2.2 spec/trakio/page_view_spec.rb
trakio-ruby-0.2.1 spec/trakio/page_view_spec.rb
trakio-ruby-0.2.0 spec/trakio/page_view_spec.rb