From 4382bf2c826aabba9807ce58f973a28db6f92f09 Mon Sep 17 00:00:00 2001 From: James Chan Date: Wed, 21 Jun 2023 23:06:40 +0100 Subject: [PATCH] Add ga4 link tracking to topic lists on services and information pages --- .../_grouped_links.html.erb | 2 +- .../services_and_information/index.html.erb | 2 +- .../services_and_information_browsing_spec.rb | 34 ++++++++++++++++++- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/views/services_and_information/_grouped_links.html.erb b/app/views/services_and_information/_grouped_links.html.erb index 051d284e1..ed423d58d 100644 --- a/app/views/services_and_information/_grouped_links.html.erb +++ b/app/views/services_and_information/_grouped_links.html.erb @@ -13,7 +13,7 @@ <% list_item_count = group.see_more_link ? group.examples.count + 1 : group.examples.count tracking_attributes = topic_list_tracking_attributes(list_item_count, group_index, 'navServicesInformationLinkClicked') - topic_list_component_params = topic_list_params(group.examples, tracking_attributes: tracking_attributes) + topic_list_component_params = topic_list_params(group.examples, list_index: group_index, tracking_attributes: tracking_attributes, list_count: grouped_links.count, list_title: group.title) if group.see_more_link link = group.see_more_link.clone diff --git a/app/views/services_and_information/index.html.erb b/app/views/services_and_information/index.html.erb index 8b431946f..8206990c5 100644 --- a/app/views/services_and_information/index.html.erb +++ b/app/views/services_and_information/index.html.erb @@ -10,6 +10,6 @@ } %> -
+
<%= render partial: 'grouped_links', locals: { grouped_links: grouped_links } %>
diff --git a/spec/features/services_and_information_browsing_spec.rb b/spec/features/services_and_information_browsing_spec.rb index ac7e80c1a..9a30e9115 100644 --- a/spec/features/services_and_information_browsing_spec.rb +++ b/spec/features/services_and_information_browsing_spec.rb @@ -34,7 +34,7 @@ scenario "includes tracking attributes on all links" do visit "/government/organisations/hm-revenue-customs/services-information" - expect(page).to have_selector('.browse-container[data-module="gem-track-click"]') + expect(page).to have_selector('.browse-container[data-module="gem-track-click ga4-link-tracker"]') within ".govuk-grid-row:first-child .app-c-topic-list" do content_item_link = page.first("li a") @@ -70,4 +70,36 @@ expect(data_options["dimension29"]).to eq(content_item_link.text) end end + + scenario "includes GA4 tracking attributes on all links" do + visit "/government/organisations/hm-revenue-customs/services-information" + + expect(page).to have_selector('.browse-container[data-module="gem-track-click ga4-link-tracker"]') + + within ".govuk-grid-row:first-child .app-c-topic-list" do + content_item_link = page.first("li a") + ga4_data = JSON.parse(content_item_link["data-ga4-link"]) + + expect(ga4_data["event_name"]).to eq "navigation" + expect(ga4_data["type"]).to eq "document list" + expect(ga4_data["index"]["index_link"]).to eq 1 + expect(ga4_data["index"]["index_section"]).to eq 1 + expect(ga4_data["index"]["index_section_count"]).to eq 2 + expect(ga4_data["index_total"]).to eq 5 + expect(ga4_data["section"]).to eq "Environmental permits" + end + + within ".govuk-grid-row:nth-child(2) .app-c-topic-list" do + content_item_link = page.first("li a") + ga4_data = JSON.parse(content_item_link["data-ga4-link"]) + + expect(ga4_data["event_name"]).to eq "navigation" + expect(ga4_data["type"]).to eq "document list" + expect(ga4_data["index"]["index_link"]).to eq 1 + expect(ga4_data["index"]["index_section"]).to eq 2 + expect(ga4_data["index"]["index_section_count"]).to eq 2 + expect(ga4_data["index_total"]).to eq 5 + expect(ga4_data["section"]).to eq "Waste" + end + end end