UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

100 lines (95 loc) 2.76 kB
import prepareActiveTimeEvent from '../prepare-active-time-event'; import { VERSION } from '../../config/config'; import { BlinkEvent } from '../../types'; import { Page } from '../../selectors/get-page-state'; describe('prepareActiveTimeEvent', () => { it('should format properly based on page state', () => { const id = 'dagbladet.no/123'; const page: Page = { id: 'default', state: { general: { pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', pageScrollMaxOffsetY: 500, pageScrollLatestOffsetY: 240, }, activeTime: { 'dagbladet.no/123': { id: 'dagbladet.no/123', url: 'https://www.dagbladet.no/a/123', activity: [ { type: 'start', time: new Date(6), }, { type: 'stop', time: new Date(10) }, ], }, }, screen: { events: [], }, }, }; const expected: BlinkEvent = { type: 'activeTime', pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', version: VERSION, id: 'dagbladet.no/123', article: { url: 'https://www.dagbladet.no/a/123', harvesterId: 'dagbladet.no/123', }, activeTime: 4, pageScrollLatestOffsetY: 240, pageScrollMaxOffsetY: 500, }; expect(prepareActiveTimeEvent({ id, page })).toEqual(expected); }); it('should work even though it has no previous article preview', () => { const id = 'dagbladet.no/123'; const page: Page = { id: 'default-page', state: { general: { pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', }, activeTime: { 'dagbladet.no/123': { id: 'dagbladet.no/123', url: 'https://www.dagbladet.no/a/123', activity: [ { type: 'start', time: new Date(6) }, { type: 'stop', time: new Date(10) }, ], }, }, screen: { events: [], }, }, }; const expected: BlinkEvent = { type: 'activeTime', pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', version: VERSION, id: 'dagbladet.no/123', article: { url: 'https://www.dagbladet.no/a/123', harvesterId: 'dagbladet.no/123', }, activeTime: 4, pageScrollMaxOffsetY: 0, pageScrollLatestOffsetY: 0, }; expect(prepareActiveTimeEvent({ id, page })).toEqual(expected); }); });