Мне нужно войти в систему перед выполнением моих тестов, которые будут использовать JS. Значок на странице работает (кроме этого теста).Невозможно войти в систему с пользователем/данными FactoryGirl
require 'spec_helper'
require 'capybara/poltergeist'
include Capybara::DSL
Capybara.javascript_driver = :poltergeist
describe "Application", js: true do
describe "when logged in", js: true do
let(:user) { FactoryGirl.create(:user) }
before do
visit signin_path
fill_in "Email", with: user.email
fill_in "Password", with: user.password
click_button "Sign in"
end
it "can authenticate user" do
User.all.first.authenticate(user.password).email.should == user.email
end
end
end
Проблема заключается в том, что нажатие кнопки «Вход» кнопка возвращает обратно на страницу с «недопустимой пользователя/пароль» комбинации (как если пользователь не в БД). Дело в том, что, по-видимому, использование действительно IS в базе данных, и пароль прав (тест «может аутентифицировать пользовательские проходы»).
Я сделал снимок экрана, прежде чем нажимать кнопку «Войти», и поля заполнены правильно. Я попытался создать пользователя внутри предыдущего блока, но он тоже не работал.
На странице входа нет ничего особенного, нет javascript или что-то еще. Просто сообщение обычной формы на сервере.
Любые идеи?
Я имел эту проблему при использовании DeviseInvitable. - если маркер приглашения установлен, то он не позволит, что пользователю войти в Доне Предположим, это относится к вам? – RobHeaton
Я не использую Devise, но не могли бы вы рассказать мне больше о вашей проблеме и о том, как вы ее решили? Это может дать мне ключ ... – Manuel
DeviseInvitable предоставляет пользователям токены приглашения, и если один из них установлен, вы не можете войти в систему как этот пользователь. Мои фабрики создавали пользователей с токенами и поэтому не могли войти в систему как они. Сообщение об ошибке не помогло! – RobHeaton