UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

147 lines (131 loc) 3.61 kB
import createBlink from '../main'; import { VERSION } from '../config/config'; import jest from 'jest-mock'; describe('Send all intregration test', () => { it('should send all ad, activeTime, impression and video events', () => { const mockSend = jest.fn(); const mockSendDirect = jest.fn(); const blink = createBlink({ send: mockSend, sendDirect: mockSendDirect, }); // First send of a pageLoad event, to set the general state blink.pageInit({ url: 'http://some.site', pageView: 'the-pageview-id', referrer: 'www.sol.no', site: 'www.kk.no', }); blink.click({ url: 'https://www.dagbladet.no/a/2313' }); blink.adScreenEnter({ id: 'top-banner', time: new Date(1) }); blink.pageActivityStart({ url: 'https://www.dagbladet.no/a/2313', pageScrollOffsetY: 840, time: new Date(2), }); blink.playerShown({ playerId: '111', muted: true, position: 0, reason: 'viewable', time: new Date(2), volume: 30, }); blink.videoPlay({ videoId: 'video-123', playerId: '111', muted: true, position: 0, reason: 'autostart', time: new Date(4), volume: 30, }); blink.playerHidden({ playerId: '111', muted: true, position: 20, reason: 'tabclose', time: new Date(5), volume: 30, }); // Trigger the sending blink.sendAllEvents(new Date(5)); // We check the last thing sent, that should contain all events const lastCall = mockSendDirect.mock.calls[mockSendDirect.mock.calls.length - 1][0]; expect(lastCall.length).toBe(3); expect(lastCall.filter((ev: any) => ev.id === 'top-banner')[0]).toEqual({ id: 'top-banner', adId: 'top-banner', pageView: 'the-pageview-id', site: 'www.kk.no', type: 'ads', version: VERSION, dfp: { adUnitPath: 'N/A', advertiserId: 0, campaignId: 0, creativeId: 0, inscreen: 0, lineItemId: 0, name: 'N/A', size: [0], loaded: 0, rendered: 0, sourceAgnosticCreativeId: 0, sourceAgnosticLineItemId: 0, bidder: null, prebidWinningBid: '', }, inscreenTime: 4, inscreenTime0: 0, referrer: 'www.sol.no', scroll: { offsetHeight: 0, offsetTop: 0, pos: { adLoad: 0, inscreenDFP: 0, slotOnload: 0, slotRenderEnded: 0, }, }, }); expect( lastCall.filter((ev: any) => ev.id === 'dagbladet.no/2313')[0], ).toEqual({ activeTime: 3, id: 'dagbladet.no/2313', type: 'activeTime', pageView: 'the-pageview-id', referrer: 'www.sol.no', site: 'www.kk.no', version: VERSION, article: { harvesterId: 'dagbladet.no/2313', url: 'https://www.dagbladet.no/a/2313', }, pageScrollMaxOffsetY: 840, pageScrollLatestOffsetY: 840, }); expect(lastCall.filter((ev: any) => ev.id === 'video-123')[0]).toEqual({ id: 'video-123', videoId: 'video-123', type: 'videoWatch', activeTime: 1, pageView: 'the-pageview-id', referrer: 'www.sol.no', site: 'www.kk.no', version: VERSION, videoPlayMuted: true, videoPlayPosition: 0, videoPlayReason: 'autostart', videoPlayVolume: 30, videoStopMuted: true, videoStopPosition: 20, videoStopReason: 'tabclose', videoStopVolume: 30, videoSticky: false, }); }); });