Como falso para fora uma pesquisa subdomínio em testes de Rails?
-
06-07-2019 - |
Pergunta
Eu tenho o seguinte filtro definido:
# 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
e no meu teste:
# users_controller_test.rb
class UsersControllerTest < ActionController::TestCase
setup do
@request.host = "test.myapp.local"
end
# ...
end
Agora test
é definido como o subdomínio para uma conta fictícia que eu carregar antes de todas as solicitações usando factory_girl
. No entanto, isso está jogando um erro de objeto nulo, dizendo que @request é nulo. Remoção do bloco de configuração faz com que todos os meus testes para falhar como find_account não consegue encontrar uma conta e, portanto, lança um erro RecordNotFound
.
O que estou fazendo de errado?
Solução
Tente isto:
@request.env['HTTP_HOST'] = 'test.myapp.local'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow