У меня есть некоторые ограничения в моих маршрутах, которые используют информацию, определенную для 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, где запрос построен. Но похоже, что объект запроса теста не принимает никаких аргументов извне.