aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/validations/presence_validation_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/cases/validations/presence_validation_test.rb')
-rw-r--r--activerecord/test/cases/validations/presence_validation_test.rb37
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