govuk_frontend_toolkit 4.18.3 → 4.18.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/.gitignore +1 -0
  3. data/app/assets/CHANGELOG.md +5 -0
  4. data/app/assets/Gruntfile.js +21 -22
  5. data/app/assets/README.md +4 -0
  6. data/app/assets/VERSION.txt +1 -1
  7. data/app/assets/docs/javascript.md +29 -28
  8. data/app/assets/javascripts/govuk/analytics/analytics.js +37 -37
  9. data/app/assets/javascripts/govuk/analytics/download-link-tracker.js +21 -21
  10. data/app/assets/javascripts/govuk/analytics/error-tracking.js +19 -19
  11. data/app/assets/javascripts/govuk/analytics/external-link-tracker.js +23 -24
  12. data/app/assets/javascripts/govuk/analytics/google-analytics-universal-tracker.js +71 -70
  13. data/app/assets/javascripts/govuk/analytics/mailto-link-tracker.js +20 -21
  14. data/app/assets/javascripts/govuk/analytics/print-intent.js +19 -20
  15. data/app/assets/javascripts/govuk/modules.js +33 -32
  16. data/app/assets/javascripts/govuk/modules/auto-track-event.js +18 -18
  17. data/app/assets/javascripts/govuk/multivariate-test.js +83 -85
  18. data/app/assets/javascripts/govuk/primary-links.js +39 -38
  19. data/app/assets/javascripts/govuk/selection-buttons.js +57 -58
  20. data/app/assets/javascripts/govuk/shim-links-with-button-role.js +14 -15
  21. data/app/assets/javascripts/govuk/stick-at-top-when-scrolling.js +70 -70
  22. data/app/assets/javascripts/govuk/stop-scrolling-at-footer.js +74 -75
  23. data/app/assets/javascripts/govuk_toolkit.js +1 -1
  24. data/app/assets/javascripts/stageprompt.js +24 -25
  25. data/app/assets/javascripts/vendor/jquery/jquery.player.min.js +1 -1
  26. data/app/assets/package.json +10 -3
  27. data/app/assets/spec/manifest.js +2 -0
  28. data/app/assets/spec/support/console-runner.js +0 -1
  29. data/app/assets/spec/unit/analytics/analytics.spec.js +51 -47
  30. data/app/assets/spec/unit/analytics/download-link-tracker.spec.js +59 -51
  31. data/app/assets/spec/unit/analytics/error-tracking.spec.js +35 -30
  32. data/app/assets/spec/unit/analytics/external-link-tracker.spec.js +69 -61
  33. data/app/assets/spec/unit/analytics/google-analytics-universal-tracker.spec.js +129 -122
  34. data/app/assets/spec/unit/analytics/mailto-link-tracker.spec.js +55 -47
  35. data/app/assets/spec/unit/modules.spec.js +82 -78
  36. data/app/assets/spec/unit/modules/auto-track-event.spec.js +45 -40
  37. data/app/assets/spec/unit/multivariate-test.spec.js +150 -145
  38. data/app/assets/spec/unit/primary-links.spec.js +53 -47
  39. data/app/assets/spec/unit/selection-button.spec.js +701 -693
  40. data/app/assets/spec/unit/shim-links-with-button-role.spec.js +33 -28
  41. data/app/assets/spec/unit/show-hide-content.spec.js +5 -1
  42. data/app/assets/spec/unit/stick-at-top-when-scrolling.spec.js +104 -107
  43. metadata +2 -2
