Commit 8a6bc266 authored by Rémy Coutable's avatar Rémy Coutable Committed by Alejandro Rodríguez

Merge branch 'fix-dead-help-link' into 'master'

Fix a broken link and avoid potential creation of future broken links on the help page.

See merge request !7582
parent ef3aec82
......@@ -6,9 +6,9 @@ class HelpController < ApplicationController
def index
@help_index = File.read(Rails.root.join('doc', 'README.md'))
# Prefix Markdown links with `help/` unless they already have been
# See http://rubular.com/r/ie2MlpdUMq
@help_index.gsub!(/(\]\()(\/?help\/)?([^\)\(]+\))/, '\1/help/\3')
# Prefix Markdown links with `help/` unless they are external links
# See http://rubular.com/r/MioSrVLK3S
@help_index.gsub!(%r{(\]\()(?!.+://)([^\)\(]+\))}, '\1/help/\2')
end
def show
......
......@@ -16,14 +16,6 @@ describe HelpController do
end
end
context 'when url prefixed with help/' do
it 'will be an absolute path' do
stub_readme("[API](help/api/README.md)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
end
end
context 'when url prefixed with help' do
it 'will be an absolute path' do
stub_readme("[API](helpful_hints/README.md)")
......@@ -32,11 +24,11 @@ describe HelpController do
end
end
context 'when url prefixed with /help/' do
context 'when url is an external link' do
it 'will not be changed' do
stub_readme("[API](/help/api/README.md)")
stub_readme("[external](https://some.external.link)")
get :index
expect(assigns[:help_index]).to eq '[API](/help/api/README.md)'
expect(assigns[:help_index]).to eq '[external](https://some.external.link)'
end
end
end
......
......@@ -10,4 +10,28 @@ describe 'Help Pages', feature: true do
expect(page).to have_content("ssh-keygen -t rsa -C \"#{@user.email}\"")
end
end
describe 'Get the main help page' do
shared_examples_for 'help page' do
it 'prefixes links correctly' do
expect(page).to have_selector('div.documentation-index > ul a[href="/help/api/README.md"]')
end
end
context 'without a trailing slash' do
before do
visit help_path
end
it_behaves_like 'help page'
end
context 'with a trailing slash' do
before do
visit help_path + '/'
end
it_behaves_like 'help page'
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