|
|
@ -0,0 +1,108 @@ |
|
|
|
var assert = require('assert'); |
|
|
|
|
|
|
|
describe('Timeline ItemSet', function () { |
|
|
|
before(function () { |
|
|
|
delete require.cache[require.resolve('../dist/vis')] |
|
|
|
this.jsdom = require('jsdom-global')(); |
|
|
|
this.vis = require('../dist/vis'); |
|
|
|
var TestSupport = require('./TestSupport'); |
|
|
|
var rangeBody = TestSupport.buildSimpleTimelineRangeBody(); |
|
|
|
this.testrange = new this.vis.timeline.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 this.vis.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 this.vis.timeline.components.ItemSet(body, {}); |
|
|
|
assert(itemset); |
|
|
|
}); |
|
|
|
|
|
|
|
it('should redraw() and have the right classNames', function () { |
|
|
|
var body = getBasicBody(); |
|
|
|
body.range = this.testrange; |
|
|
|
var itemset = new this.vis.timeline.components.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 this.vis.timeline.components.ItemSet(body, {}); |
|
|
|
assert.equal(itemset.getItems(), null); |
|
|
|
}); |
|
|
|
|
|
|
|
it('should store items correctly', function() { |
|
|
|
var body = getBasicBody(); |
|
|
|
body.range = this.testrange; |
|
|
|
var DateUtil = this.vis.timeline.DateUtil; |
|
|
|
body.util.toScreen = function(time) { |
|
|
|
return DateUtil.toScreen({ |
|
|
|
body: { |
|
|
|
hiddenDates: [] |
|
|
|
}, |
|
|
|
range: { |
|
|
|
conversion: function() { |
|
|
|
return {offset: 0, scale: 100}; |
|
|
|
} |
|
|
|
} |
|
|
|
}, time, 900) |
|
|
|
}; |
|
|
|
var itemset = new this.vis.timeline.components.ItemSet(body, {}); |
|
|
|
itemset.setItems(this.testitems); |
|
|
|
assert.equal(itemset.getItems().length, 2); |
|
|
|
assert.deepEqual(itemset.getItems(), this.testitems); |
|
|
|
}); |
|
|
|
}); |