Ignore routes matching legacy_*_redirect in route specs
Routes with the name `legacy_*_redirect` may have wildcards deliberately, in order to support routing old paths to new paths. As long as these routes are tested independently, they do not need to fail the path regex spec.
This commit is contained in:
parent
46dc343f60
commit
cc829e8192
|
|
@ -68,14 +68,27 @@ describe Gitlab::PathRegex do
|
|||
message
|
||||
end
|
||||
|
||||
let(:all_routes) do
|
||||
let(:all_non_legacy_routes) do
|
||||
route_set = Rails.application.routes
|
||||
routes_collection = route_set.routes
|
||||
routes_array = routes_collection.routes
|
||||
routes_array.map { |route| route.path.spec.to_s }
|
||||
|
||||
non_legacy_routes = routes_array.reject do |route|
|
||||
route.name.to_s =~ /legacy_(\w*)_redirect/
|
||||
end
|
||||
|
||||
non_deprecated_redirect_routes = non_legacy_routes.reject do |route|
|
||||
app = route.app
|
||||
# `app.app` is either another app, or `self`. We want to find the final app.
|
||||
app = app.app while app.try(:app) && app.app != app
|
||||
|
||||
app.is_a?(ActionDispatch::Routing::PathRedirect) && app.block.include?('/-/')
|
||||
end
|
||||
|
||||
non_deprecated_redirect_routes.map { |route| route.path.spec.to_s }
|
||||
end
|
||||
|
||||
let(:routes_without_format) { all_routes.map { |path| without_format(path) } }
|
||||
let(:routes_without_format) { all_non_legacy_routes.map { |path| without_format(path) } }
|
||||
|
||||
# Routes not starting with `/:` or `/*`
|
||||
# all routes not starting with a param
|
||||
|
|
|
|||
Loading…
Reference in New Issue