You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
before :each do
@member = Factory.create(:member)
sign_in @member
@person = Person.new
end
it "should render form for a new person on GET people#new" do
current_member.should_receive(:build_person).and_return(@person)
get :new
assigns[:person].should == @person
response.should be_success
response.should render_template("new")
end
This test creates a user, which is stored in the database with a correct password. Running this test results in this error:
NoMethodError in 'PeopleController Methods should render form for a new person on GET people#new'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]=
/Library/Ruby/Gems/1.8/gems/warden-0.10.4/lib/warden/session_serializer.rb:25:in store' /Library/Ruby/Gems/1.8/gems/devise-1.0.8/lib/devise/test_helpers.rb:73:insign_in'
/Users/damselem/Documents/project/spec/controllers/people_controller_spec.rb:15:
Finished in 0.625754 seconds
23 examples, 1 failure
I wen to /Library/Ruby/Gems/1.8/gems/warden-0.10.4/lib/warden/session_serializer.rb and I changed the file in order to print out some values:
def store(user, scope)
return unless user
p scope
p key_for(scope)
p user
p serialize(user)
p session
session[key_for(scope)] = serialize(user)
end
I've been trying to test a very simple action on a controller with this setup:
rspec 1.3.0
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
Rails 2.3.8
devise 1.0.8
And this is the test:
This test creates a user, which is stored in the database with a correct password. Running this test results in this error:
NoMethodError in 'PeopleController Methods should render form for a new person on GET people#new'
You have a nil object when you didn't expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]=
/Library/Ruby/Gems/1.8/gems/warden-0.10.4/lib/warden/session_serializer.rb:25:in
store' /Library/Ruby/Gems/1.8/gems/devise-1.0.8/lib/devise/test_helpers.rb:73:in
sign_in'/Users/damselem/Documents/project/spec/controllers/people_controller_spec.rb:15:
Finished in 0.625754 seconds
23 examples, 1 failure
I wen to /Library/Ruby/Gems/1.8/gems/warden-0.10.4/lib/warden/session_serializer.rb and I changed the file in order to print out some values:
def store(user, scope)
return unless user
p scope
p key_for(scope)
p user
p serialize(user)
p session
session[key_for(scope)] = serialize(user)
end
When running the test again I get:
:member
"warden.user.member.key"
Member id: 1, email: "member2@hv_club.com", encrypted_password: "c79e5e4790643b284002bf6ad8045f53ff900afc", password_salt: "Rim9LiyKARU1SHQCWIb0", confirmation_token: nil, confirmed_at: nil, confirmation_sent_at: nil, reset_password_token: nil, remember_token: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2010-07-09 16:45:44", updated_at: "2010-07-09 16:45:44"
[Member(id: integer, email: string, encrypted_password: string, password_salt: string, confirmation_token: string, confirmed_at: datetime, confirmation_sent_at: datetime, reset_password_token: string, remember_token: string, remember_created_at: datetime, sign_in_count: integer, current_sign_in_at: datetime, last_sign_in_at: datetime, current_sign_in_ip: string, last_sign_in_ip: string, created_at: datetime, updated_at: datetime), 1]
nil
So it seems session is not initialized. Any ideas on how to fix this?
Thanks.
The text was updated successfully, but these errors were encountered: