I am running BDD steps with cucumber to implement my autlogic login behavior.
Scenario: log in
Given a registered user: "test@test.com" with password: "p@ssword" exists
And I am on the homepage
When I follow "Log in"
And I fill in "Username" with "test@test.com"
And I fill in "Password" with "p@ssword"
And I open the page
And I press "Login"
And I open the page
Then I should see "Login successful!"
And I should see "Logout"
this is my scenario and when I hit
Then I should see "Login successful!"
my cucumber step fails but only in webrat. I debugged with launchy and when the web-page appeard there is indeed no message but in development mode, when I run script/server I see my messages. My controller looks like this
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
flash[:notice] = "Login successful!"
redirect_to root_url
else
render :action => 'new'
end
end
And yes I saw this http://github.com/binarylogic/authlogic/issuesearch?state=open&q=cucumber+flash#issue/142 and did not understand how this could help me and this also did not help
Rails/Cucumber/Webrat: redirect_to, flash[:notice] not working
my setup is
*** LOCAL GEMS ***
actionmailer (2.3.8)
actionpack (2.3.8)
activerecord (2.3.8)
activeresource (2.3.8)
activesupport (2.3.8)
authlogic (2.1.5)
builder (2.1.2)
configuration (1.1.0)
cucumber (0.8.4, 0.8.3)
cucumber-rails (0.3.2)
database_cleaner (0.5.2)
declarative_authorization (0.4.1)
diff-lcs (1.1.2)
gherkin (2.1.2, 2.0.2)
json_pure (1.4.3)
launchy (0.3.5)
mysql (2.8.1)
nokogiri (1.4.2)
paperclip (2.3.3)
pickle (0.3.0)
rack (1.2.1, 1.1.0)
rack-test (0.5.4)
rails (2.3.8)
rake (0.8.7)
rspec (1.3.0)
rspec-rails (1.3.2)
syntax (1.0.0)
term-ansicolor (1.0.5)
thoughtbot-factory_girl (1.2.2)
trollop (1.16.2)
webrat (0.7.1)
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux] gem 1.3.7 running on Ubuntu
What can I do to make my cucumber steps pass!
Thanks for any help
instead of the line
just try rendering it instead of redirecting it.
in doing this, it seems to remember flash[:notice]
i could not get --> redirect_to root_url, :flash => { :notice => 'not found' }, :notice => Login successful!' <-- to work at all
I believe this issue will be fixed in Rails 2.3.9. It has to do with setting both a cookie and a session in the same request. See this ticket for details.
In the meantime you can use this gist as a temporary fix.
Looks like rails 2.3.8 has changed the method in which is displays notices..
might be what you're looking for.
thanks to raynb who pointed me into the right direction. But unfurtunatly this solution did not work but I found this page which puts everything in cucumber.rb... which mad it running now ...
https://webrat.lighthouseapp.com/projects/10503-webrat/tickets/383-reset_session-and-webrat-dont-play-nicely-with-one-another