UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

270 lines 10 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 jest_mock_1 = __importDefault(require("jest-mock")); describe('PageLoad intregration test', function () { it('should send a single pageLoad event', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, }); blink.pageInit({ url: 'https://www.dagbladet.no/a/2313', pageType: '', pageView: 'new-pageview', previousPageView: 'prev-pv', referrer: 'www.sol.no', abCookie: 102, commercialSegments: 'sport,soccer,gardening', site: 'www.kk.no', }); blink.pageLoad({ url: 'https://www.dagbladet.no/a/2313', plussData: { hasAccess: true, customerNumber: '442' }, clientHeight: 800, clientWidth: 600, scrollHeight: 1800, }); expect(mockSend.mock.calls[0][0]).toEqual([ { id: 'dagbladet.no/2313', type: 'pageLoad', abCookie: 102, commercialSegments: 'sport,soccer,gardening', article: { harvesterId: 'dagbladet.no/2313', url: 'https://www.dagbladet.no/a/2313', }, pageType: '', pageView: 'new-pageview', previousPageView: 'prev-pv', plussData: { hasAccess: true, customerNumber: '442', }, referrer: 'www.sol.no', site: 'www.kk.no', scroll: { scrollHeight: 1800, }, version: config_1.VERSION, clientWidth: 600, clientHeight: 800, }, ]); }); it('should update the pageview, and flush the store', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, }); blink.pageInit({ url: 'https://www.dagbladet.no/a/2313', pageView: 'first-pageview', referrer: 'www.sol.no', site: 'www.dagbladet.no', }); blink.pageLoad({ url: 'https://www.dagbladet.no/a/2313', clientHeight: 550, clientWidth: 240, scrollHeight: 9001, plussData: { hasAccess: true, customerNumber: '442' }, }); // Do lots of events related to ads, activeTime and impressions blink.adScreenEnter({ id: 'top-banner', time: new Date(1) }); blink.pageActivityStart({ url: 'https://www.dagbladet.no/a/2313', pageScrollOffsetY: 340, time: new Date(2), }); blink.articlePreviewScreenEnter({ url: 'https://www.dinside.no/motor/kul-bil/49234', time: new Date(3), title: 'Kul bil', }); // Register a _new_ pageInit, mid session blink.pageInit({ url: 'https://www.dagbladet.no/a/2313', pageView: 'second-pageview', site: 'www.dagbladet.no', }); blink.pageLoad({ url: 'https://www.dagbladet.no/a/2313', plussData: { hasAccess: false, customerNumber: '', }, clientHeight: 550, clientWidth: 240, scrollHeight: 9001, }); var prevSentEvents = mockSend.mock.calls.length; // Send all events blink.sendAllEvents(new Date(10)); // Check that nothing is actually sent expect(mockSend.mock.calls.length).toBe(prevSentEvents); }); it('should create a new pageView for each pageInit, and update previous pageview', function () { var mockSend = jest_mock_1.default.fn(); var blink = main_1.default({ send: mockSend, sendDirect: mockSend, }); blink.pageInit({ url: 'https://www.dagbladet.no/', referrer: 'www.sol.no', site: 'www.dagbladet.no', }); var frontPage1 = blink.getPage({ url: 'https://www.dagbladet.no/' }); expect(frontPage1.pageView.length).toBe(36); blink.pageInit({ url: 'https://www.dagbladet.no/a/2313', referrer: 'https://www.dagbladet.no/', site: 'www.dagbladet.no', }); var articlePage = blink.getPage({ url: 'https://www.dagbladet.no/a/2313', }); expect(articlePage.pageView.length).toBe(36); expect(articlePage.pageView).not.toEqual(frontPage1.pageView); expect(articlePage.previousPageView).toEqual(frontPage1.pageView); blink.pageInit({ url: 'https://www.dagbladet.no/', referrer: 'https://www.dagbladet.no/a/2313', site: 'www.dagbladet.no', }); var frontPage2 = blink.getPage({ url: 'https://www.dagbladet.no/' }); expect(frontPage2.pageView.length).toBe(36); expect(frontPage2.pageView).not.toEqual(articlePage.pageView); expect(frontPage2.pageView).not.toEqual(frontPage1.pageView); expect(frontPage2.previousPageView).toEqual(articlePage.pageView); }); it('should send a separate pageLoad 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 blink = main_1.default({ send: mockSend, sendDirect: mockSend, }); // Init first page blink.pageInit({ pageId: PAGES.FIRST, url: 'https://www.dagbladet.no/a/2313', pageType: '', pageView: PAGES.FIRST + "-pageview", previousPageView: 'prev-pv', referrer: 'www.sol.no', abCookie: 1, commercialSegments: 'sport,soccer,gardening', site: 'www.kk.no', }); // Second page blink.pageInit({ pageId: PAGES.SECOND, url: 'https://www.kk.no/a/123', pageType: '', pageView: PAGES.SECOND + "-pageview", previousPageView: 'prev-pv', referrer: 'www.kk.no', abCookie: 2, commercialSegments: 'sport,soccer,gardening', site: 'www.kk.no', }); // Load first page blink.pageLoad({ pageId: PAGES.FIRST, url: 'https://www.dagbladet.no/a/2313', clientHeight: 550, clientWidth: 240, scrollHeight: 9001, plussData: { hasAccess: true, customerNumber: '442', }, }); // Load second page blink.pageLoad({ pageId: PAGES.SECOND, url: 'https://www.kk.no/a/123', clientHeight: 550, clientWidth: 240, scrollHeight: 9001, plussData: { hasAccess: false, customerNumber: '1234032042', }, }); expect(mockSend.mock.calls).toEqual([ [ [ { id: 'dagbladet.no/2313', type: 'pageLoad', abCookie: 1, commercialSegments: 'sport,soccer,gardening', article: { harvesterId: 'dagbladet.no/2313', url: 'https://www.dagbladet.no/a/2313', }, pageType: '', pageView: PAGES.FIRST + "-pageview", previousPageView: 'prev-pv', plussData: { hasAccess: true, customerNumber: '442', }, referrer: 'www.sol.no', site: 'www.kk.no', scroll: { scrollHeight: 9001, }, version: config_1.VERSION, clientWidth: 240, clientHeight: 550, }, ], ], [ [ { id: 'kk.no/123', type: 'pageLoad', abCookie: 2, commercialSegments: 'sport,soccer,gardening', article: { harvesterId: 'kk.no/123', url: 'https://www.kk.no/a/123', }, pageType: '', pageView: PAGES.SECOND + "-pageview", previousPageView: 'prev-pv', plussData: { hasAccess: false, customerNumber: '1234032042', }, referrer: 'www.kk.no', site: 'www.kk.no', scroll: { scrollHeight: 9001, }, version: config_1.VERSION, clientWidth: 240, clientHeight: 550, }, ], ], ]); }); }); //# sourceMappingURL=pageload.test.js.map