Commit d22fe96b authored by Bob Van Landuyt's avatar Bob Van Landuyt

Take ee words into account

We need to reserve these words in EE to support the upgrade path from
CE to EE.
parent bf114b31
---
title: Free up some top level words, reject top level groups named like files in the
public folder
merge_request: 12932
author:
...@@ -36,10 +36,12 @@ describe Gitlab::PathRegex, lib: true do ...@@ -36,10 +36,12 @@ describe Gitlab::PathRegex, lib: true do
described_class::PROJECT_WILDCARD_ROUTES.include?(path.split('/').first) described_class::PROJECT_WILDCARD_ROUTES.include?(path.split('/').first)
end end
def failure_message(constant_name, migration_helper, missing_words:, additional_words: []) def failure_message(constant_name, migration_helper, missing_words: [], additional_words: [])
missing_words = Array(missing_words) missing_words = Array(missing_words)
additional_words = Array(additional_words) additional_words = Array(additional_words)
message = <<-MSG message = ""
if missing_words.any?
message += <<-MISSING
Found new routes that could cause conflicts with existing namespaced routes Found new routes that could cause conflicts with existing namespaced routes
for groups or projects. for groups or projects.
...@@ -52,16 +54,15 @@ describe Gitlab::PathRegex, lib: true do ...@@ -52,16 +54,15 @@ describe Gitlab::PathRegex, lib: true do
Make sure to make a note of the renamed records in the release blog post. Make sure to make a note of the renamed records in the release blog post.
MSG MISSING
end
if additional_words.any? if additional_words.any?
additional_message = <<-ADDITIONAL message += <<-ADDITIONAL
Why are <#{additional_words.join(', ')}> in `#{constant_name}`? Why are <#{additional_words.join(', ')}> in `#{constant_name}`?
If they are really required, update these specs to reflect that. If they are really required, update these specs to reflect that.
ADDITIONAL ADDITIONAL
message = [message, additional_message].join
end end
message message
...@@ -85,14 +86,11 @@ describe Gitlab::PathRegex, lib: true do ...@@ -85,14 +86,11 @@ describe Gitlab::PathRegex, lib: true do
route.split('/')[1] route.split('/')[1]
end.compact.uniq end.compact.uniq
words += files_in_public words + ee_top_level_words + files_in_public
words + additional_top_level_words
end end
let(:additional_top_level_words) do let(:ee_top_level_words) do
# Required to keep the uploads safe, remove after ['unsubscribes']
# https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12917 gets merged
['system']
end end
let(:files_in_public) do let(:files_in_public) do
...@@ -145,7 +143,16 @@ describe Gitlab::PathRegex, lib: true do ...@@ -145,7 +143,16 @@ describe Gitlab::PathRegex, lib: true do
let(:paths_after_group_id) do let(:paths_after_group_id) do
group_routes.map do |route| group_routes.map do |route|
route.gsub(STARTING_WITH_GROUP, '').split('/').first route.gsub(STARTING_WITH_GROUP, '').split('/').first
end.uniq end.uniq + ee_paths_after_group_id
end
let(:ee_paths_after_group_id) do
%w(analytics
ldap
ldap_group_links
notification_setting
audit_events
pipeline_quota hooks)
end end
describe 'TOP_LEVEL_ROUTES' do describe 'TOP_LEVEL_ROUTES' do
...@@ -166,11 +173,13 @@ describe Gitlab::PathRegex, lib: true do ...@@ -166,11 +173,13 @@ describe Gitlab::PathRegex, lib: true do
it "don't contain a second wildcard" do it "don't contain a second wildcard" do
failure_block = lambda do failure_block = lambda do
missing_words = paths_after_group_id - described_class::GROUP_ROUTES missing_words = paths_after_group_id - described_class::GROUP_ROUTES
failure_message('GROUP_ROUTES', 'rename_child_paths', missing_words: missing_words) additional_words = described_class::GROUP_ROUTES - paths_after_group_id
failure_message('GROUP_ROUTES', 'rename_child_paths',
missing_words: missing_words, additional_words: additional_words)
end end
expect(described_class::GROUP_ROUTES) expect(described_class::GROUP_ROUTES)
.to include(*paths_after_group_id), failure_block .to contain_exactly(*paths_after_group_id), failure_block
end end
end end
......
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