summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2017-11-06 11:12:19 +0000
committerSean McGivern <sean@gitlab.com>2017-11-06 11:20:23 +0000
commitcc829e81924259169fa562ec59a5bf899e59e479 (patch)
tree6c4e18ccf30f963912fb4f9f222cc1629fe72a54
parent46dc343f605f0c98d2b9ec44617d313a1548b4e2 (diff)
downloadgitlab-ce-cc829e81924259169fa562ec59a5bf899e59e479.tar.gz
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.
-rw-r--r--spec/lib/gitlab/path_regex_spec.rb19
1 files changed, 16 insertions, 3 deletions
diff --git a/spec/lib/gitlab/path_regex_spec.rb b/spec/lib/gitlab/path_regex_spec.rb
index f1f188cbfb5..ee63c9338c5 100644
--- a/spec/lib/gitlab/path_regex_spec.rb
+++ b/spec/lib/gitlab/path_regex_spec.rb
@@ -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