UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

277 lines 10.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var main_1 = __importDefault(require("../main")); var config_1 = require("../config/config"); var get_mock_utils_1 = __importDefault(require("../mock/get-mock-utils")); var jest_mock_1 = __importDefault(require("jest-mock")); describe('Click intregration test', function () { it('should send a single click event for url click', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, persistState: function () { return null; }, utils: get_mock_utils_1.default, }); // First send of a pageInit event, to set the general state blink.pageInit({ url: 'http://some.site', pageView: 'the-pageview-id', referrer: 'www.sol.no', userId: 'xavier_no', site: 'www.kk.no', }); // Then send a article impression event, so we get the impression data blink.articlePreviewScreenEnter({ url: 'https://www.dagbladet.no/a/2313', title: 'Another day', height: 250, width: 480, position: 5, personalizationSystemUsed: 'cerebro', personalizationParametersRequested: 'xavier-pluss', time: new Date(1000), }); // The event we want to test blink.click({ url: 'https://www.dagbladet.no/a/2313', context: ['tag=a', 'tag=article&class=important'], }); expect(mockSend.mock.calls[0][0]).toEqual([ { id: 'dagbladet.no/2313', clickId: '', context: ['tag=a', 'tag=article&class=important'], type: 'click', pageView: 'the-pageview-id', referrer: 'www.sol.no', site: 'www.kk.no', userId: 'xavier_no', version: config_1.VERSION, article: { harvesterId: 'dagbladet.no/2313', url: 'https://www.dagbladet.no/a/2313', }, title: 'Another day', height: 250, width: 480, position: 5, personalizationSystemUsed: 'cerebro', personalizationParametersRequested: 'xavier-pluss', }, ]); expect(blink.getArticlePreview({ url: 'https://www.dagbladet.no/a/2313', time: new Date(2000), })).toEqual({ inscreenTime: 1000, height: 250, id: 'dagbladet.no/2313', personalizationSystemUsed: 'cerebro', personalizationParametersRequested: 'xavier-pluss', position: 5, title: 'Another day', url: 'https://www.dagbladet.no/a/2313', width: 480, clicked: true, }); }); it('should send a single click event for element clicked with id', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, persistState: function () { return null; }, utils: get_mock_utils_1.default, }); // First send of a pageInit event, to set the general state blink.pageInit({ url: 'http://some.site', pageView: 'the-pageview-id', referrer: 'www.kk.no', userId: 'xavier_no', site: 'www.dagbladet.no', }); // The event we want to test blink.click({ id: 'cta-modal-16166' }); expect(mockSend.mock.calls[0][0]).toEqual([ { type: 'click', clickId: 'cta-modal-16166', context: [], id: 'cta-modal-16166', pageView: 'the-pageview-id', referrer: 'www.kk.no', site: 'www.dagbladet.no', userId: 'xavier_no', version: config_1.VERSION, // Undefined things article: undefined, height: 0, personalizationParametersRequested: undefined, personalizationSystemUsed: undefined, position: undefined, title: undefined, width: 0, }, ]); }); it('should send a two click events for two elements clicked with id', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, persistState: function () { return null; }, utils: get_mock_utils_1.default, }); // First send of a pageInit event, to set the general state blink.pageInit({ url: 'http://some.site', pageView: 'the-pageview-id', referrer: 'www.kk.no', userId: 'xavier_no', site: 'www.dagbladet.no', }); // Click first element with id blink.click({ id: 'cta-modal-1' }); // Click second element with id blink.click({ id: 'cta-modal-2' }); expect(mockSend.mock.calls[0][0]).toEqual([ { type: 'click', clickId: 'cta-modal-1', id: 'cta-modal-1', context: [], pageView: 'the-pageview-id', referrer: 'www.kk.no', site: 'www.dagbladet.no', userId: 'xavier_no', version: config_1.VERSION, // Undefined things article: undefined, height: 0, personalizationParametersRequested: undefined, personalizationSystemUsed: undefined, position: undefined, title: undefined, width: 0, }, ]); expect(mockSend.mock.calls[1][0]).toEqual([ { type: 'click', clickId: 'cta-modal-2', id: 'cta-modal-2', context: [], pageView: 'the-pageview-id', referrer: 'www.kk.no', site: 'www.dagbladet.no', userId: 'xavier_no', version: config_1.VERSION, // Undefined things article: undefined, height: 0, personalizationParametersRequested: undefined, personalizationSystemUsed: undefined, position: undefined, title: undefined, width: 0, }, ]); }); it('should send two separate events for two separate pages', function () { var PAGES; (function (PAGES) { PAGES["FIRST"] = "FIRST_PAGE"; PAGES["SECOND"] = "SECOND_PAGE"; })(PAGES || (PAGES = {})); var mockSend = jest_mock_1.default.fn(); var mockSendDirect = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSendDirect, persistState: function () { return null; }, utils: get_mock_utils_1.default, }); // FIRST PAGE INIT blink.pageInit({ url: 'http://some.site', pageView: PAGES.FIRST + "-pageview", pageId: PAGES.FIRST, referrer: 'www.sol.no', userId: 'xavier_no', site: 'www.kk.no', }); // SECOND PAGE INIT blink.pageInit({ url: 'http://other.site', pageView: PAGES.SECOND + "-pageview", pageId: PAGES.SECOND, referrer: 'www.sol.no', userId: 'xavier_no', site: 'www.kk.no', }); // FIRST PAGE CLICK blink.click({ url: 'https://www.dagbladet.no/a/111', pageId: PAGES.FIRST, }); // FIRST PAGE CLICK blink.click({ url: 'https://www.dagbladet.no/a/222', pageId: PAGES.SECOND, }); expect(mockSend.mock.calls.length).toBe(0); expect(mockSendDirect.mock.calls.length).toBe(2); // Check first event var firstEvent = mockSendDirect.mock.calls[0][0][0]; expect(firstEvent).toEqual({ article: { harvesterId: 'dagbladet.no/111', url: 'https://www.dagbladet.no/a/111', }, personalizationParametersRequested: undefined, personalizationSystemUsed: undefined, position: undefined, userId: 'xavier_no', id: 'dagbladet.no/111', clickId: '', context: [], height: 0, pageView: 'FIRST_PAGE-pageview', referrer: 'www.sol.no', site: 'www.kk.no', type: 'click', title: undefined, version: config_1.VERSION, width: 0, }); // Check second event var secondEvent = mockSendDirect.mock.calls[1][0][0]; expect(secondEvent).toEqual({ userId: 'xavier_no', id: 'dagbladet.no/222', clickId: '', context: [], article: { harvesterId: 'dagbladet.no/222', url: 'https://www.dagbladet.no/a/222', }, height: 0, personalizationParametersRequested: undefined, personalizationSystemUsed: undefined, position: undefined, pageView: 'SECOND_PAGE-pageview', referrer: 'www.sol.no', site: 'www.kk.no', title: undefined, type: 'click', version: config_1.VERSION, width: 0, }); }); }); //# sourceMappingURL=click.test.js.map