Rails - Testes funcionais com cookie
No meu ApplicationController
, coloquei um before_filter
que verifica se no cookie do usuário tem uma chave e verifico seu valor. No caso de não existir o valor, ou o mesmo for diferente do esperado, eu mando um reset_session
e adiciono a chave com o valor. Até aí beleza. Quando fui rodar minha bateria de testes… BOOM! Estourou um monte de erros nos testes funcionais de admin, já que os mesmos adicionam a sessão um usuário que tem regra de admin, como no exemplo abaixo.
1
2
3
4
5
6
7
class Admin::BlogsControllerTest < ActionController::TestCase
setup do
@admin = Factory(:user, :role => "admin")
@request.session[:user_id] = @admin.id
end
#...
end
Bastaria adicionar no setup de cada arquivo de teste funcional uma simples linha:
1
2
3
4
setup do
#...
@request.cookies['chave'] = 'valor'
end
Mas pensei comigo mesmo: DRY. Logo, em meu test/test_helper.rb
1
2
3
4
5
6
class ActionController::TestCase
setup :setting_cookie_version
def setting_cookie_version
@request.cookies['_bbsession_version'] = APP_CONFIG['session']['version']
end
end