@aller/blink
Version:
A library for tracking user behaviour.
277 lines • 10.1 kB
JavaScript
"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