diff --git a/src/scales/scale.time.js b/src/scales/scale.time.js index 7d45602c1ae..14621ba7a8b 100644 --- a/src/scales/scale.time.js +++ b/src/scales/scale.time.js @@ -146,7 +146,8 @@ module.exports = function(Chart) { me.unit = unit; me.majorUnit = majorUnit; - var stepSize = timeOpts.stepSize || timeHelpers.determineStepSize(minTimestamp || dataMin, maxTimestamp || dataMax, unit, maxTicks); + var optionStepSize = helpers.valueOrDefault(timeOpts.stepSize, timeOpts.unitStepSize); + var stepSize = optionStepSize || timeHelpers.determineStepSize(minTimestamp || dataMin, maxTimestamp || dataMax, unit, maxTicks); me.ticks = timeHelpers.generateTicks({ maxTicks: maxTicks, min: minTimestamp, diff --git a/test/specs/global.deprecations.tests.js b/test/specs/global.deprecations.tests.js index 5eeded72580..253c49bf8a5 100644 --- a/test/specs/global.deprecations.tests.js +++ b/test/specs/global.deprecations.tests.js @@ -218,6 +218,35 @@ describe('Deprecations', function() { expect(Chart.helpers.callCallback).toBe(Chart.helpers.callback); }); }); + + describe('Time Axis: unitStepSize option', function() { + it('should use the stepSize property', function() { + var chart = window.acquireChart({ + type: 'line', + data: { + labels: ['2015-01-01T20:00:00', '2015-01-01T21:00:00'], + }, + options: { + scales: { + xAxes: [{ + id: 'time', + type: 'time', + time: { + unit: 'hour', + unitStepSize: 2 + } + }] + } + } + }); + + var ticks = chart.scales.time.ticks.map(function(tick) { + return tick.value; + }); + + expect(ticks).toEqual(['8PM', '10PM']); + }); + }); }); describe('Version 2.5.0', function() { diff --git a/test/specs/scale.time.tests.js b/test/specs/scale.time.tests.js index 86e0216e330..2b8c50ed969 100755 --- a/test/specs/scale.time.tests.js +++ b/test/specs/scale.time.tests.js @@ -282,6 +282,24 @@ describe('Time scale tests', function() { expect(ticks).toEqual(['Dec 28, 2014', 'Jan 4, 2015', 'Jan 11, 2015', 'Jan 18, 2015', 'Jan 25, 2015', 'Feb 2015', 'Feb 8, 2015', 'Feb 15, 2015']); }); + describe('config step size', function() { + it('should use the stepSize property', function() { + var mockData = { + labels: ['2015-01-01T20:00:00', '2015-01-01T21:00:00'], + }; + + var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('time')); + config.time.unit = 'hour'; + config.time.stepSize = 2; + + var scale = createScale(mockData, config); + scale.update(2500, 200); + var ticks = getTicksValues(scale.ticks); + + expect(ticks).toEqual(['8PM', '10PM']); + }); + }); + describe('when specifying limits', function() { var mockData = { labels: ['2015-01-01T20:00:00', '2015-01-02T20:00:00', '2015-01-03T20:00:00'],