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