assert_recognizes в тесте интеграции Rails не ловит сообщение об ошибке «нет маршрута» - PullRequest
0 голосов
/ 15 января 2020

My routes.rb содержит следующие маршруты:

Rails.application.routes.draw do
  root controller: 'root', action: 'index'
  get '*path', controller: 'root', action: 'index', constraints: ->(req) { (req.fullpath !~ %r{^\/packs\/.*}) }
end

Для этих маршрутов у меня есть следующий тест

class RootControllerTest < ActionDispatch::IntegrationTest
  test('if all paths are processed by root index') do
    assert_recognizes({ controller: 'root', action: 'index', path: 'some/magic/path' }, 'some/magic/path')
    assert_recognizes(
      { controller: '', action: '' },
      '/packs/js/application-69277d18308d3ae0e67e.js',
      {},
      'No route matches "/packs/js/application-69277d18308d3ae0e67e.js"'
    )
  end
end

К сожалению, второй assert_recognizes не может подтвердить ошибку :

 F

Failure:
RootControllerTest#test_if_all_paths_are_processed_by_root_index [/app/test/controllers/root_controller_test.rb:8]:
No route matches "/packs/js/application-69277d18308d3ae0e67e.js"

У кого-нибудь есть идеи, как правильно проверить улов на всем маршруте? Я на Rails 6.

...