authlogic flash [: note] не отображается на шаге webrat огурца - PullRequest
0 голосов
/ 13 июля 2010

Я выполняю шаги BDD с огурцом, чтобы реализовать мое поведение логического входа в систему.

 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"

это мой сценарий, и когда я нажимаю

Then I should see "Login successful!"

мой шаг огурца не проходит, но только в вебрат. Я отладил с помощью launchy, и когда веб-страница появляется, действительно, нет сообщения, но в режиме разработки, когда я запускаю скрипт / сервер, я вижу свои сообщения. Мой контроллер выглядит так

 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

конец

И да, я видел это http://github.com/binarylogic/authlogic/issuesearch?state=open&q=cucumber+flash#issue/142 и не понимал, как это может мне помочь и это тоже не помогло

Rails / Cucumber / Webrat: redirect_to, flash [: note] не работает

мои настройки

*** LOCAL GEMS ***

actionmailer (2.3.8)

actionpack (2.3.8)

activerecord (2.3.8)

активный ресурс (2.3.8)

activesupport (2.3.8)

authlogic (2.1.5)

строитель (2.1.2)

конфигурация (1.1.0)

огурец (0,8,4; 0,8,3)

огурцы-рельсы (0.3.2)

database_cleaner (0.5.2)

декларативное_авторизация (0.4.1)

diff-lcs (1.1.2)

корнишон (2.1.2, 2.0.2)

json_pure (1.4.3)

launchy (0.3.5)

mysql (2.8.1)

нокогири (1.4.2)

скрепка (2.3.3)

рассол (0,3,0)

стойка (1.2.1, 1.1.0)

рэк-тест (0.5.4)

рельсы (2.3.8)

грабли (0.8.7)

rspec (1.3.0)

rspec-рельсы (1.3.2)

синтаксис (1.0.0)

term-ansicolor (1.0.5)

thinkbot-factory_girl (1.2.2)

Троллоп (1.16.2)

вебрат (0.7.1)

ruby ​​1.8.7 (2010-01-10 patchlevel 249) [i486-linux] драгоценный камень 1.3.7 работает на Ubuntu

Что я могу сделать, чтобы мои шаги огурца прошли!

Спасибо за любую помощь

Ответы [ 4 ]

1 голос
/ 18 января 2011

вместо строки

flash[:notice] = "Login successful!"   
redirect_to root_url

просто попробуйте отрендерить его вместо перенаправления.

flash[:notice] = "Login successful!"   
render :action => :root_url

при этом, кажется, вспоминает вспышку [: note]

Я не смог получить -> redirect_to root_url,: flash => {: note => 'not found'},: alert => Вход в систему выполнен успешно! ' <- работать вообще </p>

0 голосов
/ 15 июля 2010

Я считаю, что эта проблема будет исправлена ​​в Rails 2.3.9. Это связано с настройкой cookie и сеанса в одном запросе. Подробнее см. этот билет .

Тем временем вы можете использовать эту суть как временное исправление.

0 голосов
/ 18 июля 2010

благодаря Райнбу, который указал мне правильное направление.Но, к сожалению, это решение не сработало, но я нашел эту страницу, которая помещает все в cucumber.rb ... который безумно работает сейчас ...

https://webrat.lighthouseapp.com/projects/10503-webrat/tickets/383-reset_session-and-webrat-dont-play-nicely-with-one-another

0 голосов
/ 14 июля 2010

Похоже, рельсы 2.3.8 изменили метод отображения уведомлений ..

redirect_to(root_url, :notice => 'Login successful!')

может быть тем, что вы ищете.

...