Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove unnecessary routing assertions require #2732

Merged
merged 1 commit into from
Feb 19, 2024

Commits on Feb 19, 2024

  1. Remove unnecessary routing assertions require

    ActionDispatch::Assertions has an autoload defined:
    https://github.com/rails/rails/blob/v7.1.3/actionpack/lib/action_dispatch.rb#L130
    
    That file requires action_dispatch/testing/assertions/routing.rb:
    https://github.com/rails/rails/blob/v7.1.3/actionpack/lib/action_dispatch/testing/assertions.rb#L5
    
    So ActionDispatch::Assertions::RoutingAssertions can be referenced
    without being explicitly required.
    
    rspec/rails/example/controller_example_group.rb, which is loaded before
    this file, already references it and triggers the autoload, which means
    this require never has any effect:
    https://github.com/rspec/rspec-rails/blob/v6.1.1/lib/rspec/rails/example/controller_example_group.rb#L5
    
    Requiring action_dispatch/testing/assertions/routing.rb on its own
    doesn't actually work, because it autoloads ActionDispatch::Assertions
    which then fails to find ActionDispatch::Assertions::RoutingAssertions
    since it hasn't been defined yet:
    
        $ ruby -r action_dispatch -e "p ActionDispatch::Assertions::RoutingAssertions"
        ActionDispatch::Assertions::RoutingAssertions
    
        $ ruby -r action_dispatch -r action_dispatch/testing/assertions/routing -e "p ActionDispatch::Assertions::RoutingAssertions"
        /Users/eugene/.rbenv/versions/3.2.2/lib/ruby/gems/3.2.0/gems/actionpack-7.1.3/lib/action_dispatch/testing/assertions.rb:12:in `<module:Assertions>': uninitialized constant ActionDispatch::Assertions::RoutingAssertions (NameError)
    eugeneius committed Feb 19, 2024
    Configuration menu
    Copy the full SHA
    287afca View commit details
    Browse the repository at this point in the history