我正在使用ajax更新页面中的关注/取消关注用户。如果用户未登录并且他点击了关注页面,那么他应该重定向到登录页面:
def identify_user
@user = User.find_by(username: params[:id])
render js: "window.location = '/'" if @user.nil? || !user_signed_in?
end
由于跟随按钮设置了remote: true
,我无法使用简单的redirect_to
。我如何使用水豚进行测试?
scenario "Follow when user is not logged in", js: true do
sign_up_with("t@test.com","test1","secret12345")
click_link "logout"
visit "/test1" #takes to user 'test1' page
click_link "Follow test1" #link to follow user
expect(current_path).to eql('/')
end
上面的代码不起作用,它只是打开我的默认浏览器..好吧
window.location = '/'
处理用户重定向的方法的变化也很受欢迎!
答案 0 :(得分:0)
您是否可以对页面上的元素使用rspec期望而不是current_path?对于简单地验证URL,这将被证明是一个更强大的测试。类似的东西:
expect(page).to have_css('input#password')