@Fly3110
web developer

Как использовать сессию в тестах роутинга в Rspec?

Всем привет.

При создании нового scaffold контроллера, rspec автоматически создает тесты. Среди них есть тесты роутинга, типа такого:
require 'rails_helper'

RSpec.describe CommentsController, type: :routing do
  describe 'routing' do
    it 'routes to #index' do
      expect(get: '/comments').to route_to('comments#index')
    end
  end
end


в роутинге у меня используются constraints для тех, кто зашел в систему и тех, кто нет.
Соответственно, данный тест падает, так как роутинг посылает пользователя на страницу логина.

Есть ли возможность передавать сюда сессию? Попробовал отладить тест, увидел, что, при получении параметров маршрута используется только первый ключ из expect.

Тесты с типом 'request' отрабатывают нормально (там тоже нельзя сессию передать, но там можно сделать запрос на адрес логина перед каждым тестом). В данном тесте (с типом routing) это не помогает
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы