For some reason, system tests don’t respect the default_locale
and/or default_url_options
.
url_for
based path helpers that work fine in production and development all fail with an error like this:
ActionController::UrlGenerationError: No route matches {:action=>"show", :controller=>"posts", :locale=>#<Post id: 980190962, title: "MyString", content: "MyText", created_at: "2019-11-27 22:50:33", updated_at: "2019-11-27 22:50:33">}, missing required keys: [:id]
I absolute think system test should respect the default_locale
and default_url_options
though, as they are part of the … well system and controller tests for example, mind those settings too.
One would have to work around this by manually passing the locale to each and every path helper invocation in all system tests or monkey patch the initialize(*)
method from actionpack/lib/action_dispatch/system_test_case.rb
(previously there has been a simpler workaround, that stopped working from 6.0.1 onward).
I would be happy to try and provide a PR to fix this, if this is something that other people also think should be changed. A issue I opened about that topic has been closed though.