UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

273 lines 9.03 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('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