【Rails5】gem omniauth-google-oauth2 のrspecテストではまった
ログインテストを書いていてハマったのでメモ。
以下を参考にテストを書いていた。
Integration Testing · omniauth/omniauth Wiki · GitHub
How to Test Drive OmniAuth Google OAuth2 for your Rails App — Jesse Spevack
なるほど!なるほど!と思いながら真似してやっていたが、上手く行かず...
rspec 内に binding.pry を仕込んで中を見てみると上手く設定できてないみたいで、デフォルトのパラメータが返ってくる。
[3] pry(#<Users::OmniauthCallbacksController>)> request.env['omniauth.auth']
=> {"provider"=>"default",
"uid"=>"1234",
"info"=>{"name"=>"Example User"}}
omniauth-google-oauth2 を使っている場合は google_oauth2
原因は mock を作るときに以下のように google を設定していたこと。
OmniAuth.config.mock_auth[:google]
これを google_oauth2 に修正したら上手くいきました!
OmniAuth.config.mock_auth[:google_oauth2]
mock を使ったテスト自体ほとんど書いたことがなかったので、これを解決するのにハマってしまった...