Hi,
I'm fairly new to RSpec with Rails and I'm trying to work out how I can write
request specs for resources that require a logged in user.
I can't get this one to pass:
describe "GET /admin/account" do
it "should have a 200 status code when logged in" do
post "/login", { :email => @user.email, :password => @user.password }
response.should redirect_to("/admin")
response.code.should eq("302")
get "/admin/account"
response.code.should eq("200")
end
end
The login post part works fine and the session gets created correctly in the
login method, but then the test fails at 'get "/admin/account"' because the
session suddenly is empty.
I have tried another approach where I set the session manually, to simulate a
logged in user:
describe "GET /admin/account" do
it "should have a 200 status code when logged in" do
session[:user_id] ||= @user.id
get "/admin/account"
response.code.should eq("200")
end
end
But again the session arrives empty in my authorisation method when trying 'get
"/admin/account"'.
My guess is that it fails because the session relies on cookies and in test
mode there obviously is no browser and no cookie.
Are there ways to simulate a logged in user in an app that creates sessions
with cookies?
Thanks for any suggestions
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users