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
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to