Следующая спецификация дает сбой и снова сбой.Я перепробовал все, но не могу заставить его работать.Если я проверю это вручную, все будет хорошо :( Некоторые справки / советы были бы действительно хороши!
Действие присоединения должно добавить зарегистрированного пользователя в гильдию / группу, если он / она имеет правильный токен (вURL). Если пользователь не вошел в систему, действие перенаправляется на страницу входа и сохраняет маркер и идентификатор в куки. После входа пользователь перенаправляется на страницу присоединения, если куки установлены.
Я обнаружил, что current_user теряется во время теста. Переменная сеанса все еще присутствует. У меня стандартная настройка Authlogic и все остальные тесты проходят, так что я действительно не знаю, что происходит не так.новичок в RSpec / capybara, но тест на огурец / капибару (из которого я мигрирую) также не проходит, поэтому я считаю, что это проблема с капибарой.:
def join
@guild = Guild.find(params[:id])
respond_to do |format|
if current_user.nil?
flash[:error] = t("have_to_be_logged_in")
unless params[:token].nil?
cookies[:rguilds_jg_token] = params[:token]
cookies[:rguilds_jg_gid] = params[:id]
end
format.html { redirect_to(login_path) }
else
unless cookies[:rguilds_jg_token].nil? && cookies[:rguilds_jg_gid].nil?
cookies.delete(:rguilds_jg_token)
cookies.delete(:rguilds_jg_gid)
end
if @guild.verified?
if params[:token] == @guild.token
unless @guild.users.include?(current_user)
@guild.assignments << Assignment.create(:user_id => current_user.id, :role_id => Role.find_by_name("member").id)
flash[:notice] = t('guilds.joined')
format.html { redirect_to(@guild) }
else
flash[:error] = t('guilds.already_joined')
format.html { redirect_to(@guild) }
end
else
flash[:error] = t('guilds.invalid_token')
format.html { redirect_to(@guild) }
end
else
flash[:error] = t('guilds.not_verified')
format.html { redirect_to(@guild) }
end
end
end
end
Результат "Rake Spec":
...................FF.....................................................................
Failures:
1) GuildsController a user should be able to join a guild with a valid token
Failure/Error: @guild.members.include?(@user.login).should be_true
expected false to be true
# ./spec/integration/guilds_spec.rb:72:in `block (3 levels) in <top (required)>'
2) GuildsController a user shouldn't be able to join a guild with a invalid token
Failure/Error: page.should have_css(".error")
expected #has_css?(".error") to return true, got false
# ./spec/integration/guilds_spec.rb:79:in `block (3 levels) in <top (required)>'
Finished in 7.87 seconds
90 examples, 2 failures
Драгоценные камни:
gem 'rails', '3.0.0.rc'
gem "mocha"
gem "rspec-rails", ">= 2.0.0.beta.19"
gem "factory_girl_rails"
gem 'capybara'
gem "authlogic", :git => "http://github.com/odorcicd/authlogic.git", :branch => "rails3"