aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/autosave_association_test.rb
diff options
context:
space:
mode:
authorSean Griffin <sean@thoughtbot.com>2015-07-20 09:00:00 -0600
committerSean Griffin <sean@thoughtbot.com>2015-07-20 09:00:00 -0600
commitc0ef95a1c6db3095c4b5f80f8044fbbbdfebeff1 (patch)
treeaa9fc8ebdb6f6dd23cd34a702021825c42652ba4 /activerecord/test/cases/autosave_association_test.rb
parent9bd6e39b0cc65a3e534b55ab3239374239b19927 (diff)
downloadrails-c0ef95a1c6db3095c4b5f80f8044fbbbdfebeff1.tar.gz
rails-c0ef95a1c6db3095c4b5f80f8044fbbbdfebeff1.tar.bz2
rails-c0ef95a1c6db3095c4b5f80f8044fbbbdfebeff1.zip
Correctly ignore `mark_for_destruction` without `autosave`
As per the docs, `mark_for_destruction` should do nothing if `autosave` is not set to true. We normally persist associations on a record no matter what if the record is a new record, but we were always skipping records which were `marked_for_destruction?`. Fixes #20882
Diffstat (limited to 'activerecord/test/cases/autosave_association_test.rb')
-rw-r--r--activerecord/test/cases/autosave_association_test.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/test/cases/autosave_association_test.rb b/activerecord/test/cases/autosave_association_test.rb
index 6b69b96e21..37ec3f1106 100644
--- a/activerecord/test/cases/autosave_association_test.rb
+++ b/activerecord/test/cases/autosave_association_test.rb
@@ -1154,6 +1154,13 @@ class TestAutosaveAssociationOnAHasOneAssociation < ActiveRecord::TestCase
def test_should_not_load_the_associated_model
assert_queries(1) { @pirate.catchphrase = 'Arr'; @pirate.save! }
end
+
+ def test_mark_for_destruction_is_ignored_without_autosave_true
+ ship = ShipWithoutNestedAttributes.new(name: "The Black Flag")
+ ship.parts.build.mark_for_destruction
+
+ assert_not ship.valid?
+ end
end
class TestAutosaveAssociationOnAHasOneThroughAssociation < ActiveRecord::TestCase