b3c70d001d
Update the `#first_line_in_markdown` method so that the first line of parsed text is displayed more reliably, and the continuation indicators ("...") are displayed in all cases where the note is truncated. Also add Rspec tests for `EventsHelper#event_note`.
52 lines
1.6 KiB
Ruby
52 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe EventsHelper do
|
|
include ApplicationHelper
|
|
include GitlabMarkdownHelper
|
|
|
|
it 'should display one line of plain text without alteration' do
|
|
input = 'A short, plain note'
|
|
expect(event_note(input)).to match(input)
|
|
expect(event_note(input)).not_to match(/\.\.\.\z/)
|
|
end
|
|
|
|
it 'should display inline code' do
|
|
input = 'A note with `inline code`'
|
|
expected = 'A note with <code>inline code</code>'
|
|
|
|
expect(event_note(input)).to match(expected)
|
|
end
|
|
|
|
it 'should truncate a note with multiple paragraphs' do
|
|
input = "Paragraph 1\n\nParagraph 2"
|
|
expected = 'Paragraph 1...'
|
|
|
|
expect(event_note(input)).to match(expected)
|
|
end
|
|
|
|
it 'should display the first line of a code block' do
|
|
input = "```\nCode block\nwith two lines\n```"
|
|
expected = '<pre><code class="">Code block...</code></pre>'
|
|
|
|
expect(event_note(input)).to match(expected)
|
|
end
|
|
|
|
it 'should truncate a single long line of text' do
|
|
text = 'The quick brown fox jumped over the lazy dog twice' # 50 chars
|
|
input = "#{text}#{text}#{text}#{text}" # 200 chars
|
|
expected = "#{text}#{text}".sub(/.{3}/, '...')
|
|
|
|
expect(event_note(input)).to match(expected)
|
|
end
|
|
|
|
it 'should preserve a link href when link text is truncated' do
|
|
text = 'The quick brown fox jumped over the lazy dog' # 44 chars
|
|
input = "#{text}#{text}#{text} " # 133 chars
|
|
link_url = 'http://example.com/foo/bar/baz' # 30 chars
|
|
input << link_url
|
|
expected_link_text = 'http://example...</a>'
|
|
|
|
expect(event_note(input)).to match(link_url)
|
|
expect(event_note(input)).to match(expected_link_text)
|
|
end
|
|
end
|