react-timelines
Version:
149 lines (130 loc) • 4.65 kB
JavaScript
var _time = _interopRequireDefault(require("../time"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('createTime', function () {
describe('timelineWidth', function () {
it('calculates timelineWidth from start, end and scale', function () {
var _createTime = (0, _time.default)({
start: new Date('2017-01-01T00:00:00.000Z'),
end: new Date('2018-01-01T00:00:00.000Z'),
zoom: 10 // 10px === 1 day
}),
timelineWidth = _createTime.timelineWidth;
expect(timelineWidth).toBe(3650);
});
it('scale relates to pixel width of one day', function () {
var newYear = new Date('2017-01-01T00:00:00.000Z');
var newYearMidday = new Date('2017-01-01T12:00:00.000Z');
var _createTime2 = (0, _time.default)({
start: newYear,
end: newYearMidday,
zoom: 100
}),
timelineWidth = _createTime2.timelineWidth;
expect(timelineWidth).toBe(50);
});
it('uses viewportWidth if greater than daysZoomWidth', function () {
var newYear = new Date('2017-01-01T00:00:00.000Z');
var newYearMidday = new Date('2017-01-01T12:00:00.000Z');
var _createTime3 = (0, _time.default)({
start: newYear,
end: newYearMidday,
zoom: 1,
viewportWidth: 1000
}),
timelineWidth = _createTime3.timelineWidth;
expect(timelineWidth).toBe(1000);
});
it('minTimelineWidth ensures timelineWidth does not fall below minimum', function () {
var newYear = new Date('2017-01-01T00:00:00.000Z');
var newYearMidday = new Date('2017-01-01T12:00:00.000Z');
var _createTime4 = (0, _time.default)({
start: newYear,
end: newYearMidday,
zoom: 1,
viewportWidth: 500,
minWidth: 800
}),
timelineWidth = _createTime4.timelineWidth;
expect(timelineWidth).toBe(800);
});
});
describe('toX()', function () {
it('calculates correct x pixel position for given date (with pixel rounding)', function () {
var start = new Date('2017-01-01T00:00:00.000Z');
var end = new Date('2018-01-01T00:00:00.000Z');
var _createTime5 = (0, _time.default)({
start: start,
end: end,
zoom: 2
}),
toX = _createTime5.toX;
var nearMiddle = new Date('2017-07-01');
var notClamped = new Date('2020-01-01');
expect(toX(end)).toBe(730);
expect(toX(start)).toBe(0);
expect(toX(nearMiddle)).toBe(362);
expect(toX(notClamped)).toBe(2190);
});
});
describe('toStyleLeft()', function () {
it('returns style object with correct "left" property', function () {
var start = new Date('2017-01-01T00:00:00.000Z');
var firstOfJune = new Date('2017-06-01T12:34:56.000Z');
var end = new Date('2018-01-01T00:00:00.000Z');
var _createTime6 = (0, _time.default)({
start: start,
end: end,
zoom: 2
}),
toStyleLeft = _createTime6.toStyleLeft;
expect(toStyleLeft(start)).toEqual({
left: '0px'
});
expect(toStyleLeft(firstOfJune)).toEqual({
left: '303px'
});
expect(toStyleLeft(end)).toEqual({
left: '730px'
});
});
});
describe('toStyleLeftAndWidth()', function () {
it('returns style object with correct "left" and "width" property', function () {
var start = new Date('2017-01-01T00:00:00.000Z');
var firstOfJune = new Date('2017-06-01T12:34:56.000Z');
var end = new Date('2018-01-01T00:00:00.000Z');
var _createTime7 = (0, _time.default)({
start: start,
end: end,
zoom: 2
}),
toStyleLeftAndWidth = _createTime7.toStyleLeftAndWidth;
expect(toStyleLeftAndWidth(start, end)).toEqual({
left: '0px',
width: '730px'
});
expect(toStyleLeftAndWidth(firstOfJune, end)).toEqual({
left: '303px',
width: '427px'
});
});
});
describe('fromX', function () {
it('calculates the date from a given x value', function () {
var start = new Date('2017-01-01');
var firstOfDecember = new Date('2017-12-01');
var end = new Date('2018-01-01');
var _createTime8 = (0, _time.default)({
start: start,
end: end,
zoom: 2
}),
fromX = _createTime8.fromX,
toX = _createTime8.toX;
expect(fromX(toX(start))).toEqual(start);
expect(fromX(toX(firstOfDecember))).toEqual(firstOfDecember);
expect(fromX(toX(end))).toEqual(end);
});
});
});
;