@aller/blink
Version:
A library for tracking user behaviour.
158 lines (150 loc) • 4.31 kB
text/typescript
import prepareClickEvent from '../prepare-click-event';
import { VERSION } from '../../config/config';
import { BlinkEvent } from '../../types';
import { Page } from '../../selectors/get-page-state';
describe('prepareClickEvent', () => {
it('should format properly based on state if found as articlePreview', () => {
const url = 'https://www.dagbladet.no/a/123';
const page: Page = {
id: 'default-page',
state: {
general: {
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
},
articlePreview: {
'dagbladet.no/123': {
url: 'https://www.dagbladet.no/a/123',
harvesterId: 'dagbladet.no/123',
title:
'EM-stjerner gnir seg i øynene over Warholm-stunt: - Helt umenneskelig',
height: 380,
width: 376,
personalizationSystemUsed: 'cerebro',
personalizationParametersRequested: 'xavier-pluss',
position: 7,
},
},
},
};
const expected: BlinkEvent = {
type: 'click',
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
version: VERSION,
id: 'dagbladet.no/123',
clickId: '',
context: ['tag=a', 'tag=div&id=left-lane'],
article: {
harvesterId: 'dagbladet.no/123',
url: 'https://www.dagbladet.no/a/123',
},
title:
'EM-stjerner gnir seg i øynene over Warholm-stunt: - Helt umenneskelig',
height: 380,
width: 376,
personalizationSystemUsed: 'cerebro',
personalizationParametersRequested: 'xavier-pluss',
position: 7,
};
expect(
prepareClickEvent({
page,
url,
clickId: '',
externalId: 'dagbladet.no/123',
context: ['tag=a', 'tag=div&id=left-lane'],
}),
).toEqual(expected);
});
it('should not send article data if click id is present', () => {
const url = 'https://www.dagbladet.no/a/123';
const page: Page = {
id: 'default-page',
state: {
general: {
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
},
},
};
const expected: BlinkEvent = {
type: 'click',
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
version: VERSION,
id: 'mega-tag-id1',
clickId: 'mega-tag-id1',
context: ['tag=a', 'tag=div&id=left-lane'],
article: undefined,
title: undefined,
height: 0,
width: 0,
personalizationSystemUsed: undefined,
personalizationParametersRequested: undefined,
position: undefined,
};
expect(
prepareClickEvent({
page,
url,
clickId: 'mega-tag-id1',
externalId: '',
context: ['tag=a', 'tag=div&id=left-lane'],
}),
).toEqual(expected);
});
it('should format properly based on state if not found as articlePreview', () => {
const url = 'https://www.dagbladet.no/a/123';
const page: Page = {
id: 'default-page',
state: {
general: {
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
},
articlePreview: {},
},
};
const expected: BlinkEvent = {
type: 'click',
pageView: 'some-pageview-uuid',
site: 'www.dagbladet.no',
referrer: 'www.dinside.no',
userId: 'user5',
version: VERSION,
id: 'dagbladet.no/123',
clickId: '',
context: [],
article: {
harvesterId: 'dagbladet.no/123',
url: 'https://www.dagbladet.no/a/123',
},
title: undefined,
height: 0,
width: 0,
personalizationSystemUsed: undefined,
personalizationParametersRequested: undefined,
position: undefined,
};
expect(
prepareClickEvent({
page,
url,
clickId: '',
externalId: 'dagbladet.no/123',
context: [],
}),
).toEqual(expected);
});
});