Fix min and max option checks in linear scales (#5209)

When 0, the min and max options was considered not being set, instead we should check for null or undefined.
This commit is contained in:
Colin 2018-07-29 17:09:16 +01:00 committed by Simon Brunel
parent 493eaa8424
commit 352268616b
2 changed files with 57 additions and 1 deletions

View File

@ -36,7 +36,7 @@ function generateTicks(generationOptions, dataRange) {
var niceMax = Math.ceil(dataRange.max / spacing) * spacing;
// If min, max and stepSize is set and they make an evenly spaced scale use it.
if (generationOptions.min && generationOptions.max && generationOptions.stepSize) {
if (!helpers.isNullOrUndef(generationOptions.min) && !helpers.isNullOrUndef(generationOptions.max) && generationOptions.stepSize) {
// If very close to our whole number, use it.
if (helpers.almostWhole((generationOptions.max - generationOptions.min) / generationOptions.stepSize, spacing / 1000)) {
niceMin = generationOptions.min;

View File

@ -965,4 +965,60 @@ describe('Linear Scale', function() {
expect(chart.scales['x-axis-0'].min).toEqual(20);
expect(chart.scales['x-axis-0'].max).toEqual(21);
});
it('min settings should be used if set to zero', function() {
var barData = {
labels: ['S1', 'S2', 'S3'],
datasets: [{
label: 'dataset 1',
backgroundColor: '#382765',
data: [2500, 2000, 1500]
}]
};
var chart = window.acquireChart({
type: 'horizontalBar',
data: barData,
options: {
scales: {
xAxes: [{
ticks: {
min: 0,
max: 3000
}
}]
}
}
});
expect(chart.scales['x-axis-0'].min).toEqual(0);
});
it('max settings should be used if set to zero', function() {
var barData = {
labels: ['S1', 'S2', 'S3'],
datasets: [{
label: 'dataset 1',
backgroundColor: '#382765',
data: [-2500, -2000, -1500]
}]
};
var chart = window.acquireChart({
type: 'horizontalBar',
data: barData,
options: {
scales: {
xAxes: [{
ticks: {
min: -3000,
max: 0
}
}]
}
}
});
expect(chart.scales['x-axis-0'].max).toEqual(0);
});
});