@aller/blink
Version:
A library for tracking user behaviour.
108 lines (101 loc) • 2.95 kB
text/typescript
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);
});
});