Commit 4a9a163c authored by Brett Walker's avatar Brett Walker

Strip + reference format from HTML links

so that the links are valid

Changelog: fixed
parent e14d2414
......@@ -21,6 +21,7 @@ RSpec.describe Banzai::Filter::References::EpicReferenceFilter do
context 'internal reference' do
let(:reference) { "&#{epic.iid}" }
let(:epic_url) { urls.group_epic_url(group, epic) }
it 'links to a valid reference' do
expect(doc.css('a').first.attr('href')).to eq(urls.group_epic_url(group, epic))
......@@ -66,17 +67,19 @@ RSpec.describe Banzai::Filter::References::EpicReferenceFilter do
end
it 'includes a data-reference-format attribute' do
link = doc("&#{epic.iid}+").css('a').first
link = doc("#{reference}+").css('a').first
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(epic_url)
end
it 'includes a data-reference-format attribute for URL references' do
link = doc("#{urls.group_epic_url(group, epic)}+").css('a').first
link = doc("#{epic_url}+").css('a').first
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(epic_url)
end
it 'ignores invalid epic IIDs' do
......
......@@ -216,6 +216,8 @@ module Banzai
url_for_object_cached(object, parent)
end
url.chomp!(matches[:format]) if matches.names.include?("format")
content = link_content || object_link_text(object, matches)
link = %(<a href="#{url}" #{data}
......
......@@ -122,6 +122,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(issue_url)
end
it 'includes a data-reference-format attribute for URL references' do
......@@ -130,6 +131,7 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(issue_url)
end
it 'supports an :only_path context' do
......
......@@ -51,6 +51,7 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter do
context 'internal reference' do
let(:reference) { merge.to_reference }
let(:merge_request_url) { urls.project_merge_request_url(project, merge) }
it 'links to a valid reference' do
doc = reference_filter("See #{reference}")
......@@ -115,14 +116,16 @@ RSpec.describe Banzai::Filter::References::MergeRequestReferenceFilter do
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(merge_request_url)
end
it 'includes a data-reference-format attribute for URL references' do
doc = reference_filter("Merge #{urls.project_merge_request_url(project, merge)}+")
doc = reference_filter("Merge #{merge_request_url}+")
link = doc.css('a').first
expect(link).to have_attribute('data-reference-format')
expect(link.attr('data-reference-format')).to eq('+')
expect(link.attr('href')).to eq(merge_request_url)
end
it 'supports an :only_path context' do
......
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