From 536f2bdfd17ac3bab38851de2973dd1c89dccc3f Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Wed, 5 Apr 2017 13:44:23 +0200 Subject: Add forbidden paths to the namespace validator --- spec/validators/namespace_validator_spec.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 spec/validators/namespace_validator_spec.rb (limited to 'spec/validators') diff --git a/spec/validators/namespace_validator_spec.rb b/spec/validators/namespace_validator_spec.rb new file mode 100644 index 00000000000..e21b8ef5abd --- /dev/null +++ b/spec/validators/namespace_validator_spec.rb @@ -0,0 +1,29 @@ +require 'spec_helper' + +describe NamespaceValidator do + describe 'RESERVED' do + it 'includes all the top level namespaces' do + all_top_level_routes = Rails.application.routes.routes.routes. + map { |r| r.path.spec.to_s }. + select { |p| p !~ %r{^/[:*]} }. + map { |p| p.split('/')[1] }. + compact. + map { |p| p.split('(', 2)[0] }. + uniq + + expect(described_class::RESERVED).to include(*all_top_level_routes) + end + end + + describe 'WILDCARD_ROUTES' do + it 'includes all paths that can be used after a namespace/project path' do + all_wildcard_paths = Rails.application.routes.routes.routes. + map { |r| r.path.spec.to_s }. + select { |p| p =~ %r{^/\*namespace_id/:(project_)?id/[^:*]} }. + map { |p| p.split('/')[3].split('(', 2)[0] }. + uniq + + expect(described_class::WILDCARD_ROUTES).to include(*all_wildcard_paths) + end + end +end -- cgit v1.2.3