diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-05-29 06:56:46 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-05-29 06:57:55 +0900 |
commit | 56429f1e4dd6c3fd8fcdee4a7abc1eff1ea142ee (patch) | |
tree | f724b1735778654f531d58231f12783487d8a5cc /activerecord/test/cases | |
parent | cfb493a3a311110a7b5bac6e0e74c6b5ead1040b (diff) | |
parent | d7a3f33dbd4726480fcbefc0c3c1270396f61fd2 (diff) | |
download | rails-56429f1e4dd6c3fd8fcdee4a7abc1eff1ea142ee.tar.gz rails-56429f1e4dd6c3fd8fcdee4a7abc1eff1ea142ee.tar.bz2 rails-56429f1e4dd6c3fd8fcdee4a7abc1eff1ea142ee.zip |
Merge pull request #32952 from mechanicles/32940-fix
Fix parent record should not get saved with duplicate children records
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/autosave_association_test.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/activerecord/test/cases/autosave_association_test.rb b/activerecord/test/cases/autosave_association_test.rb index 7355f4cd62..cf93d42942 100644 --- a/activerecord/test/cases/autosave_association_test.rb +++ b/activerecord/test/cases/autosave_association_test.rb @@ -27,6 +27,8 @@ require "models/member_detail" require "models/organization" require "models/guitar" require "models/tuning_peg" +require "models/topic" +require "models/reply" class TestAutosaveAssociationsInGeneral < ActiveRecord::TestCase def test_autosave_validation @@ -557,6 +559,22 @@ class TestDefaultAutosaveAssociationOnAHasManyAssociation < ActiveRecord::TestCa assert_equal no_of_clients + 1, Client.count end + def test_parent_should_not_get_saved_with_duplicate_children_records + Topic.delete_all + + content = "Best content" + reply1 = ValidateUniqueContentReply.new(content: content) + reply2 = ValidateUniqueContentReply.new(content: content) + + topic = Topic.new(validate_unique_content_replies: [reply1, reply2]) + + assert_not topic.save + assert topic.errors.any? + + assert_equal 0, Topic.count + assert_equal 0, ValidateUniqueContentReply.count + end + def test_invalid_build new_client = companies(:first_firm).clients_of_firm.build assert_not_predicate new_client, :persisted? |