diff --git a/__tests__/lib/event.spec.js b/__tests__/lib/event.spec.js index 5d04ae6..eda35db 100644 --- a/__tests__/lib/event.spec.js +++ b/__tests__/lib/event.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.use(VueAnalytics, { id: 'UA-1234-5' }) diff --git a/__tests__/lib/exception.spec.js b/__tests__/lib/exception.spec.js index e9b9eec..3307d91 100644 --- a/__tests__/lib/exception.spec.js +++ b/__tests__/lib/exception.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.config.errorHandler = jest.fn() Vue.use(VueAnalytics, { diff --git a/__tests__/lib/page.spec.js b/__tests__/lib/page.spec.js index 47f683d..0d80b6a 100644 --- a/__tests__/lib/page.spec.js +++ b/__tests__/lib/page.spec.js @@ -30,6 +30,8 @@ window.ga = jest.fn() let $vm beforeEach(done => { + window.ga.mockClear() + Vue.use(VueRouter) const router = new VueRouter({ diff --git a/__tests__/lib/require.spec.js b/__tests__/lib/require.spec.js index 1802f78..e1cebbd 100644 --- a/__tests__/lib/require.spec.js +++ b/__tests__/lib/require.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.use(VueAnalytics, { id: 'UA-1234-5' }) diff --git a/__tests__/lib/set.spec.js b/__tests__/lib/set.spec.js index 95655cf..7fbe3bf 100644 --- a/__tests__/lib/set.spec.js +++ b/__tests__/lib/set.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.use(VueAnalytics, { id: 'UA-1234-5' }) diff --git a/__tests__/lib/social.spec.js b/__tests__/lib/social.spec.js index c1e7d58..1d7e010 100644 --- a/__tests__/lib/social.spec.js +++ b/__tests__/lib/social.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.use(VueAnalytics, { id: 'UA-1234-5' }) diff --git a/__tests__/lib/time.spec.js b/__tests__/lib/time.spec.js index d26864b..e1d3487 100644 --- a/__tests__/lib/time.spec.js +++ b/__tests__/lib/time.spec.js @@ -6,6 +6,8 @@ window.ga = jest.fn() let $vm beforeEach(() => { + window.ga.mockClear() + Vue.use(VueAnalytics, { id: 'UA-1234-5' }) diff --git a/src/lib/page.js b/src/lib/page.js index 6543752..d2e77d0 100644 --- a/src/lib/page.js +++ b/src/lib/page.js @@ -25,25 +25,11 @@ export default function page (...args) { } if (route) { - const { - router, - autoTracking: { - transformQueryString, - prependBase - } - } = config - - const queryString = getQueryString(route.query) - const base = router && router.options.base - const needsBase = prependBase && base - - let path = route.path + (transformQueryString ? queryString : '') - path = needsBase ? getBasePath(base, path) : path - - set('page', path) - query('send', 'pageview') + trackRoute(route) } else { - set('page', args[0].page) + // We can call with `page('/my/path')` + let page = typeof args[0] === 'object' ? args[0].page : args[0] + set('page', page) query('send', 'pageview', ...args) } } @@ -68,7 +54,26 @@ export function trackRoute (route) { return } - page(proxy ? proxy(route) : route) + if (proxy) { + page(proxy(route)) + } else { + const { + router, + autoTracking: { + transformQueryString, + prependBase + } + } = config + + const queryString = getQueryString(route.query) + const base = router && router.options.base + const needsBase = prependBase && base + + let path = route.path + (transformQueryString ? queryString : '') + path = needsBase ? getBasePath(base, path) : path + + page(path) + } } export function autoTracking () {