Sha256: 94a8eddc8a88b67d5d80120849429264af75732486405dacb7391ef8ef7f7d6c

Contents?: true

Size: 1.96 KB

Versions: 17

Compression:

Stored size: 1.96 KB

Contents

require 'support/capybara_app_helper'

RSpec.describe "Criteo Integration" do
  before do
    setup_app(action: :criteo) do |tracker|
      tracker.handler(:criteo, {
        set_account: '1234',
        set_customer_id: ->(env){ '4711' },
        set_site_type: ->(env){ 'm' },
        set_email: 'user@test.com'
      })
    end
    visit '/'
  end

  subject { page }

  it 'should include all the events' do
    # tracker_events
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"setAccount\",\"account\":\"1234\"});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"setSiteType\",\"type\":\"m\"});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"setCustomerId\",\"id\":\"4711\"});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"setEmail\",\"email\":\"user@test.com\"});"

    # events
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"viewItem\",\"item\":\"P001\"});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"viewList\",\"item\":[\"P001\",\"P002\"]});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"trackTransaction\",\"id\":\"id\",\"item\":{\"id\":\"P0038\",\"price\":\"6.54\",\"quantity\":1}});"
    expect(page.find("body")).to have_content "window.criteo_q.push({\"event\":\"viewBasket\",\"item\":[{\"id\":\"P001\",\"price\":\"6.54\",\"quantity\":1},{\"id\":\"P0038\",\"price\":\"2.99\",\"quantity\":1}]});"
  end

  describe 'adjust tracker position via options' do
    before do
      setup_app(action: :criteo) do |tracker|
        tracker.handler :criteo, { set_account: '1234', position: :head }
      end
      visit '/'
    end

    it "will be placed in the specified tag" do
     expect(page.find("body")).to_not have_content('criteo')
     expect(page.find("head")).to have_content("{\"event\":\"setAccount\",\"account\":\"1234\"}")
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
rack-tracker-1.13.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.12.1 spec/integration/criteo_integration_spec.rb
rack-tracker-1.12.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.11.2 spec/integration/criteo_integration_spec.rb
rack-tracker-1.11.1 spec/integration/criteo_integration_spec.rb
rack-tracker-1.11.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.10.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.9.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.8.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.7.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.6.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.5.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.4.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.3.1 spec/integration/criteo_integration_spec.rb
rack-tracker-1.3.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.2.0 spec/integration/criteo_integration_spec.rb
rack-tracker-1.1.0 spec/integration/criteo_integration_spec.rb