Commit 8c8c49f2 authored by Thong Kuah's avatar Thong Kuah

Fix routing for paths starting with help and projects

Rails routes are matched by order they are specified. We can fix this by
pushing `draw :group` to be above the `draw :help` and `resources
:projects` routes.

Adds tests
parent 7318445e
---
title: Fix routing for paths starting with help and projects
merge_request: 36048
author:
type: fixed
......@@ -242,6 +242,8 @@ Rails.application.routes.draw do
post :preview_markdown
end
draw :group
resources :projects, only: [:index, :new, :create]
get '/projects/:id' => 'projects#resolve'
......@@ -258,7 +260,6 @@ Rails.application.routes.draw do
draw :admin
draw :profile
draw :dashboard
draw :group
draw :user
draw :project
......
......@@ -2,8 +2,8 @@
require 'spec_helper'
RSpec.describe "Groups", "routing" do
let(:group_path) { 'complex.group-namegit' }
RSpec.shared_examples 'groups routing' do
let(:group_path) { 'projects.abc123' }
let!(:group) { create(:group, path: group_path) }
it "to #show" do
......@@ -56,3 +56,23 @@ RSpec.describe "Groups", "routing" do
expect(get('/groups/gitlabhq/-/boards')).to route_to('groups/boards#index', group_id: 'gitlabhq')
end
end
RSpec.describe "Groups", "routing" do
context 'complex group path with dot' do
include_examples 'groups routing' do
let(:group_path) { 'complex.group-namegit' }
end
end
context 'group path starting with help' do
include_examples 'groups routing' do
let(:group_path) { 'help.abc123' }
end
end
context 'group path starting with projects' do
include_examples 'groups routing' do
let(:group_path) { 'projects.abc123' }
end
end
end
......@@ -77,6 +77,10 @@ RSpec.describe 'project routing' do
# DELETE /:id(.:format) projects#destroy
# preview_markdown_project POST /:id/preview_markdown(.:format) projects#preview_markdown
describe ProjectsController, 'routing' do
it 'to #index' do
expect(get('/projects')).to route_to('projects#index')
end
it 'to #create' do
expect(post('/projects')).to route_to('projects#create')
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