If `ticks.min` was set this would not set the range correctly.
Added a test to cover this case as well
});
}
- me.min = isFinite(me.min) ? me.min : DEFAULT_MIN;
- me.max = isFinite(me.max) ? me.max : DEFAULT_MAX;
+ me.min = isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;
+ me.max = isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;
// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero
this.handleTickRangeOptions();
}
}
+ var setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;
+ var setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;
+
if (tickOpts.min !== undefined) {
me.min = tickOpts.min;
} else if (tickOpts.suggestedMin !== undefined) {
}
}
+ if (setMin !== setMax) {
+ // We set the min or the max but not both.
+ // So ensure that our range is good
+ // Inverted or 0 length range can happen when
+ // ticks.min is set, and no datasets are visible
+ if (me.min >= me.max) {
+ if (setMin) {
+ me.max = me.min + 1;
+ } else {
+ me.min = me.max - 1;
+ }
+ }
+ }
+
if (me.min === me.max) {
me.max++;
expect(chart.scales['x-axis-0'].min).toEqual(0);
expect(chart.scales['x-axis-0'].max).toEqual(1);
});
+
+ it('max and min value should be valid when min is set and all datasets are hidden', function() {
+ var barData = {
+ labels: ['S1', 'S2', 'S3'],
+ datasets: [{
+ label: 'dataset 1',
+ backgroundColor: '#382765',
+ data: [2500, 2000, 1500],
+ hidden: true,
+ }]
+ };
+
+ var chart = window.acquireChart({
+ type: 'horizontalBar',
+ data: barData,
+ options: {
+ scales: {
+ xAxes: [{
+ ticks: {
+ min: 20
+ }
+ }]
+ }
+ }
+ });
+
+ expect(chart.scales['x-axis-0'].min).toEqual(20);
+ expect(chart.scales['x-axis-0'].max).toEqual(21);
+ });
});