diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-19 17:10:06 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-06-19 17:10:06 -0300 |
commit | 9ce59f66490e753809b6942001a9ffa8bf385bc1 (patch) | |
tree | 59d8d2eff0f4f8cfeee52155a6540e23585e14b2 /activerecord/test | |
parent | 8418151409e01aa44d8fc9df53e476ce851bad8e (diff) | |
parent | e6690d37204dbd7154d275df75d9d0f98f5d2526 (diff) | |
download | rails-9ce59f66490e753809b6942001a9ffa8bf385bc1.tar.gz rails-9ce59f66490e753809b6942001a9ffa8bf385bc1.tar.bz2 rails-9ce59f66490e753809b6942001a9ffa8bf385bc1.zip |
Merge pull request #15747 from sgrif/sg-trolololol-this-is-so-broken
Always update counter caches in memory when adding records
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 5f01352ab4..3c0b735607 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -772,6 +772,36 @@ class HasManyAssociationsTest < ActiveRecord::TestCase assert_equal topic.replies.to_a.size, topic.replies_count end + def test_counter_cache_updates_in_memory_after_concat + topic = Topic.create title: "Zoom-zoom-zoom" + + topic.replies << Reply.create(title: "re: zoom", content: "speedy quick!") + assert_equal 1, topic.replies_count + assert_equal 1, topic.replies.size + assert_equal 1, topic.reload.replies.size + end + + def test_counter_cache_updates_in_memory_after_create + topic = Topic.create title: "Zoom-zoom-zoom" + + topic.replies.create!(title: "re: zoom", content: "speedy quick!") + assert_equal 1, topic.replies_count + assert_equal 1, topic.replies.size + assert_equal 1, topic.reload.replies.size + end + + def test_counter_cache_updates_in_memory_after_create_with_array + topic = Topic.create title: "Zoom-zoom-zoom" + + topic.replies.create!([ + { title: "re: zoom", content: "speedy quick!" }, + { title: "re: zoom 2", content: "OMG lol!" }, + ]) + assert_equal 2, topic.replies_count + assert_equal 2, topic.replies.size + assert_equal 2, topic.reload.replies.size + end + def test_pushing_association_updates_counter_cache topic = Topic.order("id ASC").first reply = Reply.create! |