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
@ -25,6 +25,8 @@
|
||||
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 @@ def test_assign_ids_ignoring_blanks
|
||||
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 New Issue
Block a user