@aller/blink
Version:
A library for tracking user behaviour.
273 lines • 9.03 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('Video start integration test', function () {
it('should not send a single video start event', 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',
});
blink.videoPlay({
videoId: '123',
playerId: 'test-player-id',
time: new Date(2),
position: 0,
volume: 100,
reason: 'autostart',
muted: false,
});
expect(mockSend.mock.calls.length).toBe(0);
});
it('should send a video play event for a single start and stop', 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',
});
blink.videoPlay({
videoId: '123',
playerId: 'test-player-id',
time: new Date(1),
position: 4,
volume: 100,
reason: 'autostart',
muted: true,
});
blink.playerShown({
playerId: 'test-player-id',
time: new Date(2),
position: 4,
volume: 100,
reason: 'viewable',
muted: true,
});
blink.videoStop({
videoId: '123',
playerId: 'test-player-id',
time: new Date(10),
reason: 'pause',
position: 10,
volume: 50,
muted: true,
});
expect(mockSend.mock.calls[0][0]).toEqual([
{
// generic fields
id: '123',
videoId: '123',
type: 'videoWatch',
pageView: 'the-pageview-id',
referrer: 'www.sol.no',
userId: 'xavier_no',
site: 'www.kk.no',
version: config_1.VERSION,
videoPlayPosition: 4,
videoStopPosition: 10,
videoPlayVolume: 100,
videoStopVolume: 50,
videoPlayReason: 'viewable',
videoStopReason: 'pause',
videoPlayMuted: true,
videoStopMuted: true,
activeTime: 8,
},
]);
});
it('should send event when the the video gets hidden', 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',
});
blink.videoPlay({
videoId: '123',
playerId: 'test-player-id',
time: new Date(1),
position: 4,
volume: 100,
reason: 'autostart',
muted: true,
});
blink.playerShown({
playerId: 'test-player-id',
time: new Date(2),
position: 4,
volume: 100,
reason: 'viewable',
muted: true,
});
blink.playerHidden({
playerId: 'test-player-id',
time: new Date(10),
reason: 'tabhide',
position: 10,
volume: 50,
muted: false,
});
expect(mockSend.mock.calls[0][0]).toEqual([
{
// generic fields
id: '123',
videoId: '123',
type: 'videoWatch',
pageView: 'the-pageview-id',
referrer: 'www.sol.no',
userId: 'xavier_no',
site: 'www.kk.no',
version: config_1.VERSION,
videoPlayPosition: 4,
videoStopPosition: 10,
videoPlayMuted: true,
videoStopMuted: false,
videoPlayVolume: 100,
videoStopVolume: 50,
videoPlayReason: 'viewable',
videoStopReason: 'tabhide',
activeTime: 8,
},
]);
});
it('should send events when user watches consecutive videos', 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',
});
blink.videoPlay({
videoId: '123',
playerId: 'test-player-id',
time: new Date(1),
position: 4,
volume: 100,
reason: 'autostart',
muted: true,
});
blink.playerShown({
playerId: 'test-player-id',
time: new Date(2),
position: 4,
volume: 100,
reason: 'viewable',
muted: true,
});
blink.videoStop({
videoId: '123',
playerId: 'test-player-id',
time: new Date(10),
reason: 'complete',
position: 10,
volume: 100,
muted: true,
});
blink.videoPlay({
videoId: '321',
playerId: 'test-player-id',
time: new Date(1),
reason: 'related-auto',
position: 4,
volume: 100,
muted: true,
});
blink.videoStop({
videoId: '321',
playerId: 'test-player-id',
time: new Date(10),
reason: 'complete',
position: 10,
volume: 100,
muted: true,
});
expect(mockSend.mock.calls[0][0]).toEqual([
{
// generic fields
id: '123',
videoId: '123',
type: 'videoWatch',
pageView: 'the-pageview-id',
referrer: 'www.sol.no',
userId: 'xavier_no',
site: 'www.kk.no',
version: config_1.VERSION,
videoPlayPosition: 4,
videoStopPosition: 10,
videoPlayMuted: true,
videoStopMuted: true,
videoPlayVolume: 100,
videoStopVolume: 100,
videoPlayReason: 'viewable',
videoStopReason: 'complete',
activeTime: 8,
},
]);
expect(mockSend.mock.calls[1][0]).toEqual([
{
// generic fields
id: '321',
videoId: '321',
type: 'videoWatch',
pageView: 'the-pageview-id',
referrer: 'www.sol.no',
userId: 'xavier_no',
site: 'www.kk.no',
version: config_1.VERSION,
videoPlayPosition: 4,
videoStopPosition: 10,
videoPlayMuted: true,
videoStopMuted: true,
videoPlayVolume: 100,
videoStopVolume: 100,
videoPlayReason: 'viewable',
videoStopReason: 'complete',
activeTime: 8,
},
]);
});
});
//# sourceMappingURL=video-watch.test.js.map