@@ -558,7 +558,65 @@ describe('validations', function() {
558558 } ) ;
559559
560560 describe ( 'numericality' , function ( ) {
561- it ( 'should validate numericality' ) ;
561+ it ( 'passes when given numeric values' , function ( ) {
562+ User . validatesNumericalityOf ( 'age' ) ;
563+ var user = new User ( { age : 10 } ) ;
564+ user . isValid ( ) . should . be . true ( ) ;
565+ } ) ;
566+
567+ it ( 'fails when given non-numeric values' , function ( ) {
568+ User . validatesNumericalityOf ( 'age' ) ;
569+ var user = new User ( { age : 'notanumber' } ) ;
570+ user . isValid ( ) . should . be . false ( ) ;
571+ user . errors . should . eql ( { age : [ 'is not a number' ] } ) ;
572+ } ) ;
573+
574+ it ( 'fails when given undefined values' , function ( ) {
575+ User . validatesNumericalityOf ( 'age' ) ;
576+ var u = new User ( { } ) ;
577+ u . isValid ( ) . should . be . false ( ) ;
578+ u . errors . should . eql ( { age : [ 'is blank' ] } ) ;
579+ } ) ;
580+
581+ it ( 'skips undefined values when allowBlank option is true' , function ( ) {
582+ User . validatesNumericalityOf ( 'age' , { allowBlank : true } ) ;
583+ var user = new User ( { } ) ;
584+ user . isValid ( ) . should . be . true ( ) ;
585+ } ) ;
586+
587+ it ( 'fails when given non-numeric values when allowBlank option is true' , function ( ) {
588+ User . validatesNumericalityOf ( 'age' , { allowBlank : true } ) ;
589+ var user = new User ( { age : 'test' } ) ;
590+ user . isValid ( ) . should . be . false ( ) ;
591+ user . errors . should . eql ( { age : [ 'is not a number' ] } ) ;
592+
593+ } ) ;
594+
595+ it ( 'fails when given null values' , function ( ) {
596+ User . validatesNumericalityOf ( 'age' ) ;
597+ var user = new User ( { age : null } ) ;
598+ user . isValid ( ) . should . be . false ( ) ;
599+ user . errors . should . eql ( { age : [ 'is null' ] } ) ;
600+ } ) ;
601+
602+ it ( 'passes when given null values when allowNull option is true' , function ( ) {
603+ User . validatesNumericalityOf ( 'age' , { allowNull : true } ) ;
604+ var user = new User ( { age : null } ) ;
605+ user . isValid ( ) . should . be . true ( ) ;
606+ } ) ;
607+
608+ it ( 'passes when given float values' , function ( ) {
609+ User . validatesNumericalityOf ( 'age' ) ;
610+ var user = new User ( { age : 13.37 } ) ;
611+ user . isValid ( ) . should . be . true ( ) ;
612+ } ) ;
613+
614+ it ( 'fails when given non-integer values when int option is true' , function ( ) {
615+ User . validatesNumericalityOf ( 'age' , { int : true } ) ;
616+ var user = new User ( { age : 13.37 } ) ;
617+ user . isValid ( ) . should . be . false ( ) ;
618+ user . errors . should . eql ( { age : [ 'is not an integer' ] } ) ;
619+ } ) ;
562620 } ) ;
563621
564622 describe ( 'inclusion' , function ( ) {
0 commit comments