Rspec으로 Pundit 정책 범위를 테스트하여 문제가 있습니다. 기본적으로, 나는 범위에서 반환 된 값이 엄격하게 사용자에게 제한되어 있는지 테스트하려고합니다. 그래서 나는 사용자를 위해 반환 된 모든 문제를 검토하고 ID가 사용자와 동일한 지 확인하십시오.Rails Pundit Rspec testing
녹색이지만 이슈 개체를 반환하는 범위 호출로 인해 비 시민 역할 인 경우 실패합니다. 이것은 각 역할이 .where()와 함께 범위를 가질 것이기 때문에 큰 문제는 아니지만, 나는 어떤 일을하고 있을지도 모르는 코드 냄새입니다.
나는 내가 확실히이
require 'spec_helper'
describe IssuePolicy do
before(:each) do
@user = FactoryGirl.create(:user)
@issue = FactoryGirl.create(:issue)
@last_issue = FactoryGirl.create(:issue, user_id: User.last.id + 1)
end
context "for a citizen" do
before(:each) do
@user.update(role: 'citizen')
end
it "should only return their posts on index action" do
@p = IssuePolicy::Scope.new(@user, Issue).resolve
@p.each do |issue|
expect{issue.user_id}.to eql(@user.id)
end
end
end
end