@@ -1,89 +1,93 @@
1
- describe('GOVUK Modules', function() {
2
- "use strict";
3
- var GOVUK = window.GOVUK;
4
-
5
- it('finds modules', function() {
6
- var module = $('<div data-module="a-module"></div>');
7
- $('body').append(module);
8
-
9
- expect(GOVUK.modules.find().length).toBe(1);
10
- expect(GOVUK.modules.find().eq(0).is('[data-module="a-module"]')).toBe(true);
11
- module.remove();
12
- });
13
-
14
- it('finds modules in a container', function() {
15
- var module = $('<div data-module="a-module"></div>'),
16
- container = $('<div></div>').append(module);
17
-
18
- expect(GOVUK.modules.find(container).length).toBe(1);
19
- expect(GOVUK.modules.find(container).eq(0).data('module')).toBe('a-module');
20
- });
21
-
22
- it('finds modules that are a container', function() {
23
- var module = $('<div data-module="a-module"></div>'),
24
- container = $('<div data-module="container-module"></div>').append(module);
25
-
26
- expect(GOVUK.modules.find(container).length).toBe(2);
27
- expect(GOVUK.modules.find(container).eq(0).data('module')).toBe('container-module');
28
- expect(GOVUK.modules.find(container).eq(1).data('module')).toBe('a-module');
29
- });
30
-
31
- describe('when a module exists', function() {
32
- var callback;
33
-
34
- beforeEach(function() {
35
- callback = jasmine.createSpy();
36
- GOVUK.Modules.TestAlertModule = function() {
37
- var that = this;
38
- that.start = function(element) {
39
- callback(element);
1
+ /* global describe it expect beforeEach afterEach jasmine */
2
+
3
+ var $ = window.jQuery
4
+
5
+ describe('GOVUK Modules', function () {
6
+ 'use strict'
7
+ var GOVUK = window.GOVUK
8
+
9
+ it('finds modules', function () {
10
+ var module = $('<div data-module="a-module"></div>')
11
+ $('body').append(module)
12
+
13
+ expect(GOVUK.modules.find().length).toBe(1)
14
+ expect(GOVUK.modules.find().eq(0).is('[data-module="a-module"]')).toBe(true)
15
+ module.remove()
16
+ })
17
+
18
+ it('finds modules in a container', function () {
19
+ var module = $('<div data-module="a-module"></div>')
20
+ var container = $('<div></div>').append(module)
21
+
22
+ expect(GOVUK.modules.find(container).length).toBe(1)
23
+ expect(GOVUK.modules.find(container).eq(0).data('module')).toBe('a-module')
24
+ })
25
+
26
+ it('finds modules that are a container', function () {
27
+ var module = $('<div data-module="a-module"></div>')
28
+ var container = $('<div data-module="container-module"></div>').append(module)
29
+
30
+ expect(GOVUK.modules.find(container).length).toBe(2)
31
+ expect(GOVUK.modules.find(container).eq(0).data('module')).toBe('container-module')
32
+ expect(GOVUK.modules.find(container).eq(1).data('module')).toBe('a-module')
33
+ })
34
+
35
+ describe('when a module exists', function () {
36
+ var callback
37
+
38
+ beforeEach(function () {
39
+ callback = jasmine.createSpy()
40
+ GOVUK.Modules.TestAlertModule = function () {
41
+ var that = this
42
+ that.start = function (element) {
43
+ callback(element)
40
44
  }
41
- };
42
- });
45
+ }
46
+ })
43
47
 
44
- afterEach(function() {
45
- delete GOVUK.Modules.TestAlertModule;
46
- });
48
+ afterEach(function () {
49
+ delete GOVUK.Modules.TestAlertModule
50
+ })
47
51
 
48
- it('starts modules within a container', function() {
49
- var module = $('<div data-module="test-alert-module"></div>'),
50
- container = $('<div></div>').append(module);
52
+ it('starts modules within a container', function () {
53
+ var module = $('<div data-module="test-alert-module"></div>')
54
+ var container = $('<div></div>').append(module)
51
55
 
52
- GOVUK.modules.start(container);
53
- expect(callback).toHaveBeenCalled();
54
- });
56
+ GOVUK.modules.start(container)
57
+ expect(callback).toHaveBeenCalled()
58
+ })
55
59
 
56
- it('does not start modules that are already started', function() {
57
- var module = $('<div data-module="test-alert-module"></div>'),
58
- container = $('<div></div>').append(module);
60
+ it('does not start modules that are already started', function () {
61
+ var module = $('<div data-module="test-alert-module"></div>')
62
+ $('<div></div>').append(module)
59
63
 
60
- GOVUK.modules.start(module);
61
- GOVUK.modules.start(module);
62
- expect(callback.calls.count()).toBe(1);
63
- });
64
+ GOVUK.modules.start(module)
65
+ GOVUK.modules.start(module)
66
+ expect(callback.calls.count()).toBe(1)
67
+ })
64
68
 
65
- it('passes the HTML element to the module\'s start method', function() {
66
- var module = $('<div data-module="test-alert-module"></div>'),
67
- container = $('<h1></h1>').append(module);
69
+ it('passes the HTML element to the module\'s start method', function () {
70
+ var module = $('<div data-module="test-alert-module"></div>')
71
+ var container = $('<h1></h1>').append(module)
68
72
 
69
- GOVUK.modules.start(container);
73
+ GOVUK.modules.start(container)
70
74
 
71
- var args = callback.calls.argsFor(0);
72
- expect(args[0].is('div[data-module="test-alert-module"]')).toBe(true);
73
- });
75
+ var args = callback.calls.argsFor(0)
76
+ expect(args[0].is('div[data-module="test-alert-module"]')).toBe(true)
77
+ })
74
78
 
75
- it('starts all modules that are on the page', function() {
79
+ it('starts all modules that are on the page', function () {
76
80
  var modules = $(
77
- '<div data-module="test-alert-module"></div>\
78
- <strong data-module="test-alert-module"></strong>\
79
- <span data-module="test-alert-module"></span>'
80
- );
81
-
82
- $('body').append(modules);
83
- GOVUK.modules.start();
84
- expect(callback.calls.count()).toBe(3);
85
-
86
- modules.remove();
87
- });
88
- });
89
- });
81
+ '<div data-module="test-alert-module"></div>' +
82
+ '<strong data-module="test-alert-module"></strong>' +
83
+ '<span data-module="test-alert-module"></span>'
84
+ )
85
+
86
+ $('body').append(modules)
87
+ GOVUK.modules.start()
88
+ expect(callback.calls.count()).toBe(3)
89
+
90
+ modules.remove()
91
+ })
92
+ })
93
+ })
@@ -1,49 +1,54 @@
1
- describe('An auto event tracker', function() {
2
- "use strict";
1
+ /* global describe it expect beforeEach afterEach spyOn */
2
+
3
+ var $ = window.jQuery
4
+
5
+ describe('An auto event tracker', function () {
6
+ 'use strict'
7
+ var GOVUK = window.GOVUK
3
8
 
4
9
  var tracker,
5
- element;
10
+ element
6
11
 
7
- beforeEach(function() {
8
- GOVUK.analytics = {trackEvent: function() {}};
9
- tracker = new GOVUK.Modules.AutoTrackEvent();
10
- });
12
+ beforeEach(function () {
13
+ GOVUK.analytics = {trackEvent: function () {}}
14
+ tracker = new GOVUK.Modules.AutoTrackEvent()
15
+ })
11
16
 
12
- afterEach(function() {
13
- delete GOVUK.analytics;
14
- });
17
+ afterEach(function () {
18
+ delete GOVUK.analytics
19
+ })
15
20
 
16
- it('tracks non-interactive events on start', function() {
17
- spyOn(GOVUK.analytics, 'trackEvent');
21
+ it('tracks non-interactive events on start', function () {
22
+ spyOn(GOVUK.analytics, 'trackEvent')
18
23
 
19
- element = $('\
20
- <div \
21
- data-track-category="category"\
22
- data-track-action="action">\
23
- Some content\
24
- </div>\
25
- ');
24
+ element = $(
25
+ '<div ' +
26
+ 'data-track-category="category"' +
27
+ 'data-track-action="action">' +
28
+ 'Some content' +
29
+ '</div>'
30
+ )
26
31
 
27
- tracker.start(element);
32
+ tracker.start(element)
28
33
  expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
29
- 'category', 'action', {nonInteraction: 1});
30
- });
31
-
32
- it('can track non-interactive events with optional label and value', function() {
33
- spyOn(GOVUK.analytics, 'trackEvent');
34
-
35
- element = $('\
36
- <div \
37
- data-track-category="category"\
38
- data-track-action="action"\
39
- data-track-label="label"\
40
- data-track-value="10">\
41
- Some content\
42
- </div>\
43
- ');
44
-
45
- tracker.start(element);
34
+ 'category', 'action', {nonInteraction: 1})
35
+ })
36
+
37
+ it('can track non-interactive events with optional label and value', function () {
38
+ spyOn(GOVUK.analytics, 'trackEvent')
39
+
40
+ element = $(
41
+ '<div ' +
42
+ 'data-track-category="category"' +
43
+ 'data-track-action="action"' +
44
+ 'data-track-label="label"' +
45
+ 'data-track-value="10">' +
46
+ 'Some content' +
47
+ '</div>'
48
+ )
49
+
50
+ tracker.start(element)
46
51
  expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
47
- 'category', 'action', {label: 'label', value: 10, nonInteraction: 1});
48
- });
49
- });
52
+ 'category', 'action', {label: 'label', value: 10, nonInteraction: 1})
53
+ })
54
+ })
@@ -1,136 +1,142 @@
1
- describe("MultivariateTest", function() {
2
- beforeEach(function() {
3
- GOVUK.cookie = jasmine.createSpy('GOVUK.cookie');
4
- GOVUK.analytics = {setDimension:function(){}, trackEvent:function(){}};
5
- spyOn(GOVUK.analytics, "setDimension");
6
- spyOn(GOVUK.analytics, "trackEvent");
7
- });
1
+ /* global describe it expect beforeEach afterEach jasmine spyOn */
8
2
 
9
- afterEach(function() {
10
- delete GOVUK.analytics;
11
- });
3
+ var $ = window.jQuery
12
4
 
13
- describe("#run", function() {
14
- it("should pick a random cohort on first run", function() {
15
- GOVUK.cookie.and.returnValue(null);
16
- var fooSpy = jasmine.createSpy('fooSpy');
17
- var barSpy = jasmine.createSpy('barSpy');
18
- var test = new GOVUK.MultivariateTest({
5
+ describe('MultivariateTest', function () {
6
+ 'use strict'
7
+ var GOVUK = window.GOVUK
8
+
9
+ beforeEach(function () {
10
+ GOVUK.cookie = jasmine.createSpy('GOVUK.cookie')
11
+ GOVUK.analytics = {setDimension: function () {}, trackEvent: function () {}}
12
+ spyOn(GOVUK.analytics, 'setDimension')
13
+ spyOn(GOVUK.analytics, 'trackEvent')
14
+ })
15
+
16
+ afterEach(function () {
17
+ delete GOVUK.analytics
18
+ })
19
+
20
+ describe('#run', function () {
21
+ it('should pick a random cohort on first run', function () {
22
+ GOVUK.cookie.and.returnValue(null)
23
+ var fooSpy = jasmine.createSpy('fooSpy')
24
+ var barSpy = jasmine.createSpy('barSpy')
25
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
19
26
  name: 'stuff',
20
27
  cohorts: {
21
28
  foo: {callback: fooSpy},
22
29
  bar: {callback: barSpy}
23
30
  }
24
- });
31
+ })
25
32
 
26
- expect(GOVUK.cookie.calls.count()).toEqual(2);
27
- expect(GOVUK.cookie.calls.argsFor(1)[0]).toEqual('multivariatetest_cohort_stuff');
28
- if (GOVUK.cookie.calls.argsFor(1)[1] == 'foo') {
29
- expect(fooSpy).toHaveBeenCalled();
30
- }
31
- else {
32
- expect(barSpy).toHaveBeenCalled();
33
+ expect(GOVUK.cookie.calls.count()).toEqual(2)
34
+ expect(GOVUK.cookie.calls.argsFor(1)[0]).toEqual('multivariatetest_cohort_stuff')
35
+ if (GOVUK.cookie.calls.argsFor(1)[1] === 'foo') {
36
+ expect(fooSpy).toHaveBeenCalled()
37
+ } else {
38
+ expect(barSpy).toHaveBeenCalled()
33
39
  }
34
- });
40
+ })
35
41
 
36
- it("should use an existing cohort choice on subsequent runs", function() {
37
- GOVUK.cookie.and.returnValue('foo');
38
- var fooSpy = jasmine.createSpy('fooSpy');
39
- var barSpy = jasmine.createSpy('barSpy');
40
- var test = new GOVUK.MultivariateTest({
42
+ it('should use an existing cohort choice on subsequent runs', function () {
43
+ GOVUK.cookie.and.returnValue('foo')
44
+ var fooSpy = jasmine.createSpy('fooSpy')
45
+ var barSpy = jasmine.createSpy('barSpy')
46
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
41
47
  name: 'stuff',
42
48
  cohorts: {
43
49
  foo: {callback: fooSpy},
44
50
  bar: {callback: barSpy}
45
51
  }
46
- });
47
- expect(fooSpy).toHaveBeenCalled();
48
- });
52
+ })
53
+ expect(fooSpy).toHaveBeenCalled()
54
+ })
49
55
 
50
- it("should set a custom var with the name and cohort if one is defined", function() {
51
- GOVUK.cookie.and.returnValue('foo');
52
- var test = new GOVUK.MultivariateTest({
56
+ it('should set a custom var with the name and cohort if one is defined', function () {
57
+ GOVUK.cookie.and.returnValue('foo')
58
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
53
59
  name: 'stuff',
54
60
  cohorts: {
55
61
  foo: {},
56
62
  bar: {}
57
63
  },
58
64
  customDimensionIndex: 2
59
- });
65
+ })
60
66
  expect(GOVUK.analytics.setDimension).toHaveBeenCalledWith(
61
67
  2,
62
68
  'multivariatetest_cohort_stuff__foo'
63
- );
64
- });
69
+ )
70
+ })
65
71
 
66
- it("should be able to set multiple custom vars with the name and cohort if one is defined as an array", function() {
67
- GOVUK.cookie.and.returnValue('foo');
68
- var test = new GOVUK.MultivariateTest({
72
+ it('should be able to set multiple custom vars with the name and cohort if one is defined as an array', function () {
73
+ GOVUK.cookie.and.returnValue('foo')
74
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
69
75
  name: 'stuff',
70
76
  cohorts: {
71
77
  foo: {},
72
78
  bar: {}
73
79
  },
74
- customDimensionIndex: [2,3]
75
- });
80
+ customDimensionIndex: [2, 3]
81
+ })
76
82
  expect(GOVUK.analytics.setDimension).toHaveBeenCalledWith(
77
83
  2,
78
84
  'multivariatetest_cohort_stuff__foo'
79
- );
85
+ )
80
86
  expect(GOVUK.analytics.setDimension).toHaveBeenCalledWith(
81
87
  3,
82
88
  'multivariatetest_cohort_stuff__foo'
83
- );
84
- });
89
+ )
90
+ })
85
91
 
