govuk_frontend_toolkit 4.2.0 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ # 4.2.1
2
+
3
+ - Track download links using events not pageviews
4
+
1
5
  # 4.2.0
2
6
 
3
7
  - Add two analytics plugins for download and external link tracking
@@ -1 +1 @@
1
- 4.2.0
1
+ 4.2.1
@@ -12,9 +12,14 @@
12
12
  function trackDownload(evt) {
13
13
  var $link = getLinkFromEvent(evt),
14
14
  href = $link.attr('href'),
15
+ evtOptions = {transport: 'beacon'},
15
16
  linkText = $.trim($link.text());
16
17
 
17
- GOVUK.analytics.trackPageview(href, linkText, {transport: 'beacon'});
18
+ if (linkText) {
19
+ evtOptions.label = linkText;
20
+ }
21
+
22
+ GOVUK.analytics.trackEvent('Download Link Clicked', href, evtOptions);
18
23
  }
19
24
 
20
25
  function getLinkFromEvent(evt) {
@@ -1,6 +1,7 @@
1
1
  #!/bin/bash
2
2
  set -e
3
3
 
4
+ bundle install
4
5
  npm install
5
6
  npm test
6
7
 
@@ -12,7 +13,7 @@ MASTER_SHA=`git rev-parse origin/master`
12
13
  HEAD_SHA=`git rev-parse HEAD`
13
14
  if [ "$MASTER_SHA" == "$HEAD_SHA" ]; then
14
15
  # get the version from the version file
15
- VERSION_TAG="v`cat VERSION.TXT`"
16
+ VERSION_TAG="v`cat VERSION.txt`"
16
17
 
17
18
  # check to make sure the tag doesn't already exist
18
19
  if ! git rev-parse $VERSION_TAG >/dev/null 2>&1; then
@@ -16,7 +16,7 @@ describe("GOVUK.analyticsPlugins.downloadLinkTracker", function() {
16
16
 
17
17
  $('html').on('click', function(evt) { evt.preventDefault(); });
18
18
  $('body').append($links);
19
- GOVUK.analytics = {trackPageview:function(){}};
19
+ GOVUK.analytics = {trackEvent:function(){}};
20
20
  GOVUK.analyticsPlugins.downloadLinkTracker({selector: 'a[href$=".pdf"], a[href$=".xslt"], a[href$=".doc"], a[href$=".png"]'});
21
21
  });
22
22
 
@@ -28,34 +28,37 @@ describe("GOVUK.analyticsPlugins.downloadLinkTracker", function() {
28
28
  });
29
29
 
30
30
  it('listens to clicks on links that match the selector', function() {
31
- spyOn(GOVUK.analytics, 'trackPageview');
31
+ spyOn(GOVUK.analytics, 'trackEvent');
32
32
 
33
33
  $('.download-links a').each(function() {
34
34
  $(this).trigger('click');
35
- expect(GOVUK.analytics.trackPageview).toHaveBeenCalled();
36
- GOVUK.analytics.trackPageview.calls.reset();
35
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalled();
36
+ GOVUK.analytics.trackEvent.calls.reset();
37
37
  });
38
38
 
39
39
  $('.normal-links a').each(function() {
40
40
  $(this).trigger('click');
41
- expect(GOVUK.analytics.trackPageview).not.toHaveBeenCalled();
42
- GOVUK.analytics.trackPageview.calls.reset();
41
+ expect(GOVUK.analytics.trackEvent).not.toHaveBeenCalled();
42
+ GOVUK.analytics.trackEvent.calls.reset();
43
43
  });
44
44
  });
45
45
 
46
46
  it('listens to click events on elements within download links', function() {
47
- spyOn(GOVUK.analytics, 'trackPageview');
47
+ spyOn(GOVUK.analytics, 'trackEvent');
48
48
 
49
49
  $('.download-links a img').trigger('click');
50
- expect(GOVUK.analytics.trackPageview).toHaveBeenCalledWith('/an/image/link.png', '', {transport: 'beacon'});
50
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith('Download Link Clicked', '/an/image/link.png', {transport: 'beacon'});
51
51
  });
52
52
 
53
- it('tracks a download link as a pageview with a custom title', function() {
54
- spyOn(GOVUK.analytics, 'trackPageview');
53
+ it('tracks a download link as an event with link text as the label', function() {
54
+ spyOn(GOVUK.analytics, 'trackEvent');
55
55
  $('.download-links a').trigger('click');
56
56
 
57
- expect(GOVUK.analytics.trackPageview).toHaveBeenCalledWith('/one.pdf', 'PDF', {transport: 'beacon'});
58
- expect(GOVUK.analytics.trackPageview).toHaveBeenCalledWith('/two.xslt', 'Spreadsheet', {transport: 'beacon'});
59
- expect(GOVUK.analytics.trackPageview).toHaveBeenCalledWith('/something/uploads/system/three.doc', 'Document', {transport: 'beacon'});
57
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
58
+ 'Download Link Clicked', '/one.pdf', {label: 'PDF', transport: 'beacon'});
59
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
60
+ 'Download Link Clicked', '/two.xslt', {label: 'Spreadsheet', transport: 'beacon'});
61
+ expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
62
+ 'Download Link Clicked', '/something/uploads/system/three.doc', {label: 'Document', transport: 'beacon'});
60
63
  });
61
64
  });
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_frontend_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0
4
+ version: 4.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-05 00:00:00.000000000 Z
12
+ date: 2015-08-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -290,7 +290,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
290
290
  version: '0'
291
291
  segments:
292
292
  - 0
293
- hash: 793058166375182819
293
+ hash: 1621947879198533180
294
294
  required_rubygems_version: !ruby/object:Gem::Requirement
295
295
  none: false
296
296
  requirements:
@@ -299,7 +299,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
299
299
  version: '0'
300
300
  segments:
301
301
  - 0
302
- hash: 793058166375182819
302
+ hash: 1621947879198533180
303
303
  requirements: []
304
304
  rubyforge_project:
305
305
  rubygems_version: 1.8.23