Я только что обновил старое приложение с Rails 3.2 до Rails 5.1.6.Этот тест работал, но сейчас не работает:
# spec/requests/social_sign_ups_spec.rb
describe 'Twitter sign ups:' do
before(:each) do
OmniAuth.config.test_mode = true
end
it 'Logs in new user:' do
visit new_session_path
OmniAuth.config.mock_auth[:twitter] = OmniAuth::AuthHash.new({
'provider' => 'twitter',
'uid' => Twitter_identifier,
'info' => {
'name' => 'squiddio',
'image' => "http://pbs.twimg.com/profile_images/568944504166567936/UcqveaGp_normal.png"
},
'credentials' => {
"token" => Twitter_token,
"secret" => Twitter_token_secret
}
})
click_link 'Twitter log-in'
# this is where I get the callback error in the server- see logs below
end
end
просмотр журналов сервера:
tail -f log/test.log
# .......
# Completed 200 OK in 2268ms (Views: 2263.5ms | ActiveRecord: 1.6ms)
# Started GET "/auth/twitter" for 127.0.0.1 at 2018-06-08 08:32:01 -0700
# Started GET "/oauth/authenticate?oauth_token=<some token>" for 127.0.0.1 at 2018-06-08 08:32:01 -0700
# ActionController::RoutingError (No route matches [GET] "/oauth/authenticate"):
# .......
Может кто-нибудь выяснить, почему обратный вызов из Rack:
/oauth/authenticate
вместо стандартного:
/auth/twitter/callback
Я получаю в разработке и производстве?
Дополнительная информация:
bundle show rails # -> rails-5.1.6
bundle show rspec-rails # -> rspec-rails-3.7.2