86
- it("should trigger an event to track that the test has been run", function() {
87
- GOVUK.cookie.and.returnValue('foo');
88
- var test = new GOVUK.MultivariateTest({
92
+ it('should trigger an event to track that the test has been run', function () {
93
+ GOVUK.cookie.and.returnValue('foo')
94
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
89
95
  name: 'stuff',
90
96
  cohorts: {
91
97
  foo: {},
92
98
  bar: {}
93
- },
94
- });
99
+ }
100
+ })
95
101
  expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
96
102
  'multivariatetest_cohort_stuff',
97
103
  'run',
98
- {nonInteraction:true}
99
- );
100
- });
104
+ {nonInteraction: true}
105
+ )
106
+ })
101
107
 
102
- it("should set html for a cohort", function() {
103
- GOVUK.cookie.and.returnValue('foo');
104
- var $el = $('<div>');
105
- var test = new GOVUK.MultivariateTest({
108
+ it('should set html for a cohort', function () {
109
+ GOVUK.cookie.and.returnValue('foo')
110
+ var $el = $('<div>')
111
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
106
112
  name: 'stuff',
107
113
  el: $el,
108
114
  cohorts: {
109
- foo: {html: "foo"},
110
- bar: {html: "bar"}
115
+ foo: {html: 'foo'},
116
+ bar: {html: 'bar'}
111
117
  }
112
- });
113
- expect($el.html()).toEqual('foo');
114
- });
118
+ })
119
+ expect($el.html()).toEqual('foo')
120
+ })
115
121
 
