mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add regression test against habtm memoized singular_ids
Starting in Rails 5.0.0 and still present in Rails 5.2.1, `singular_ids`
got memoized and didn't reload after more items were added to the
relation.
Although 19c8071
happens to fix the issue, it only adds tests for
`has_many` relations while this bug only affected
`has_and_belongs_to_many` relations.
This commit adds a regression test to ensure it never happens again with
`habtm` relations.
Ensures #34179 never gets reproduced.
This commit is contained in:
parent
b0b0cd1fd7
commit
5e92770e5a
1 changed files with 12 additions and 0 deletions
|
@ -25,6 +25,8 @@ require "models/user"
|
|||
require "models/member"
|
||||
require "models/membership"
|
||||
require "models/sponsor"
|
||||
require "models/lesson"
|
||||
require "models/student"
|
||||
require "models/country"
|
||||
require "models/treaty"
|
||||
require "models/vertex"
|
||||
|
@ -780,6 +782,16 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase
|
|||
assert_equal [projects(:active_record), projects(:action_controller)].map(&:id).sort, developer.project_ids.sort
|
||||
end
|
||||
|
||||
def test_singular_ids_are_reloaded_after_collection_concat
|
||||
student = Student.create(name: "Alberto Almagro")
|
||||
student.lesson_ids
|
||||
|
||||
lesson = Lesson.create(name: "DSI")
|
||||
student.lessons << lesson
|
||||
|
||||
assert_includes student.lesson_ids, lesson.id
|
||||
end
|
||||
|
||||
def test_scoped_find_on_through_association_doesnt_return_read_only_records
|
||||
tag = Post.find(1).tags.find_by_name("General")
|
||||
|
||||
|
|
Loading…
Reference in a new issue