У меня странная проблема при попытке установить обратный вызов для аутентификации Facebook через Omniauth.В моем контроллере (просто для кода, необходимого для отображения ошибки) у меня есть:
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
raise env.inspect
# auth_hash = env["omniauth.auth"]
end
end
, это работает в рабочем режиме, показывая мне хэш.Однако в тестовом режиме env имеет значение nil.
В моем файле spec_helper.rb есть следующий набор
OmniAuth.config.test_mode = true
OmniAuth.config.add_mock(:facebook, {"credentials" => {
"token" => "foo-token"
}
})
, и моя спецификация выглядит следующим образом:
require 'spec_helper'
describe Users::OmniauthCallbacksController do
describe "Facebook" do
before(:each) do
request.env["devise.mapping"] = Devise.mappings[:user]
request.env["omniauth.auth"] = OmniAuth.config.mock_auth[:facebook]
end
it "should be a redirect" do
get :facebook
response.should redirect_to(root_path)
end
end
end
Может ли кто-нибудь объяснить мне, что мне нужно сделать, чтобы env не был равен нулю при выполнении моих тестов?