116
- it("should call the callback for a cohort", function() {
117
- var fooSpy = jasmine.createSpy('fooSpy');
118
- var barSpy = jasmine.createSpy('barSpy');
119
- GOVUK.cookie.and.returnValue('bar');
120
- var $el = $('<div>');
121
- var test = new GOVUK.MultivariateTest({
122
+ it('should call the callback for a cohort', function () {
123
+ var fooSpy = jasmine.createSpy('fooSpy')
124
+ var barSpy = jasmine.createSpy('barSpy')
125
+ GOVUK.cookie.and.returnValue('bar')
126
+ var $el = $('<div>')
127
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
122
128
  name: 'stuff',
123
129
  el: $el,
124
130
  cohorts: {
125
131
  foo: {callback: fooSpy},
126
132
  bar: {callback: barSpy}
127
133
  }
128
- });
129
- expect(barSpy).toHaveBeenCalled();
130
- });
134
+ })
135
+ expect(barSpy).toHaveBeenCalled()
136
+ })
131
137
 
132
- it("should call the callback for a cohort if it is a string", function() {
133
- GOVUK.cookie.and.returnValue('foo');
138
+ it('should call the callback for a cohort if it is a string', function () {
139
+ GOVUK.cookie.and.returnValue('foo')
134
140
  var test = new GOVUK.MultivariateTest({
135
141
  name: 'stuff',
136
142
  cohorts: {
@@ -138,120 +144,119 @@ describe("MultivariateTest", function() {
138
144
  bar: {}
139
145
  },
140
146
  runImmediately: false
141
- });
142
- test.fooCallback = jasmine.createSpy('fooCallback');
143
- test.run();
144
- expect(test.fooCallback).toHaveBeenCalled();
145
- });
147
+ })
148
+ test.fooCallback = jasmine.createSpy('fooCallback')
149
+ test.run()
150
+ expect(test.fooCallback).toHaveBeenCalled()
151
+ })
146
152
 
