UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

108 lines (101 loc) 2.95 kB
import prepareBoxEvent from '../prepare-box-event'; import { VERSION } from '../../config/config'; import { BlinkEvent } from '../../types'; import { Page } from '../../selectors/get-page-state'; describe('prepareBoxEvent', () => { it('should format properly based on state', () => { const id = 'cool-box-id'; const page: Page = { id: 'default', state: { general: { pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', userId: 'user5', }, box: { 'cool-box-id': { id: 'cool-box-id', title: 'A world class box title', height: 400, width: 600, }, }, inscreen: { 'cool-box-id': [ { type: 'start', time: new Date(2018, 0, 0, 0, 0) }, { type: 'stop', time: new Date(2018, 0, 0, 0, 1) }, ], 'ad-banner': [ { type: 'start', time: new Date(2018, 0, 0, 0, 0) }, { type: 'stop', time: new Date(2018, 0, 0, 0, 4) }, ], }, screen: { events: [] }, }, }; const expectedEvent: BlinkEvent = { type: 'box', pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', userId: 'user5', version: VERSION, id: 'cool-box-id', boxId: 'cool-box-id', inscreenTime: 60000, title: 'A world class box title', height: 400, width: 600, }; expect(prepareBoxEvent(page, id)).toEqual(expectedEvent); }); it('should format to error event if id not found', () => { const id = ''; const page: Page = { id: 'default', state: { general: { pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', abCookie: 34, commercialSegments: 'sport,soccer,gardening', referrer: 'www.dinside.no', userId: 'user5', }, box: { 'a-box-id': { id: 'a-box-id', url: 'https://www.dagbladet.no/box/best-box', }, }, inscreen: { 'some-other-box-id': [ { type: 'start', time: new Date(2018, 0, 0, 0, 0) }, { type: 'stop', time: new Date(2018, 0, 0, 0, 1) }, ], 'ad-banner': [ { type: 'start', time: new Date(2018, 0, 0, 0, 0) }, { type: 'stop', time: new Date(2018, 0, 0, 0, 4) }, ], }, }, }; const expectedEvent: BlinkEvent = { type: 'box', pageView: 'some-pageview-uuid', site: 'www.dagbladet.no', referrer: 'www.dinside.no', userId: 'user5', version: VERSION, id: 'error', boxId: 'error', inscreenTime: 0, title: undefined, height: 0, width: 0, }; expect(prepareBoxEvent(page, id)).toEqual(expectedEvent); }); });