Skip to content

Commit

Permalink
Dont attach viewable to events if visibility is undefined
Browse files Browse the repository at this point in the history
  • Loading branch information
John Bartos committed Feb 21, 2017
1 parent 9998dfd commit c0a9e8f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/js/controller/events-middleware.js
Expand Up @@ -3,18 +3,20 @@ define([
'events/events',
], function (_, Events) {
return function middleware(model, type, currentState) {
var newState = {};
var newState = currentState;

switch (type) {
case Events.JWPLAYER_MEDIA_TIME:
case 'play':
case 'pause': {
var viewable = Math.round(model.get('visibility') || 0);
newState = _.extend({}, currentState, { viewable: viewable });
var visibility = model.get('visibility');
if (!_.isUndefined(visibility)) {
var viewable = Math.round(visibility);
newState = _.extend({}, currentState, { viewable: viewable });
}
break;
}
default: {
newState = currentState;
break;
}
}
Expand Down
7 changes: 7 additions & 0 deletions test/unit/events-middleware-test.js
Expand Up @@ -36,6 +36,13 @@ define([
assert.deepEqual(actual, expected);
});

test('should not add viewable if visibility is undefined', function (assert) {
var model = mockModel({ visibility: undefined });
var expected = { foo: 'bar' };
var actual = middleware(model, 'time', { foo: 'bar' });
assert.deepEqual(actual, expected);
});

test('does not modify original data when the type does not have a case', function (assert) {
var expected = { foo: 'bar' };
var actual = middleware(mockModel({}), 'cat', expected);
Expand Down

0 comments on commit c0a9e8f

Please sign in to comment.