147
- it("should assign 30 if cookieDuration isn't defined", function() {
148
- GOVUK.cookie.and.returnValue('foo');
153
+ it("should assign 30 if cookieDuration isn't defined", function () {
154
+ GOVUK.cookie.and.returnValue('foo')
149
155
  var test = new GOVUK.MultivariateTest({
150
156
  name: 'cookie_duration_test',
151
157
  cohorts: {
152
- foo: {callback: function(){}}
158
+ foo: {callback: function () {}}
153
159
  }
154
- });
155
- expect(test.cookieDuration).toEqual(30);
156
- });
160
+ })
161
+ expect(test.cookieDuration).toEqual(30)
162
+ })
157
163
 
158
- it("should assign the user's cookie duration, when cookieDuration is defined", function() {
159
- GOVUK.cookie.and.returnValue('foo');
164
+ it("should assign the user's cookie duration, when cookieDuration is defined", function () {
165
+ GOVUK.cookie.and.returnValue('foo')
160
166
  var test = new GOVUK.MultivariateTest({
161
167
  name: 'cookie_duration_test',
162
168
  cookieDuration: 14,
163
169
  cohorts: {
164
- foo: {callback: function(){}}
170
+ foo: {callback: function () {}}
165
171
  }
166
- });
167
- expect(test.cookieDuration).toEqual(14);
168
- });
172
+ })
173
+ expect(test.cookieDuration).toEqual(14)
174
+ })
169
175
 
