43 lines
1.5 KiB
Ruby
43 lines
1.5 KiB
Ruby
require 'rails_helper'
|
|
require 'email_cook'
|
|
|
|
describe EmailCook do
|
|
|
|
it 'adds linebreaks to short lines' do
|
|
expect(EmailCook.new("hello\nworld\n").cook).to eq("hello\n<br>world\n<br>")
|
|
end
|
|
|
|
it "doesn't add linebreaks to long lines" do
|
|
long = <<LONG_EMAIL
|
|
Hello,
|
|
|
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc convallis volutpat
|
|
risus. Nulla ac faucibus quam, quis cursus lorem. Sed rutrum eget nunc sed accumsan.
|
|
Vestibulum feugiat mi vitae turpis tempor dignissim.
|
|
LONG_EMAIL
|
|
|
|
long_cooked = <<LONG_COOKED
|
|
Hello,
|
|
<br>
|
|
<br>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc convallis volutpat
|
|
risus. Nulla ac faucibus quam, quis cursus lorem. Sed rutrum eget nunc sed accumsan.
|
|
Vestibulum feugiat mi vitae turpis tempor dignissim.
|
|
<br><br>
|
|
LONG_COOKED
|
|
expect(EmailCook.new(long).cook).to eq(long_cooked.strip)
|
|
end
|
|
|
|
it 'autolinks' do
|
|
stub_request(:get, "https://www.eviltrout.com").to_return(body: "")
|
|
expect(EmailCook.new("https://www.eviltrout.com").cook).to eq("<a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br>")
|
|
end
|
|
|
|
it 'autolinks without the beginning of a line' do
|
|
expect(EmailCook.new("my site: https://www.eviltrout.com").cook).to eq("my site: <a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br>")
|
|
end
|
|
|
|
it 'links even within a quote' do
|
|
expect(EmailCook.new("> https://www.eviltrout.com").cook).to eq("<blockquote><a href='https://www.eviltrout.com'>https://www.eviltrout.com</a><br></blockquote>")
|
|
end
|
|
end
|