UNPKG

v-track

Version:

一个基于Vue指令的埋点插件

60 lines (55 loc) 1.2 kB
/* * @Author: 宋慧武 * @Date: 2019-04-13 22:00:04 * @Last Modified by: 宋慧武 * @Last Modified time: 2019-04-13 22:30:58 */ import Vue from "vue"; import VTrack from "@/"; import { mount, createLocalVue } from "@vue/test-utils"; const localVue = createLocalVue(); const mockTrackAction = jest.fn(({ status }) => status); const trackEvents = { 18015: mockTrackAction }; const Child = Vue.extend({ template: ` <div @click="$emit('expand', { status })" /> `, data() { return { status: true }; } }); const TrackCustomEventDelay = Vue.extend({ template: ` <child v-track:18015.expand.delay="handleExpand" /> `, components: { child: Child }, data() { return { status: false }; }, methods: { handleExpand({ status }) { this.status = status; } } }); localVue.use(VTrack, { trackEvents }); describe("TrackCustomEventDelay", () => { it("确保埋点在自定义事件之后上报", () => { const wrapper = mount(TrackCustomEventDelay, { localVue }); wrapper.find(Child).trigger("click"); expect(mockTrackAction).toBeTruthy(); expect(mockTrackAction).toBeCalledTimes(1); }); });