[rspec-users] webrat, Rails and controller sessions

Rodrigo Rosenfeld Rosas lbocseg at yahoo.com.br
Fri Oct 30 05:30:51 EDT 2009


When I ran 'rake spec', it generated a spec_helper.rb with the following 
line:

require 'webrat/integrations/rspec-rails'

It seems that this file changed to webrat/rspec-rails on last webrat gem.

But changing to "require 'webrat/rspec-rails'" doesn't seem to work. 
What solved for me was following webrat documentation:

Webrat.configure do |config|
   config.mode = :rails
end

And including "config.gem 'webrat'" in environments/test.rb.

'spec' rake task should probably be updated to reflect current webrat...

Anyway, I was wondering if it is possible to get the Rails session from 
the specs and resetting it, for instance.

I've used another approach in my tests, but I think it would be 
interesting to evaluate the session state in some tests... Is it possible?

Here is what I'm doing currently:

describe UsersController do
   context 'when accessing protected area' do
     before(:each) do
       @user = User.make :password => 'secret'
     end

     it 'should authenticate with login or e-mail' do
       [@user.login, @user.email].each do |login_or_email|
#        session['user'] = nil
         visit '/'
         click_link I18n.t(:'user.login')
         fill_in 'login', :with => login_or_email
         fill_in 'password', :with => 'secret'
         click_button I18n.t(:'user.login')

         contain @user.name
         click_link I18n.t :'user.logout'
#        session['user'].should == @user.id
       end

       visit '/'
       click_link I18n.t(:'user.login')
       fill_in 'login', :with => @user.login
       fill_in 'password', :with => 'wrong'
       click_button I18n.t(:'user.login')

       assert_not_contain @user.name
#      session['user'].should be_nil
     end
   end
end

Thanks,

Rodrigo.

__________________________________________________
Faça ligações para outros computadores com o novo Yahoo! Messenger 
http://br.beta.messenger.yahoo.com/ 


More information about the rspec-users mailing list