En mi application_controller, tengo el siguiente conjunto de incluir la configuración regional con todos los caminos generados por url_for:Cómo establecer default_url_options de localización para las pruebas funcionales (rieles)
def default_url_options(options={})
{ :locale => I18n.locale }
end
Mis rutas de recursos a continuación tienen una: path_prefix = "/: locale"
Funciona bien en el sitio.
Pero cuando se trata de mis pruebas funcionales, el: locale no se pasa con las URL generadas, y por lo tanto todas fallan. Puedo conseguir alrededor de él mediante la adición de la configuración regional de la url en mis pruebas, así:
get :new, :locale => 'en'
Pero yo no quiero tener que añadir manualmente la configuración regional de cada prueba funcional.
Intenté agregar la opción default_url_options def arriba para test_helper, pero parece no tener ningún efecto.
¿Hay alguna manera de que pueda cambiar las opciones_de_url predeterminadas para incluir la configuración regional para todas mis pruebas?
Gracias.
Gracias, John. ¡Eso resolvió el caso específico anterior y parece funcionar muy bien! Lo que no parece resolver es cómo TestCase interpreta las rutas con nombre, ya sea que estén en la prueba en sí o que se utilicen en la aplicación. Por ejemplo, si tengo una prueba: redirect_to homepage_url y homepath_url espera la configuración regional (map.homepage '/: locale',: controller => 'home'), me sale un error al ejecutar la prueba, que los requisitos de url no son satisfactorios (falta "locale"). De nuevo, la aplicación funciona bien ya que default_url_options se encarga de agregar la configuración regional. ¿Alguna manera de arreglar eso? –
Permítanme agregar que si esto fuera solo un problema en la prueba, no sería tan malo. Puedo agregar la configuración regional siempre que use una ruta con nombre en una prueba. Pero el problema es que también genera un error cada vez que se usa una ruta con nombre en mi aplicación (y no quiero tener que cambiar todo eso o especificar la configuración regional cada vez para que se ejecuten mis pruebas). –
Ah, no me di cuenta de que estaba sucediendo en tu aplicación también. Acabo de encontrar un boleto de faro que podría ayudarlo un poco (parece que todavía hay un problema, pero hay algunos problemas) https://rails.lighthouseapp.com/projects/8994/tickets/1251-default_url_options-cant -be-used-with-named-routes –