Установить запрос env для RSpec #route_to - PullRequest
0 голосов
/ 25 октября 2019

У меня есть некоторые ограничения в моих маршрутах, которые используют информацию, определенную для request.env:

  get "/articles", to: "articles#index", constraints: ->(request) {
    request.env["warden"].user.reporter?
  }

Я бы хотел проверить эти ограничения с помощью помощника RSpec's #route_to:

it "routes to /articles" do
  expect(get: "/articles").to route_to("articles#index")
end

Проблема в том, что я не могу найти способ установить request.env["warden"] в моем тесте. Я хотел бы только проверить, соответствует ли /articles при определенных ограничениях, поэтому я думаю, что целая спецификация интеграции, использующая что-то вроде капибары, будет излишним. Но правильный ли это способ проверки ограничения в моих маршрутах?

И возможно ли вообще как-то заглушить request.env? Я посмотрел в https://github.com/mtsmfm/railstest/blob/master/actionpack/lib/action_dispatch/testing/assertions/routing.rb#L180, где запрос построен. Но похоже, что объект запроса теста не принимает никаких аргументов извне.

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