diff options
Diffstat (limited to 'activerecord/test/cases/validations/presence_validation_test.rb')
-rw-r--r-- | activerecord/test/cases/validations/presence_validation_test.rb | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/activerecord/test/cases/validations/presence_validation_test.rb b/activerecord/test/cases/validations/presence_validation_test.rb index 691f10a635..868d111b8c 100644 --- a/activerecord/test/cases/validations/presence_validation_test.rb +++ b/activerecord/test/cases/validations/presence_validation_test.rb @@ -65,22 +65,6 @@ class PresenceValidationTest < ActiveRecord::TestCase assert_nothing_raised { s.valid? } end - def test_does_not_validate_presence_of_if_parent_record_is_validate_false - repair_validations(Interest) do - Interest.validates_presence_of(:topic) - interest = Interest.new - interest.save!(validate: false) - assert interest.persisted? - - man = Man.new(interest_ids: [interest.id]) - man.save! - - assert_equal man.interests.size, 1 - assert interest.valid? - assert man.valid? - end - end - def test_validates_presence_of_virtual_attribute_on_model repair_validations(Interest) do Interest.send(:attr_accessor, :abbreviation) @@ -95,4 +79,25 @@ class PresenceValidationTest < ActiveRecord::TestCase assert interest.invalid? end end + + def test_validations_run_on_persisted_record + repair_validations(Interest) do + interest = Interest.new + interest.save! + assert_predicate interest, :valid? + + Interest.validates_presence_of(:topic) + + assert_not_predicate interest, :valid? + end + end + + def test_validates_presence_with_on_context + repair_validations(Interest) do + Interest.validates_presence_of(:topic, on: :required_name) + interest = Interest.new + interest.save! + assert_not interest.valid?(:required_name) + end + end end |