Skip to content

Commit

Permalink
Include -with-hint event labels
Browse files Browse the repository at this point in the history
Cross domain tracking should behave the same way as
normal event tracking so include event labels including
the -with-hint prefix for parity.
  • Loading branch information
Steve Laing committed Oct 8, 2018
1 parent 5e0a973 commit 0b5e3bc
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 12 deletions.
27 changes: 17 additions & 10 deletions app/assets/javascripts/modules/track-radio-group.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,10 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};

var $checkedOption = $submittedForm.find('input:checked')

var checkedValue = $checkedOption.val();

if (typeof checkedValue === 'undefined') {
checkedValue = 'submitted-without-choosing'
}

GOVUK.analytics.trackEvent('Radio button chosen', checkedValue + (withHint ? '-with-hint' : ''), options)
GOVUK.analytics.trackEvent('Radio button chosen', eventTrackingValue($checkedOption, withHint), options)

if (typeof $submittedForm.attr('data-tracking-code') !== 'undefined') {
addCrossDomainTracking($submittedForm, $checkedOption, options)
addCrossDomainTracking($submittedForm, $checkedOption, options, withHint)
}
})
}
Expand All @@ -58,15 +52,28 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
}
}

function addCrossDomainTracking(element, $checkedOption, options) {
function eventTrackingValue(element, withHint) {
var value = element.val()

if (typeof value === 'undefined') {
value = 'submitted-without-choosing'
}

if (withHint) {
value += '-with-hint'
}
return value
}

function addCrossDomainTracking(element, $checkedOption, options, withHint) {
var code = element.attr('data-tracking-code')
var name = element.attr('data-tracking-name')
var url = $checkedOption.attr('data-tracking-url')
var hostname = $('<a>').prop('href', url).prop('hostname')
var eventOptions = $.extend({ 'trackerName': name }, options)

GOVUK.analytics.addLinkedTrackerDomain(code, name, hostname)
GOVUK.analytics.trackEvent('Radio button chosen', $checkedOption.val(), eventOptions)
GOVUK.analytics.trackEvent('Radio button chosen', eventTrackingValue($checkedOption, withHint), eventOptions)
}
}
})(window, window.GOVUK);
6 changes: 4 additions & 2 deletions spec/javascripts/track-radio-group.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,15 @@ describe('A radio group tracker', function () {
var $form, $radioInput

beforeEach(function () {
tracker.trackVerifyUser(element, { status: 'OK', value: true })

spyOn(GOVUK.analytics, 'addLinkedTrackerDomain')

var $form = element.find('form')
$form.attr('data-tracking-code', 'UA-xxxxxx')
$form.attr('data-tracking-name', 'testTracker')

var $radioInput = element.find('input[value="government-gateway"]')
var $radioInput = element.find('input[value="govuk-verify"]')
$radioInput.attr('data-tracking-url', 'https://test.service.gov.uk')

$radioInput.trigger('click')
Expand All @@ -176,7 +178,7 @@ describe('A radio group tracker', function () {

it('sends an event to the linked tracker', function() {
expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
'Radio button chosen', 'government-gateway', { trackerName: 'testTracker', transport: 'beacon' }
'Radio button chosen', 'govuk-verify-with-hint', { trackerName: 'testTracker', transport: 'beacon' }
)
})
})
Expand Down

0 comments on commit 0b5e3bc

Please sign in to comment.