Skip to content

Commit

Permalink
Merge pull request #41115 from ghiculescu/failing-test-on-ruby-master
Browse files Browse the repository at this point in the history
Fix test failing on ruby master
  • Loading branch information
gmcgibbon authored and kamipo committed Mar 15, 2021
1 parent 27bee74 commit a110646
Showing 1 changed file with 30 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,45 @@ def self.name
assert_predicate(subject, :valid?)
end

def test_virtual_attribute_with_precision
def test_virtual_attribute_with_precision_round_down
model_class.attribute(:virtual_decimal_number, :decimal, precision: 5)
model_class.validates_numericality_of(
:virtual_decimal_number, equal_to: 123.45
)

subject = model_class.new(virtual_decimal_number: 123.455)
subject = model_class.new(virtual_decimal_number: 123.454)

assert_predicate subject, :valid?
end

def test_virtual_attribute_with_precision_round_half_even
model_class.attribute(:virtual_decimal_number, :decimal, precision: 5)
model_class.validates_numericality_of(
:virtual_decimal_number, equal_to: 123.45
)

subject = model_class.new(virtual_decimal_number: 123.455)

if RUBY_VERSION > "3.0.0"
# BigDecimal's to_d behavior changed in BigDecimal 3.0.1, see https://github.com/ruby/bigdecimal/issues/70
# TODO: replace this with a check against BigDecimal::VERSION
assert_not_predicate subject, :valid?
else
assert_predicate subject, :valid?
end
end

def test_virtual_attribute_with_precision_round_up
model_class.attribute(:virtual_decimal_number, :decimal, precision: 5)
model_class.validates_numericality_of(
:virtual_decimal_number, equal_to: 123.45
)

subject = model_class.new(virtual_decimal_number: 123.456)

assert_not_predicate subject, :valid?
end

def test_virtual_attribute_with_scale
model_class.attribute(:virtual_decimal_number, :decimal, scale: 2)
model_class.validates_numericality_of(
Expand Down

0 comments on commit a110646

Please sign in to comment.