diff options
author | Bradley Priest <bradleypriest@gmail.com> | 2017-05-27 21:47:07 +0800 |
---|---|---|
committer | Bradley Priest <bradleypriest@gmail.com> | 2017-05-27 21:58:35 +0800 |
commit | d83b8e65102d625c9024cd9a2727a10b0ef83b79 (patch) | |
tree | 7dbd0ce4b165494aeee9454bc4392f38aa251d7a /activerecord | |
parent | fcc47bcfccc7578aa0414710eecdad006085a911 (diff) | |
download | rails-d83b8e65102d625c9024cd9a2727a10b0ef83b79.tar.gz rails-d83b8e65102d625c9024cd9a2727a10b0ef83b79.tar.bz2 rails-d83b8e65102d625c9024cd9a2727a10b0ef83b79.zip |
Fix regression in Numericality validator where extra decimal places on
a user input for a decimal column were ignored by numerically validations
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/test/cases/validations_test.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/activerecord/test/cases/validations_test.rb b/activerecord/test/cases/validations_test.rb index 5d9aa99497..a305aa295a 100644 --- a/activerecord/test/cases/validations_test.rb +++ b/activerecord/test/cases/validations_test.rb @@ -167,6 +167,20 @@ class ValidationsTest < ActiveRecord::TestCase assert topic.valid? end + def test_numericality_validation_checks_against_raw_value + klass = Class.new(Topic) do + def self.model_name + ActiveModel::Name.new(self, nil, "Topic") + end + attribute :wibble, :decimal, scale: 2, precision: 9 + validates_numericality_of :wibble, greater_than_or_equal_to: BigDecimal.new("97.18") + end + + assert_not klass.new(wibble: "97.179").valid? + assert_not klass.new(wibble: 97.179).valid? + assert_not klass.new(wibble: BigDecimal.new("97.179")).valid? + end + def test_acceptance_validator_doesnt_require_db_connection klass = Class.new(ActiveRecord::Base) do self.table_name = "posts" |