var DataSet = require('../lib/DataSet'); var Timeline = require('../lib/timeline/Timeline'); describe('Timeline', function () { before(function () { this.jsdom = require('jsdom-global')({ pretendToBeVisual: true }); global['Element'] = window.Element; global['requestAnimationFrame'] = function(cb) { cb(); }; }); after(function () { this.jsdom(); }); it('should not throw when updating data in close succession', function (done) { var timeline = new Timeline(document.createElement('div'), []); var events = [ {start: new Date(), id: 1}, {start: new Date(), id: 2} ]; timeline .setItems(new DataSet(events)); setTimeout(function() { timeline .setItems(new DataSet([ {start: new Date(), id: 3}, {start: new Date(), id: 4}, {start: new Date(), id: 5} ])); done(); }, 5); timeline .setSelection([events[0].id], {animation: false}); }); });