я следующий код в моих запросах спецификации:Разрабатывают и Rspec: Пользователь требует активации учетной записи в запросах SPEC даже после того, как подтвердил
describe 'Poll' do
subject { page }
context 'as system admin' do
let(:user) { Fabricate(:system_admin) }
before { login user}
it 'is accessible' do
visit '/admin/poll'
current_path.should == '/admin/poll'
end
describe 'sending poll' do
it 'sends to all users' do
save_and_open_page
end
end
end
end
Пользователь Логин, кажется, не работает, даже если метод, как представляется, работающ отлично. Я попытался использовать login user
внутри блока it 'is accessible' do
, и эти спецификации отлично работают, если я так делаю. Если я удалю его оттуда и поставлю его в блок before
, как показано выше. Пользователь не оставаться в системе я поставил в save_and_open_page
для отладки и я получаю это уведомление на странице:.
Your account was not activated yet. If a reset password link was sent to you, use that link to change your password.
Я использую Завещание, RSpec, Capybara и Rails 3. Я также набор пользователя до confirm!
в моем файле Fabrication. Ниже, как это выглядит:
Fabricator(:system_admin) do
first_name { sequence(:first_name) { |n| "Person#{n}"} }
last_name { sequence(:last_name) {|n| "#{n}" } }
email { sequence(:email) { |n| "person_#{n}@example.com"} }
password "foobar"
password_confirmation "foobar"
company_name { sequence(:company_name) { |n| "google#{n}" } }
role "system_admin"
after_create do |user|
user.confirm!
user.create_company
end
end
Вопрос: Что может быть проблема? Почему пользователь не входит в систему и почему я получаю это сообщение о том, что я должен активировать свою учетную запись? Не достаточно user.confirm!
?