-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathtests.js
114 lines (92 loc) · 2.82 KB
/
tests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import Vue from 'vue'
import VueRouter from 'vue-router'
import VueYandexMetrika from '../src/index'
import config from '../src/config'
import * as helpers from '../src/helpers'
Vue.use(VueRouter)
const routes = [
{name: 'main', path: '/init', component: {render: h => h('div')}},
{name: 'test', path: '/test', component: {render: h => h('div')}}
]
const router = new VueRouter({mode: 'hash', routes})
// Yandex Metrika mock
global.Ya = {Metrika() {return {hit() {return}}}}
describe('checkConfig', () => {
it ('should throw an error if the Metrika id is missing', () => {
expect(() => {
Vue.use(VueYandexMetrika, {})
}).toThrowError()
})
})
describe('checkConfig', () => {
it ('manualMode notification', () => {
Vue.use(VueYandexMetrika, {id: 1})
})
})
describe('checkConfig', () => {
it ('should pass checkConfig', () => {
expect(() => {
Vue.use(VueYandexMetrika, {id: 1, router})
}).not.toThrowError()
})
})
describe('updateConfig', () => {
it ('env by default', () => {
helpers.updateConfig({})
expect(config.env).toBe('development')
})
})
describe('updateConfig', () => {
it ('env from plugin options', () => {
helpers.updateConfig({env: 'plugin'})
expect(config.env).toBe('plugin')
})
})
describe('tracking', () => {
it ('manualMode', () => {
helpers.updateConfig({id: 1})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
})
})
describe('tracking', () => {
it ('debug', () => {
helpers.updateConfig({id: 1, router, debug: true})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
})
})
describe('tracking', () => {
it ('development', () => {
helpers.updateConfig({id: 1, router, debug: false})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
})
})
describe('tracking', () => {
it ('skipSamePath', () => {
helpers.updateConfig({id: 1, router})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
router.push('/init') // init
router.push('/init#samePath') // triggers samePath
})
})
describe('tracking', () => {
it ('ignoreRoutes', () => {
helpers.updateConfig({id: 1, router, ignoreRoutes: ['test']})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
router.push('/init') // init
router.push('/test') // triggers ignoreRoutes
})
})
describe('tracking', () => {
it ('metrika.hit', () => {
helpers.updateConfig({id: 1, router})
var metrika = helpers.createMetrika(Vue)
helpers.startTracking(metrika)
router.push('/init') // init
router.push('/test') // triggers hit
})
})