Commit cc829e81 authored by Sean McGivern's avatar Sean McGivern

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.
parent 46dc343f
...@@ -68,14 +68,27 @@ describe Gitlab::PathRegex do ...@@ -68,14 +68,27 @@ describe Gitlab::PathRegex do
message message
end end
let(:all_routes) do let(:all_non_legacy_routes) do
route_set = Rails.application.routes route_set = Rails.application.routes
routes_collection = route_set.routes routes_collection = route_set.routes
routes_array = routes_collection.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 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 `/*` # Routes not starting with `/:` or `/*`
# all routes not starting with a param # all routes not starting with a param
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment