api.zoom-spec.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. describe('c3 api zoom', function () {
  2. 'use strict';
  3. var chart, args;
  4. beforeEach(function (done) {
  5. chart = window.initChart(chart, args, done);
  6. });
  7. describe('zoom', function () {
  8. beforeAll(function () {
  9. args = {
  10. data: {
  11. columns: [
  12. ['data1', 30, 200, 100, 400, 150, 250],
  13. ['data2', 50, 20, 10, 40, 15, 25],
  14. ['data3', 150, 120, 110, 140, 115, 125]
  15. ]
  16. },
  17. zoom: {
  18. enabled: true
  19. }
  20. };
  21. });
  22. it('should be zoomed properly', function () {
  23. var target = [3, 5], domain;
  24. chart.zoom(target);
  25. domain = chart.internal.x.domain();
  26. expect(domain[0]).toBe(target[0]);
  27. expect(domain[1]).toBe(target[1]);
  28. });
  29. it('should be zoomed properly again', function () {
  30. var target = [1, 4], domain;
  31. chart.zoom(target);
  32. domain = chart.internal.x.domain();
  33. expect(domain[0]).toBe(target[0]);
  34. expect(domain[1]).toBe(target[1]);
  35. });
  36. describe('with timeseries data', function () {
  37. beforeAll(function(){
  38. args = {
  39. data: {
  40. x: 'date',
  41. columns: [
  42. ['date', '2014-01-01', '2014-01-02', '2014-08-01', '2014-10-19'],
  43. ['data1', 30, 200, 100, 400]
  44. ]
  45. },
  46. axis: {
  47. x: {
  48. type: 'timeseries'
  49. }
  50. },
  51. zoom: {
  52. enabled: true
  53. }
  54. };
  55. });
  56. it('should be zoomed properly', function () {
  57. var target = [new Date(2014, 7, 1), new Date(2014, 8, 1)], domain;
  58. chart.zoom(target);
  59. domain = chart.internal.x.domain();
  60. expect(+domain[0]).toBe(+target[0]);
  61. expect(+domain[1]).toBe(+target[1]);
  62. });
  63. it('should be zoomed properly', function () {
  64. var target = ['2014-08-01', '2014-09-01'], domain;
  65. chart.zoom(target);
  66. domain = chart.internal.x.domain();
  67. expect(+domain[0]).toBe(+chart.internal.parseDate(target[0]));
  68. expect(+domain[1]).toBe(+chart.internal.parseDate(target[1]));
  69. });
  70. });
  71. });
  72. describe('unzoom', function () {
  73. beforeAll(function () {
  74. args = {
  75. data: {
  76. columns: [
  77. ['data1', 30, 200, 100, 400, 150, 250]
  78. ]
  79. },
  80. zoom: {
  81. enabled: true
  82. }
  83. };
  84. });
  85. it('should be unzoomed properly', function () {
  86. var target = [1, 4], orginal = chart.internal.x.domain(), domain;
  87. chart.zoom(target);
  88. domain = chart.internal.x.domain();
  89. expect(domain[0]).toBe(target[0]);
  90. expect(domain[1]).toBe(target[1]);
  91. chart.unzoom();
  92. domain = chart.internal.x.domain();
  93. expect(domain[0]).toBe(orginal[0]);
  94. expect(domain[1]).toBe(orginal[1]);
  95. });
  96. });
  97. });