@aller/blink
Version:
A library for tracking user behaviour.
203 lines • 7.09 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var video_1 = __importDefault(require("../video"));
var actions_1 = require("../../actions");
describe('Video reducer', function () {
it('should have correct default state', function () {
var action = {
type: 'INVALID_ACTION',
};
expect(video_1.default(undefined, action)).toEqual({
events: [],
});
});
describe('PAGE_INIT', function () {
it('should flush state', function () {
var existingEvents = [
{
time: new Date(5),
type: 'start',
videoId: 'test-video-id',
muted: false,
reason: 'autostart',
position: 10,
volume: 99,
playerId: 'test-player-id',
},
];
var action = {
type: actions_1.PAGE_INIT,
payload: { url: 'https://dagbladet.no/' },
};
expect(video_1.default({ events: existingEvents }, action)).toEqual({
events: [],
});
});
});
describe('VIDEO_PLAY', function () {
it('should add a video start event to empty state', function () {
var action = {
type: actions_1.VIDEO_PLAY,
payload: {
time: new Date(5),
videoId: 'test-video-id',
muted: false,
reason: 'autostart',
position: 10,
volume: 99,
playerId: 'test-player-id',
},
};
var expectedEvents = [
{
time: new Date(5),
type: 'start',
videoId: 'test-video-id',
muted: false,
reason: 'autostart',
position: 10,
volume: 99,
playerId: 'test-player-id',
},
];
expect(video_1.default({ events: [] }, action)).toEqual({
events: expectedEvents,
});
});
it('should add a video start event to existing state', function () {
var action = {
type: actions_1.VIDEO_PLAY,
payload: {
time: new Date(5),
videoId: 'test-video-id',
reason: 'interaction',
muted: false,
volume: 90,
position: 50,
playerId: 'test-player-id',
},
};
var events = [
{
time: new Date(3),
type: 'stop',
videoId: 'test-video-id',
reason: 'complete',
muted: true,
volume: 50,
position: 20,
playerId: 'test-player-id',
},
];
expect(video_1.default({ events: events }, action)).toEqual({
events: [
{
time: new Date(3),
type: 'stop',
videoId: 'test-video-id',
reason: 'complete',
muted: true,
volume: 50,
position: 20,
playerId: 'test-player-id',
},
{
time: new Date(5),
type: 'start',
videoId: 'test-video-id',
reason: 'interaction',
muted: false,
volume: 90,
position: 50,
playerId: 'test-player-id',
},
],
});
});
});
describe('VIDEO_STOP', function () {
it('should add a video start event to empty state', function () {
var action = {
type: actions_1.VIDEO_STOP,
payload: {
time: new Date(5),
videoId: 'test-video-id',
muted: false,
reason: 'pause',
position: 10,
volume: 99,
playerId: 'test-player-id',
},
};
var expectedEvents = [
{
time: new Date(5),
type: 'stop',
videoId: 'test-video-id',
muted: false,
reason: 'pause',
position: 10,
volume: 99,
playerId: 'test-player-id',
},
];
expect(video_1.default({ events: [] }, action)).toEqual({
events: expectedEvents,
});
});
it('should add a video start event to existing state', function () {
var action = {
type: actions_1.VIDEO_STOP,
payload: {
time: new Date(5),
videoId: 'test-video-id',
reason: 'complete',
muted: false,
volume: 90,
position: 50,
playerId: 'test-player-id',
},
};
var events = [
{
time: new Date(3),
type: 'start',
videoId: 'test-video-id',
reason: 'autostart',
muted: true,
volume: 50,
position: 20,
playerId: 'test-player-id',
},
];
expect(video_1.default({ events: events }, action)).toEqual({
events: [
{
time: new Date(3),
type: 'start',
videoId: 'test-video-id',
reason: 'autostart',
muted: true,
volume: 50,
position: 20,
playerId: 'test-player-id',
},
{
time: new Date(5),
type: 'stop',
videoId: 'test-video-id',
reason: 'complete',
muted: false,
volume: 90,
position: 50,
playerId: 'test-player-id',
},
],
});
});
});
});
//# sourceMappingURL=video.test.js.map
;