diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-03-23 18:54:20 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-23 18:54:20 +0900 |
commit | 430b84195113ad38cbb024ff0377f85245a589ba (patch) | |
tree | 8ad704834a581b9dc478dab41b43c27f0a774eb9 /activerecord/test/cases | |
parent | 5851ac69e11fadcd3b4bf052f1d963a5803a2449 (diff) | |
parent | 3da0024db472b5697d4b6f17a9e4edefdf4d6a96 (diff) | |
download | rails-430b84195113ad38cbb024ff0377f85245a589ba.tar.gz rails-430b84195113ad38cbb024ff0377f85245a589ba.tar.bz2 rails-430b84195113ad38cbb024ff0377f85245a589ba.zip |
Merge pull request #35683 from Kukunin/master
Bugfix: Fix false autosave for has_one :through association
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/autosave_association_test.rb | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/activerecord/test/cases/autosave_association_test.rb b/activerecord/test/cases/autosave_association_test.rb index 54eb885f6a..1a0732c14b 100644 --- a/activerecord/test/cases/autosave_association_test.rb +++ b/activerecord/test/cases/autosave_association_test.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require "cases/helper" +require "models/author" require "models/bird" require "models/post" require "models/comment" @@ -1319,21 +1320,45 @@ end class TestAutosaveAssociationOnAHasOneThroughAssociation < ActiveRecord::TestCase self.use_transactional_tests = false unless supports_savepoints? - def setup - super + def create_member_with_organization organization = Organization.create - @member = Member.create - MemberDetail.create(organization: organization, member: @member) + member = Member.create + MemberDetail.create(organization: organization, member: member) + + member end def test_should_not_has_one_through_model - class << @member.organization + member = create_member_with_organization + + class << member.organization + def save(*args) + super + raise "Oh noes!" + end + end + assert_nothing_raised { member.save } + end + + def create_author_with_post_with_comment + Author.create! name: "David" # make comment_id not match author_id + author = Author.create! name: "Sergiy" + post = Post.create! author: author, title: "foo", body: "bar" + Comment.create! post: post, body: "cool comment" + + author + end + + def test_should_not_reversed_has_one_through_model + author = create_author_with_post_with_comment + + class << author.comment_on_first_post def save(*args) super raise "Oh noes!" end end - assert_nothing_raised { @member.save } + assert_nothing_raised { author.save } end end |