* Fix chart crashing when max is defined but ticks are empty
* Adding spec to reproduce scale bounds calculation error
Co-authored-by: Kurt Preston <kpreston@drw.com>
if (maxDefined && includeBounds && niceMax !== max) {
// If the previous tick is too close to max, replace it with max, else add max
- if (almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {
+ if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {
ticks[ticks.length - 1].value = max;
} else {
ticks.push({value: max});
expect(chart.scales.y.max).toBe(150);
});
+ it('Should handle when only a max value is provided', () => {
+ var chart = window.acquireChart({
+ type: 'line',
+ data: {
+ datasets: [{
+ yAxisID: 'y',
+ data: [200]
+ }],
+ },
+ options: {
+ scales: {
+ y: {
+ type: 'linear',
+ max: 150
+ }
+ }
+ }
+ });
+
+ expect(chart.scales.y).not.toEqual(undefined); // must construct
+ expect(chart.scales.y.max).toBe(150);
+ });
+
it('Should correctly determine the max & min of string data values', function() {
var chart = window.acquireChart({
type: 'bar',