リクエスト仕様に次のコードがあります。
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.
Devise、RSpec、Capybara、Rails3を使用しています。Fabricationconfirm!
ファイルでuserもに設定しました。以下はその外観です。
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!
んか?