UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

158 lines (150 loc) 4.31 kB
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); }); });