Sha256: 05031b20312f8ce718b063d3766b2b8409426dc56711b68bb8ca015fa576ae67

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

require 'support/capybara_app_helper'

RSpec.describe "Google Tag Manager Integration" do
  before do
    setup_app(action: :google_tag_manager) do |tracker|
      tracker.handler :google_tag_manager, { container: 'GTM-ABCDEF' }
    end
  end

  subject { page }

  it "embeds the script tag with tracking event from the controller action" do
    visit '/'
    expect(page.find("head")).to have_content 'GTM-ABCDEF'
    expect(page.find("head")).to have_content "dataLayer.push({\"click\":\"X\",\"price\":10}, {\"transactionProducts\":[{\"sku\":\"DD44\",\"name\":\"T-shirt\"},{\"sku\":\"DD66\",\"name\":\"Jeans\"}]});"
    expect(page.find("body")).to have_xpath '//body/noscript/iframe[@src="https://www.googletagmanager.com/ns.html?id=GTM-ABCDEF"]'
  end

  it "does not inject a dataLayer if no events are set " do
    visit '/?no_events=true'
    expect(page.find("head")).to have_content 'GTM-ABCDEF'
    expect(page.find("head")).to_not have_content "dataLayer.push("
    expect(page.find("body")).to have_xpath '//body/noscript/iframe[@src="https://www.googletagmanager.com/ns.html?id=GTM-ABCDEF"]'
  end

  it "embeds the turbolinks observer if requested" do
    visit '/'
    expect(page.find("head")).to_not have_content "turbolinks:load"
    setup_app(action: :google_tag_manager) do |tracker|
      tracker.handler :google_tag_manager, { container: 'GTM-ABCDEF', turbolinks: true }
    end
    visit '/'
    expect(page.find("head")).to have_content "turbolinks:load"
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rack-tracker-1.12.1 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.12.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.11.2 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.11.1 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.11.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.10.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.9.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.8.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.7.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.6.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.5.0 spec/integration/google_tag_manager_integration_spec.rb
rack-tracker-1.4.0 spec/integration/google_tag_manager_integration_spec.rb