Always use short SHAs as commit reference link text
Now when a user pastes a full SHA like `d7f61affaf845f44b4cc995e34eb1606c47c8eff`, its link text will only show `d7f61aff` for brevity.
This commit is contained in:
parent
89775da8e5
commit
2c8bfedb20
|
@ -59,7 +59,7 @@ module Gitlab
|
||||||
|
|
||||||
%(<a href="#{url}"
|
%(<a href="#{url}"
|
||||||
title="#{title}"
|
title="#{title}"
|
||||||
class="#{klass}">#{project_ref}#{commit_ref}</a>)
|
class="#{klass}">#{project_ref}#{commit.short_id}</a>)
|
||||||
else
|
else
|
||||||
match
|
match
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,15 +27,23 @@ module Gitlab::Markdown
|
||||||
it "links to a valid reference of #{size} characters" do
|
it "links to a valid reference of #{size} characters" do
|
||||||
doc = filter("See #{reference[0...size]}")
|
doc = filter("See #{reference[0...size]}")
|
||||||
|
|
||||||
expect(doc.css('a').first.text).to eq reference[0...size]
|
expect(doc.css('a').first.text).to eq commit.short_id
|
||||||
expect(doc.css('a').first.attr('href')).
|
expect(doc.css('a').first.attr('href')).
|
||||||
to eq urls.namespace_project_commit_url(project.namespace, project, reference)
|
to eq urls.namespace_project_commit_url(project.namespace, project, reference)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'always uses the short ID as the link text' do
|
||||||
|
doc = filter("See #{commit.id}")
|
||||||
|
expect(doc.text).to eq "See #{commit.short_id}"
|
||||||
|
|
||||||
|
doc = filter("See #{commit.id[0...6]}")
|
||||||
|
expect(doc.text).to eq "See #{commit.short_id}"
|
||||||
|
end
|
||||||
|
|
||||||
it 'links with adjacent text' do
|
it 'links with adjacent text' do
|
||||||
doc = filter("See (#{reference}.)")
|
doc = filter("See (#{reference}.)")
|
||||||
expect(doc.to_html).to match(/\(<a.+>#{Regexp.escape(reference)}<\/a>\.\)/)
|
expect(doc.to_html).to match(/\(<a.+>#{commit.short_id}<\/a>\.\)/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'ignores invalid commit IDs' do
|
it 'ignores invalid commit IDs' do
|
||||||
|
@ -55,7 +63,7 @@ module Gitlab::Markdown
|
||||||
allow_any_instance_of(Commit).to receive(:title).and_return(%{"></a>whatever<a title="})
|
allow_any_instance_of(Commit).to receive(:title).and_return(%{"></a>whatever<a title="})
|
||||||
|
|
||||||
doc = filter("See #{reference}")
|
doc = filter("See #{reference}")
|
||||||
expect(doc.text).to eq "See #{commit.id}"
|
expect(doc.text).to eq "See #{commit.short_id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'includes default classes' do
|
it 'includes default classes' do
|
||||||
|
@ -100,7 +108,9 @@ module Gitlab::Markdown
|
||||||
|
|
||||||
it 'links with adjacent text' do
|
it 'links with adjacent text' do
|
||||||
doc = filter("Fixed (#{reference}.)")
|
doc = filter("Fixed (#{reference}.)")
|
||||||
expect(doc.to_html).to match(/\(<a.+>#{Regexp.escape(reference)}<\/a>\.\)/)
|
|
||||||
|
exp = Regexp.escape(project2.path_with_namespace)
|
||||||
|
expect(doc.to_html).to match(/\(<a.+>#{exp}@#{commit.short_id}<\/a>\.\)/)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'ignores invalid commit IDs on the referenced project' do
|
it 'ignores invalid commit IDs on the referenced project' do
|
||||||
|
|
Loading…
Reference in New Issue