В Feature spe c установите пользователя с Warden для перенаправления в действиях в приложении Ruby on Rails. - PullRequest
3 голосов
/ 14 июля 2020

Я могу получить фальшивые аутентифицированные спецификации функций (через rspec) для работы с моим приложением, используя login_as, который покрывает следующий запрос . Однако для действий, которые содержат перенаправления с действием контроллера Rails, не представляется возможным установить прокси пользователя на место для этого запроса (перенаправление). Есть ли способ указать приложению использовать login_as для всех запросов в функции spe c?

1 Ответ

1 голос
/ 14 июля 2020

Итак, этот старый комментарий к ветке GitHub , похоже, имеет решение, которое все еще работает в моем первоначальном тестировании.

module Warden
  module Test
    module Helpers

      def login_permanently_as(user, opts = {})
        Warden::Manager.on_request do |proxy|
          opts[:event] || :authentication
          proxy.set_user(user, opts)
        end
      end

    end
  end
end

Monkey patch Warden::Test::Helpers для добавления метода, который делает использование on_request. Теперь в моих спецификациях функций Capybara мне больше не нужно постоянно устанавливать login_as для каждого щелчка на новой странице, и он установлен для тех действий, которые имеют перенаправления как часть выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...