From 7ff36a42fabeb6f8d250f8edb2c89492a5752a78 Mon Sep 17 00:00:00 2001 From: Luke Melia Date: Fri, 4 Jun 2010 11:18:50 -0400 Subject: [PATCH] Failing test for issue with destroy via nested_attributes when association not loaded but subsequently is loaded --- activerecord/test/cases/nested_attributes_test.rb | 26 +++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/activerecord/test/cases/nested_attributes_test.rb b/activerecord/test/cases/nested_attributes_test.rb index 2202714..9aa817d 100644 --- a/activerecord/test/cases/nested_attributes_test.rb +++ b/activerecord/test/cases/nested_attributes_test.rb @@ -465,6 +465,17 @@ module NestedAttributesOnACollectionAssociationTests assert_equal 'Grace OMalley', @child_1.reload.name end + def test_should_updating_existing_records_when_association_loaded_after_updating_attributes_but_before_save + @pirate.reload + @pirate.send(association_setter, [{ :id => @child_1.id, :name => 'Grace OMalley' }]) + assert ! @pirate.send(@association_name).loaded? + + @pirate.send(@association_name).to_a + + @pirate.save + assert_equal 'Grace OMalley', @child_1.reload.name + end + def test_should_take_a_hash_with_composite_id_keys_and_assign_the_attributes_to_the_associated_models @child_1.stubs(:id).returns('ABC1X') @child_2.stubs(:id).returns('ABC2X') @@ -585,6 +596,21 @@ module NestedAttributesOnACollectionAssociationTests end assert_difference('@pirate.send(@association_name).count', -1) { @pirate.save } end + + def test_should_destroy_a_record_when_association_not_yet_loaded_and_is_later_loaded + @pirate.reload + record = @pirate.reload.send(@association_name).create!(:name => 'Grace OMalley') + @pirate.send(association_setter, + @alternate_params[association_getter].merge('baz' => { :id => record.id, '_destroy' => '1' }) + ) + assert ! @pirate.send(@association_name).loaded? + + @pirate.send(@association_name).to_a + + assert_difference('@pirate.send(@association_name).count', -1) do + @pirate.save + end + end def test_should_automatically_enable_autosave_on_the_association assert Pirate.reflect_on_association(@association_name).options[:autosave] -- 1.7.0.5