I have a very simple integration test based off of an example and
Agile Web D. with Rails but I can’t seem to get it to work.
I’m simply setting a user id in the session via the get method in the
test but then can’t access it when it hits my login controller.
Here is the relevant code in the integration test
get :index, {}, { :user_id => users(:bart).id }
assert_response :success
and in the login controller that gets called by the filter
def authorize
puts “User ID from session[#{session[:user_id]}]”
unless session[:user_id]
flash[:notice] = "Please log in"
redirect_to(:controller => 'login', :action => 'login')
end
end
which prints out
#<ActionController::TestSession:0x38a08c4
@attributes={:user_id=>1, “flash”=>{}},
@saved_attributes=nil,
@session_id="">
User ID from session[]
and then fails because the redirect is carried out. Anybody know why
the attribute is set but not accessible via session[:user_id]? The
code works fine when I manually try it out deployed.