vis.js is a dynamic, browser-based visualization library
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
2.1 KiB

  1. var assert = require('assert');
  2. var vis = require('../dist/vis');
  3. var jsdom = require('mocha-jsdom')
  4. var moment = vis.moment;
  5. var timeline = vis.timeline;
  6. var Range = timeline.Range;
  7. function buildSimpleBody() {
  8. var body = {
  9. dom: {
  10. center: {
  11. clientWidth: 1000
  12. }
  13. },
  14. domProps: this.props,
  15. emitter: {
  16. on: function() {},
  17. off: function() {},
  18. emit: function() {}
  19. },
  20. hiddenDates: [],
  21. util: {}
  22. };
  23. body.dom.rollingModeBtn = document.createElement('div');
  24. return body;
  25. }
  26. describe('Timeline Range', function () {
  27. jsdom();
  28. it('should have start default before now', function () {
  29. var now = moment().hours(0).minutes(0).seconds(0).milliseconds(0).valueOf();
  30. var range = new Range(buildSimpleBody());
  31. assert(range.start < now, "Default start is before now");
  32. });
  33. it('should have end default after now', function () {
  34. var now = moment().hours(0).minutes(0).seconds(0).milliseconds(0).valueOf();
  35. var range = new Range(buildSimpleBody());
  36. assert(range.end > now, "Default end is after now");
  37. });
  38. it('should support custom start and end dates', function () {
  39. var range = new Range(buildSimpleBody());
  40. range.setRange(new Date(2017, 0, 26, 13, 26, 3, 320), new Date(2017, 3, 11, 0, 23, 35, 0), false, false, null);
  41. assert.equal(range.start, new Date(2017, 0, 26, 13, 26, 3, 320).valueOf(), "start is as expected");
  42. assert.equal(range.end, new Date(2017, 3, 11, 0, 23, 35, 0).valueOf(), "end is as expected");
  43. });
  44. it('should calculate milliseconds per pixel', function () {
  45. var range = new Range(buildSimpleBody());
  46. assert(range.getMillisecondsPerPixel() > 0, "positive value for milliseconds per pixel");
  47. });
  48. it('should calculate 1 millisecond per pixel for simple range', function () {
  49. var range = new Range(buildSimpleBody());
  50. range.setRange(new Date(2017, 0, 26, 13, 26, 3, 320), new Date(2017, 0, 26, 13, 26, 4, 320), false, false, null);
  51. assert.equal(range.getMillisecondsPerPixel(), 1, "one second over 1000 pixels");
  52. });
  53. });