Задача такая: протестировать авторизацию через facebook.
Проблема(сообщение, которое выскакивает при тестировании после события click_on):
Warning
Невозможно загрузить URL: Домен этого URL не включен в список доменов приложения. Чтобы загрузить этот URL, добавьте все домены и поддомены своего приложения в поле «Домены приложения» в настройках вашего приложения.
Код теста:
require 'acceptance_helper'
feature 'User sign in with oauth' do
scenario 'can sign in user with Facebook account', :js do
visit new_user_session_path
expect(page).to have_content('Sign in with Facebook')
mock_auth_hash_facebook
click_on 'Sign in with Facebook'
expect(page).to have_content I18n.t('devise.sessions.signed_in')
expect(current_path).to eq root_path
end
end
Код макроса:
module OmniauthMacros
def mock_auth_hash_facebook
OmniAuth.config.mock_auth[:facebook] = {
provider: 'facebook',
uid: '1234567',
info: {
email: 'user_example@facebook.com',
},
credentials: {
token: 'mock_token',
secret: 'mock_secret'
}
}
end
end
Gemfile:
gem 'omniauth'
gem 'omniauth-facebook'
В настройках FB
URL-адрес сайта:
localhost:3000
Пробовал выставлять порт 31337 и объявлять в тесте такой же порт, ничего не помогало
Прочитав сообщение проблемы, добавил хост 'localhost' в 'Домены приложений'.
При запуске теста проблема все равно появляется.
Но если выставить Capybara.server_host =31337 и поставить sleep, то 'вручную' все проходит и авторизуется.
Может я что-то упустил из виду? В чем может быть проблема?