Я пытаюсь запустить сильные тесты параметров для моей модели Restaurant
, и я столкнулся с ошибкой, которая не развивается в процессе разработки. В своем контроллере у меня есть метод канкан load_and_authorize_resource
разрешить только администраторам создавать, обновлять и уничтожать эти модели экземпляров:Обход CanCan :: AccessDenied во время работы RSpec тестов
class RestaurantsController < ApplicationController
load_and_authorize_resource param_method: :restaurant_params, find_by: :slug
...
end
Когда дело доходит до выполнения тестов, хотя я получаю ошибку:
1) RestaurantsController should permit POST #create to receive parameters :name
Failure/Error: should permit(:name).
CanCan::AccessDenied:
You are not authorized to access this page.
Есть ли простой способ обойти эту авторизацию? Я все время смотрел, и, похоже, нет четкого ответа.
Тест
describe RestaurantsController do
let(:user) { FactoryGirl.create(:user, admin: true) }
it { should permit(:name).for(:create) }
end
Примечание: Я принял взглянуть на docs над на канкан, и они говорят, чтобы создать экземпляр пользователя с его атрибутом админ, установленным в действительности. Даже с этим я все еще немного запутался в том, как вставить этого пользователя в мой тест.
Это правильный способ сделать это, на мой взгляд. – Sean