@aller/blink
Version:
A library for tracking user behaviour.
133 lines (127 loc) • 3.74 kB
text/typescript
import {
DFP_INSCREEN,
DFP_LOADED,
DFP_RENDERED,
SCROLL_OFFSET_TOP,
SCROLL_OFFSET_HEIGHT,
DFP_ADVERTISER_ID,
DFP_ADUNIT_PATH,
DFP_CAMPAIGN_ID,
DFP_CREATIVE_ID,
DFP_LINE_ITEM_ID,
DFP_NAME,
SCROLL_POS_AD_LOAD,
SCROLL_POS_INSCREEN_DFP,
SCROLL_POS_SLOT_RENDER_ENDED,
SCROLL_POS_SLOT_ONLOAD,
DFP_SIZE,
DFP_SOURCE_AGNOSTIC_CREATIVE_ID,
DFP_SOURCE_AGNOSTIC_LINE_ITEM_ID,
DFP_BIDDER,
} from '../consts';
import prepareAdEvent from '../prepare-ad-event';
import { VERSION } from '../../config/config';
import { BlinkEvent } from '../../types';
import { Page } from '../../selectors/get-page-state';
describe('Setup Ad Event Body', () => {
it('should format a typical event', () => {
const id = 'ad-banner';
const page: Page = {
id: 'default-page',
state: {
general: {
site: 'www.dagbladet.no',
pageView: '32be2425-907a-4f46-be45-cea8b00f5d7c',
userId: '40c2f93f-52bb-47a8-b7c2-e92b8f49df2c',
referrer: 'www.sol.no',
version: VERSION,
},
inscreen: {
'db.no/123': [
{ type: 'start', time: new Date(2018, 0, 0, 0) },
{ type: 'stop', time: new Date(2018, 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) },
],
},
inscreen0: {
'ad-banner': [
{ type: 'start', time: new Date(2018, 0, 0, 0, 1) },
{ type: 'stop', time: new Date(2018, 0, 0, 0, 4) },
],
},
screen: { events: [] },
ads: {
'ad-banner': {
id: 'ad-banner',
[ ]: 1,
[ ]: 1,
[ ]: 1,
[ ]: 1500,
[ ]: 300,
[ ]: 900,
[ ]: '/8578/dagbladet.no/forside',
[ ]: 500,
[ ]: 300,
[ ]: 1900,
[ ]: 'skyscraper-right',
[ ]: 2490,
[ ]: 1,
[ ]: 30,
[ ]: 40,
[ ]: [200],
[ ]: 901,
[ ]: 401,
[ ]: 'appnexus',
},
},
},
};
const expectedAdBody: BlinkEvent = {
// Typical data for all events
id: 'ad-banner',
adId: 'ad-banner',
pageView: '32be2425-907a-4f46-be45-cea8b00f5d7c',
type: 'ads',
userId: '40c2f93f-52bb-47a8-b7c2-e92b8f49df2c',
version: VERSION,
site: 'www.dagbladet.no',
referrer: 'www.sol.no',
// Ad specific data
inscreenTime: 240000,
inscreenTime0: 180000,
scroll: {
pos: {
adLoad: 2490,
inscreenDFP: 1,
slotRenderEnded: 30,
slotOnload: 40,
},
offsetTop: 1500,
offsetHeight: 300,
scrollHeight: 300,
},
dfp: {
inscreen: 1,
name: 'skyscraper-right',
advertiserId: 900,
campaignId: 500,
creativeId: 300,
adUnitPath: '/8578/dagbladet.no/forside',
rendered: 1,
loaded: 1,
lineItemId: 1900,
size: [200],
sourceAgnosticCreativeId: 901,
sourceAgnosticLineItemId: 401,
bidder: 'appnexus',
},
};
const utils = {
getScrollHeight: () => 300,
};
expect(prepareAdEvent({ id, page, utils })).toEqual(expectedAdBody);
});
});