| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import {trackPageChange} from './ga-helpers.js'; |
| |
| describe('trackPageChange', () => { |
| beforeEach(() => { |
| global.ga = sinon.spy(); |
| }); |
| |
| afterEach(() => { |
| global.ga.resetHistory(); |
| }); |
| |
| it('sets page title', () => { |
| trackPageChange('list'); |
| sinon.assert.calledWith(global.ga, 'set', 'title', 'Issue list'); |
| }); |
| |
| it('sets user page title', () => { |
| trackPageChange('user-anything'); |
| sinon.assert.calledWith(global.ga, 'set', 'title', 'A user page'); |
| }); |
| |
| it('sets user location', () => { |
| trackPageChange('user-anything'); |
| sinon.assert.calledWith(global.ga, 'set', 'location', 'A user page URL'); |
| }); |
| |
| it('defaults dimension1', () => { |
| trackPageChange('list'); |
| sinon.assert.calledWith(global.ga, 'set', 'dimension1', 'Not logged in'); |
| }); |
| |
| it('sets dimension1 based on userDisplayName', () => { |
| trackPageChange('list', 'somebody'); |
| sinon.assert.calledWith(global.ga, 'set', 'dimension1', 'Logged in'); |
| }); |
| |
| it('sends pageview', () => { |
| trackPageChange('list'); |
| sinon.assert.calledWith(global.ga, 'send', 'pageview'); |
| }); |
| }); |