diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-20 21:24:38 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-20 21:24:38 +0900 |
commit | df2ebf9b59b8ef063923136ba7097328db6c949f (patch) | |
tree | 3b943781a7b09f01e5091a92df87dd27039b6e1f /activerecord/test/cases | |
parent | fd919ec881c8ae9e7c7e9251372109849b6888d8 (diff) | |
parent | bd4eff2f99ffa5868574c497bc63f320cbda3083 (diff) | |
download | rails-df2ebf9b59b8ef063923136ba7097328db6c949f.tar.gz rails-df2ebf9b59b8ef063923136ba7097328db6c949f.tar.bz2 rails-df2ebf9b59b8ef063923136ba7097328db6c949f.zip |
Merge pull request #35247 from bogdan/fix-source-reflection-reset-code
Fix reset of the source association when through association is loaded
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 8 | ||||
-rw-r--r-- | activerecord/test/cases/associations/nested_through_associations_test.rb | 6 |
2 files changed, 11 insertions, 3 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 7d669198ca..6a7efe2121 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -2073,10 +2073,12 @@ class HasManyAssociationsTest < ActiveRecord::TestCase end def test_associations_order_should_be_priority_over_throughs_order - david = authors(:david) + original = authors(:david) expected = [12, 10, 9, 8, 7, 6, 5, 3, 2, 1] - assert_equal expected, david.comments_desc.map(&:id) - assert_equal expected, Author.includes(:comments_desc).find(david.id).comments_desc.map(&:id) + assert_equal expected, original.comments_desc.map(&:id) + preloaded = Author.includes(:comments_desc).find(original.id) + assert_equal expected, preloaded.comments_desc.map(&:id) + assert_equal original.posts_sorted_by_id.first.comments.map(&:id), preloaded.posts_sorted_by_id.first.comments.map(&:id) end def test_dynamic_find_should_respect_association_order_for_through diff --git a/activerecord/test/cases/associations/nested_through_associations_test.rb b/activerecord/test/cases/associations/nested_through_associations_test.rb index 5821744530..0b83fd8421 100644 --- a/activerecord/test/cases/associations/nested_through_associations_test.rb +++ b/activerecord/test/cases/associations/nested_through_associations_test.rb @@ -610,6 +610,12 @@ class NestedThroughAssociationsTest < ActiveRecord::TestCase assert_equal hotel, Hotel.joins(:cake_designers, :drink_designers).take end + def test_has_many_through_reset_source_reflection_after_loading_is_complete + preloaded = Category.preload(:ordered_post_comments).find(1, 2).last + original = Category.find(2) + assert_equal original.ordered_post_comments.ids, preloaded.ordered_post_comments.ids + end + private def assert_includes_and_joins_equal(query, expected, association) |