Tengo el siguiente filtro definido:¿Cómo falsificar una búsqueda de subdominio en las pruebas de Rails?
# application_controller.rb
class ApplicationController < ActionController::Base
before_filter :find_account
private
def find_account
@current_account = Account.find_by_subdomain!(request.subdomains.first)
end
end
y en mi prueba:
# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
setup do
@request.host = "test.myapp.local"
end
# ...
end
ahora test
se define como el subdominio para una cuenta ficticia que me carga previa a todas las solicitudes usando factory_girl
. Sin embargo, esto arroja un error de objeto nulo, diciendo que @request es nil. Al eliminar el bloque de configuración, todas mis pruebas fallan ya que find_account no puede encontrar una cuenta y, por lo tanto, arroja un error RecordNotFound
.
¿Qué estoy haciendo mal?
Tengo el mismo problema, has encontrado una solución? – compostus
Resulta útil para encontrar que está utilizando request.subdomains para obtener el subdominio, solía obtenerlo de params [: subdomain] pero no funciona si configuro @ request.host o @ request.env ['HTTP_HOST'] –