diff --git a/activesupport/test/descendants_tracker_without_autoloading_test.rb b/activesupport/test/descendants_tracker_without_autoloading_test.rb index 4f1ee3e760..00b449af51 100644 --- a/activesupport/test/descendants_tracker_without_autoloading_test.rb +++ b/activesupport/test/descendants_tracker_without_autoloading_test.rb @@ -5,13 +5,13 @@ class DescendantsTrackerWithoutAutoloadingTest < ActiveSupport::TestCase include DescendantsTrackerTestCases + # Regression test for #8422. https://github.com/rails/rails/issues/8442 def test_clear_without_autoloaded_singleton_parent mark_as_autoloaded do parent_instance = Parent.new - parent_instance.singleton_class.descendants #adds singleton class in @@direct_descendants - ActiveSupport::DescendantsTracker.clear #clear is supposed to remove singleton class keys so GC can remove them. - assert !ActiveSupport::DescendantsTracker.class_variable_get(:@@direct_descendants).keys.include?(parent_instance.singleton_class) + parent_instance.singleton_class.descendants + ActiveSupport::DescendantsTracker.clear + assert !ActiveSupport::DescendantsTracker.class_variable_get(:@@direct_descendants).key?(parent_instance.singleton_class) end end - end