File tree Expand file tree Collapse file tree 2 files changed +71
-4
lines changed Expand file tree Collapse file tree 2 files changed +71
-4
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,11 @@ var defaultConfig = {
62
62
}
63
63
} ;
64
64
65
+ // TODO(v3): change this to positiveOrDefault
66
+ function nonNegativeOrDefault ( value , defaultValue ) {
67
+ return helpers . isFinite ( value ) && value >= 0 ? value : defaultValue ;
68
+ }
69
+
65
70
module . exports = Scale . extend ( {
66
71
determineDataLimits : function ( ) {
67
72
var me = this ;
@@ -174,8 +179,8 @@ module.exports = Scale.extend({
174
179
var DEFAULT_MIN = 1 ;
175
180
var DEFAULT_MAX = 10 ;
176
181
177
- me . min = valueOrDefault ( tickOpts . min , me . min ) ;
178
- me . max = valueOrDefault ( tickOpts . max , me . max ) ;
182
+ me . min = nonNegativeOrDefault ( tickOpts . min , me . min ) ;
183
+ me . max = nonNegativeOrDefault ( tickOpts . max , me . max ) ;
179
184
180
185
if ( me . min === me . max ) {
181
186
if ( me . min !== 0 && me . min !== null ) {
@@ -211,8 +216,8 @@ module.exports = Scale.extend({
211
216
var reverse = ! me . isHorizontal ( ) ;
212
217
213
218
var generationOptions = {
214
- min : tickOpts . min ,
215
- max : tickOpts . max
219
+ min : nonNegativeOrDefault ( tickOpts . min ) ,
220
+ max : nonNegativeOrDefault ( tickOpts . max )
216
221
} ;
217
222
var ticks = me . ticks = generateTicks ( generationOptions , me ) ;
218
223
Original file line number Diff line number Diff line change @@ -477,6 +477,68 @@ describe('Logarithmic Scale tests', function() {
477
477
expect ( yScale . ticks [ tickCount - 1 ] ) . toBe ( 10 ) ;
478
478
} ) ;
479
479
480
+ it ( 'should ignore negative min and max options' , function ( ) {
481
+ var chart = window . acquireChart ( {
482
+ type : 'bar' ,
483
+ data : {
484
+ datasets : [ {
485
+ data : [ 1 , 1 , 1 , 2 , 1 , 0 ]
486
+ } ] ,
487
+ labels : [ ]
488
+ } ,
489
+ options : {
490
+ scales : {
491
+ yAxes : [ {
492
+ id : 'yScale' ,
493
+ type : 'logarithmic' ,
494
+ ticks : {
495
+ min : - 10 ,
496
+ max : - 1010 ,
497
+ callback : function ( value ) {
498
+ return value ;
499
+ }
500
+ }
501
+ } ]
502
+ }
503
+ }
504
+ } ) ;
505
+
506
+ var yScale = chart . scales . yScale ;
507
+ expect ( yScale . min ) . toBe ( 0 ) ;
508
+ expect ( yScale . max ) . toBe ( 2 ) ;
509
+ } ) ;
510
+
511
+ it ( 'should ignore invalid min and max options' , function ( ) {
512
+ var chart = window . acquireChart ( {
513
+ type : 'bar' ,
514
+ data : {
515
+ datasets : [ {
516
+ data : [ 1 , 1 , 1 , 2 , 1 , 0 ]
517
+ } ] ,
518
+ labels : [ ]
519
+ } ,
520
+ options : {
521
+ scales : {
522
+ yAxes : [ {
523
+ id : 'yScale' ,
524
+ type : 'logarithmic' ,
525
+ ticks : {
526
+ min : '' ,
527
+ max : false ,
528
+ callback : function ( value ) {
529
+ return value ;
530
+ }
531
+ }
532
+ } ]
533
+ }
534
+ }
535
+ } ) ;
536
+
537
+ var yScale = chart . scales . yScale ;
538
+ expect ( yScale . min ) . toBe ( 0 ) ;
539
+ expect ( yScale . max ) . toBe ( 2 ) ;
540
+ } ) ;
541
+
480
542
it ( 'should generate tick marks' , function ( ) {
481
543
var chart = window . acquireChart ( {
482
544
type : 'bar' ,
You can’t perform that action at this time.
0 commit comments