diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2017-02-28 18:12:48 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-28 18:12:48 -0500 |
commit | bae563a9e9dc04595f9fba2cffbde7fdcbc3c44a (patch) | |
tree | 0a8becdaa4566d09bbdc0528f4a45b86d524d8ad /activerecord | |
parent | 4f384678b639b924b481ec4959f9b93b9d34061c (diff) | |
parent | 6ff851886890b74ae31519bee86457e67c8a513a (diff) | |
download | rails-bae563a9e9dc04595f9fba2cffbde7fdcbc3c44a.tar.gz rails-bae563a9e9dc04595f9fba2cffbde7fdcbc3c44a.tar.bz2 rails-bae563a9e9dc04595f9fba2cffbde7fdcbc3c44a.zip |
Merge pull request #28210 from cefigueiredo/improve_required_test
Make required by default test for belongs_to association clearer
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/test/cases/associations/required_test.rb | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/activerecord/test/cases/associations/required_test.rb b/activerecord/test/cases/associations/required_test.rb index f8b686721e..45e1803858 100644 --- a/activerecord/test/cases/associations/required_test.rb +++ b/activerecord/test/cases/associations/required_test.rb @@ -22,14 +22,21 @@ class RequiredAssociationsTest < ActiveRecord::TestCase @connection.drop_table "children", if_exists: true end - test "belongs_to associations are not required by default" do - model = subclass_of(Child) do - belongs_to :parent, inverse_of: false, - class_name: "RequiredAssociationsTest::Parent" - end + test "belongs_to associations can be optional by default" do + begin + original_value = ActiveRecord::Base.belongs_to_required_by_default + ActiveRecord::Base.belongs_to_required_by_default = false + + model = subclass_of(Child) do + belongs_to :parent, inverse_of: false, + class_name: "RequiredAssociationsTest::Parent" + end - assert model.new.save - assert model.new(parent: Parent.new).save + assert model.new.save + assert model.new(parent: Parent.new).save + ensure + ActiveRecord::Base.belongs_to_required_by_default = original_value + end end test "required belongs_to associations have presence validated" do @@ -46,6 +53,27 @@ class RequiredAssociationsTest < ActiveRecord::TestCase assert record.save end + test "belongs_to associations can be required by default" do + begin + original_value = ActiveRecord::Base.belongs_to_required_by_default + ActiveRecord::Base.belongs_to_required_by_default = true + + model = subclass_of(Child) do + belongs_to :parent, inverse_of: false, + class_name: "RequiredAssociationsTest::Parent" + end + + record = model.new + assert_not record.save + assert_equal ["Parent must exist"], record.errors.full_messages + + record.parent = Parent.new + assert record.save + ensure + ActiveRecord::Base.belongs_to_required_by_default = original_value + end + end + test "has_one associations are not required by default" do model = subclass_of(Parent) do has_one :child, inverse_of: false, |