var assert = require('assert');
|
|
var DataSet = require('../lib/DataSet');
|
|
var DateUtil = require('../lib/timeline/DateUtil');
|
|
var Range = require('../lib/timeline/Range');
|
|
var ItemSet = require('../lib/timeline/component/ItemSet');
|
|
|
|
|
|
describe('Timeline ItemSet', function () {
|
|
before(function () {
|
|
this.jsdom = require('jsdom-global')();
|
|
this.TestSupport = require('./TestSupport');
|
|
|
|
var rangeBody = this.TestSupport.buildSimpleTimelineRangeBody();
|
|
this.testrange = new Range(rangeBody);
|
|
this.testrange.setRange(new Date(2017, 1, 26, 13, 26, 3, 320), new Date(2017, 1, 26, 13, 26, 4, 320), false, false, null);
|
|
this.testitems = new DataSet({
|
|
type: {
|
|
start: 'Date',
|
|
end: 'Date'
|
|
}
|
|
});
|
|
// add single items with different date types
|
|
this.testitems.add({id: 1, content: 'Item 1', start: new Date(2017, 1, 26, 13, 26, 3, 600), type: 'point'});
|
|
this.testitems.add({id: 2, content: 'Item 2', start: new Date(2017, 1, 26, 13, 26, 5, 600), type: 'point'});
|
|
});
|
|
|
|
after(function () {
|
|
this.jsdom();
|
|
});
|
|
|
|
var getBasicBody = function() {
|
|
var body = {
|
|
dom: {
|
|
container: document.createElement('div'),
|
|
leftContainer: document.createElement('div'),
|
|
centerContainer: document.createElement('div'),
|
|
top: document.createElement('div'),
|
|
left: document.createElement('div'),
|
|
center: document.createElement('div'),
|
|
backgroundVertical: document.createElement('div')
|
|
},
|
|
domProps: {
|
|
root: {},
|
|
background: {},
|
|
centerContainer: {},
|
|
leftContainer: {},
|
|
rightContainer: {},
|
|
center: {},
|
|
left: {},
|
|
right: {},
|
|
top: {},
|
|
bottom: {},
|
|
border: {},
|
|
scrollTop: 0,
|
|
scrollTopMin: 0
|
|
},
|
|
emitter: {
|
|
on: function() {return {};},
|
|
emit: function() {}
|
|
},
|
|
util: {
|
|
}
|
|
};
|
|
return body;
|
|
};
|
|
|
|
it('should initialise with minimal data', function () {
|
|
var body = getBasicBody();
|
|
var itemset = new ItemSet(body, {});
|
|
assert(itemset);
|
|
});
|
|
|
|
it('should redraw() and have the right classNames', function () {
|
|
var body = getBasicBody();
|
|
body.range = this.testrange;
|
|
var itemset = new ItemSet(body, {});
|
|
itemset.redraw();
|
|
assert.equal(itemset.dom.frame.className, 'vis-itemset');
|
|
assert.equal(itemset.dom.background.className, 'vis-background');
|
|
assert.equal(itemset.dom.foreground.className, 'vis-foreground');
|
|
assert.equal(itemset.dom.axis.className, 'vis-axis');
|
|
assert.equal(itemset.dom.labelSet.className, 'vis-labelset');
|
|
});
|
|
|
|
it('should start with no items', function () {
|
|
var body = getBasicBody();
|
|
var itemset = new ItemSet(body, {});
|
|
assert.equal(itemset.getItems(), null);
|
|
});
|
|
|
|
it('should store items correctly', function() {
|
|
var body = getBasicBody();
|
|
body.range = this.testrange;
|
|
body.util.toScreen = function(time) {
|
|
return DateUtil.toScreen({
|
|
body: {
|
|
hiddenDates: []
|
|
},
|
|
range: {
|
|
conversion: function() {
|
|
return {offset: 0, scale: 100};
|
|
}
|
|
}
|
|
}, time, 900)
|
|
};
|
|
var itemset = new ItemSet(body, {});
|
|
itemset.setItems(this.testitems);
|
|
assert.equal(itemset.getItems().length, 2);
|
|
assert.deepEqual(itemset.getItems(), this.testitems);
|
|
});
|
|
});
|