"Admin으로 승격"을 클릭하여 관리자에게 다른 사용자를 관리자로 승격시킬 수있는 방법에 대해 테스트하는 데 문제가 있습니다. 내 컨트롤러에 있으며, 기능 테스트를 쓰고 있습니다. 레일 5.1.4를 사용하고 있습니다. 카피 바라 :: ElementNotFound : 그것은 나에게 오류를 제공Capybara :: ElementNotFound : 표시된 링크를 찾을 수 없습니다.
describe "Promotion" do
before do
login_as(User.create!(name: "lala", email: Faker::Internet.email,
password: "lalala", admin: true))
visit users_path
end
context "to admin" do
it "promotes user to admin" do
click_link("Promote to Admin", :match => :first)
expect(current_path).to eq user_promote_path
end
end
end
:
def promote
@user = User.find(params[:user_id])
if @user.toggle!(:admin)
flash[:success] = "User is promoted to admin."
redirect_to root_path
else
flash[:notice] = "Can't promote."
redirect_to root_path
end
end
이
테스트입니다 볼 수 링크를 찾을 내가이기 때문에 생각 "관리자로 승격"할 수 없습니다 올바른 페이지에 액세스하지 못하고 관리자로 로그인하려고하면 작동하지 않을 수 있습니다. 모든 제안은 매우 감사하겠습니다!
감사합니다. 실제로 다른 사용자가없는 문제가있었습니다. 또한 내 페이지가 실제로 승격 후 users_path로 리다이렉트되기 때문에 user_promote_path는 올바른 해결책이 아닙니다. – katjass
@katjass 확인 - 사용자가 승격되었음을 나타 내기 위해 눈에 보이는 변경 사항이 발생하더라도 테스트에서 확인해야하는 경로를 확인하는 것이 아니라 텍스트에 아이콘 변경, 클래스 변경 등이 있는지 확인해야합니다. –