Вы должны пройти тестирование следующим образом, внести изменения в соответствии с вашим требованием.
describe PostsController do
describe "Index" do
it "should allow user to view the list of posts" do
get :index, {}, sign_in(@user)
expect(response).to redirect_to(posts_path)
end
it "should not list posts if the user is not logged in" do
get :index
expect(response.status).to eq(302)
expect(response).to redirect_to(new_user_sessions_path)
end
end
end
Теперь, что будет делать этот тест, при запуске он вызовет ваш контроллер, при условии, что вы поставили authenticate_user!
, он проверит, вошел ли пользователь в систему или нет, чтобы просмотреть список. В противном случае action
вернет 401.
Вы также можете попробовать следующее
RSpec.describe "Posts", :type => :request do
context "Index" do
it 'should return 401 when not logged in' do
sign_out user
get posts_path
expect(response).to have_http_status(302)
follow_redirect!
expect(response).to have_http_status(401)
end
end
end