170
- it("should assign a new random cohort if the assigned cohort does not exist", function() {
171
- var fooSpy = jasmine.createSpy('fooSpy');
172
- var barSpy = jasmine.createSpy('barSpy');
173
- GOVUK.cookie.and.returnValue('baz');
174
- var test = new GOVUK.MultivariateTest({
176
+ it('should assign a new random cohort if the assigned cohort does not exist', function () {
177
+ var fooSpy = jasmine.createSpy('fooSpy')
178
+ var barSpy = jasmine.createSpy('barSpy')
179
+ GOVUK.cookie.and.returnValue('baz')
180
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
175
181
  name: 'stuff',
176
182
  cohorts: {
177
183
  foo: {callback: fooSpy},
178
184
  bar: {callback: barSpy}
179
185
  }
180
- });
181
- if (GOVUK.cookie.calls.argsFor(1)[1] == 'foo') {
182
- expect(fooSpy).toHaveBeenCalled();
183
- }
184
- else {
185
- expect(barSpy).toHaveBeenCalled();
186
+ })
187
+ if (GOVUK.cookie.calls.argsFor(1)[1] === 'foo') {
188
+ expect(fooSpy).toHaveBeenCalled()
189
+ } else {
190
+ expect(barSpy).toHaveBeenCalled()
186
191
  }
187
- });
188
- });
192
+ })
193
+ })
189
194
 
