UNPKG

@gauf/tracker

Version:

Browser tracker with perfect customization

57 lines (45 loc) 1.14 kB
/* tslint:disable:no-console */ import Tracker from "@gauf/tracker"; import Emitter from "@gauf/tracker/emitter"; class MetricCustomEmitter extends Emitter { protected static emitter: string = "custom"; protected interval?: number; public activate() { this.interval = window.setInterval(() => this.emit("random", Math.random()) , 300); } public deactivate() { if (this.interval) { window.clearTimeout(this.interval); } } } describe("Custom emitter", () => { beforeEach(() => { console.log = jest.fn(); jest.useFakeTimers(); }); afterEach(() => { jest.clearAllTimers(); }); it("correct works with `MetricCustomEmitter`", () => { const url = "console://non-exists-urls"; const payload = { userId: 1 }; const tracker = new Tracker(url, { collector: { emitters: [ MetricCustomEmitter, ], }, }); tracker.activate(payload); jest.runOnlyPendingTimers(); expect(console.log).toHaveBeenCalledWith( expect.objectContaining({ metrics: expect.any(Array), payload, }), ); }); });