190
- describe("#weightedCohortNames", function() {
191
- it("should return the weighted names of the cohorts when no weights are defined", function() {
195
+ describe('#weightedCohortNames', function () {
196
+ it('should return the weighted names of the cohorts when no weights are defined', function () {
192
197
  var test = new GOVUK.MultivariateTest({
193
198
  name: 'stuff',
194
199
  cohorts: {foo: {}, bar: {}, baz: {}}
195
- });
196
- expect(test.weightedCohortNames()).toEqual(['foo', 'bar', 'baz']);
197
- });
200
+ })
201
+ expect(test.weightedCohortNames()).toEqual(['foo', 'bar', 'baz'])
202
+ })
198
203
 
199
- it("should return the weighted names of the cohorts when weights are defined", function() {
204
+ it('should return the weighted names of the cohorts when weights are defined', function () {
200
205
  var test = new GOVUK.MultivariateTest({
201
206
  name: 'stuff',
202
207
  cohorts: {foo: { weight: 2 }, bar: { weight: 1 }, baz: { weight: 3 }}
203
- });
204
- expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'baz', 'baz', 'baz']);
205
- });
208
+ })
209
+ expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'baz', 'baz', 'baz'])
210
+ })
206
211
 
207
- it("should return the weighted names of the cohorts using default weighting", function() {
212
+ it('should return the weighted names of the cohorts using default weighting', function () {
208
213
  var test = new GOVUK.MultivariateTest({
209
214
  name: 'stuff',
210
215
  defaultWeight: 2,
211
216
  cohorts: {foo: {}, bar: {}, baz: {}}
212
- });
213
- expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'bar', 'baz', 'baz']);
214
- });
217
+ })
218
+ expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'bar', 'baz', 'baz'])
219
+ })
215
220
 
216
- it("should return the weighted names of the cohorts using default weighting or defined weighting", function() {
221
+ it('should return the weighted names of the cohorts using default weighting or defined weighting', function () {
217
222
  var test = new GOVUK.MultivariateTest({
218
223
  name: 'stuff',
219
224
  defaultWeight: 2,
220
225
  cohorts: {foo: {}, bar: { weight: 1 }, baz: {}}
221
- });
222
- expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'baz', 'baz']);
223
- });
224
- });
226
+ })
227
+ expect(test.weightedCohortNames()).toEqual(['foo', 'foo', 'bar', 'baz', 'baz'])
228
+ })
229
+ })
225
230
 
226
- describe("#chooseRandomCohort", function() {
227
- it("should choose a random cohort", function() {
231
+ describe('#chooseRandomCohort', function () {
232
+ it('should choose a random cohort', function () {
228
233
  var test = new GOVUK.MultivariateTest({
229
234
  name: 'stuff',
230
235
  cohorts: {foo: {}, bar: {}}
231
- });
232
- expect(['foo', 'bar']).toContain(test.chooseRandomCohort());
236
+ })
237
+ expect(['foo', 'bar']).toContain(test.chooseRandomCohort())
233
238
  })
234
- });
239
+ })
235
240
 
236
- describe("Google Content Experiment Integration", function() {
237
- beforeEach(function() {
238
- window.ga = function() {};
239
- spyOn(window, 'ga');
240
- });
241
+ describe('Google Content Experiment Integration', function () {
242
+ beforeEach(function () {
243
+ window.ga = function () {}
244
+ spyOn(window, 'ga')
245
+ })
241
246
 
242
- it("should report the experiment data to Google", function() {
243
- var test = new GOVUK.MultivariateTest({
247
+ it('should report the experiment data to Google', function () {
248
+ new GOVUK.MultivariateTest({ // eslint-disable-line no-new
244
249
  name: 'stuff',
245
- contentExperimentId: "asdfsadasdfa",
246
- cohorts: {foo: {variantId: 0, weight: 1}, bar: {variantId: 1, weight: 0}}
247
- });
248
- expect(window.ga.calls.first().args).toEqual(['set', 'expId', 'asdfsadasdfa']);
249
- expect(window.ga.calls.mostRecent().args).toEqual(['set', 'expVar', 0]);
250
+ contentExperimentId: 'asdfsadasdfa',
251
+ cohorts: {foo: {variantId: 0, weight: 1}, bar: {variantId: 1, weight: 0}}
252
+ })
253
+ expect(window.ga.calls.first().args).toEqual(['set', 'expId', 'asdfsadasdfa'])
254
+ expect(window.ga.calls.mostRecent().args).toEqual(['set', 'expVar', 0])
250
255
  expect(GOVUK.analytics.trackEvent).toHaveBeenCalledWith(
251
256
  'multivariatetest_cohort_stuff',
252
257
  'run',
253
- {nonInteraction:true}
254
- );
255
- });
256
- });
257
- });
258
+ {nonInteraction: true}
259
+ )
260
+ })
261
+ })
262
+ })