Add tests for `SocialHelper::TwitterMethods`
This commit is contained in:
parent
b630baa870
commit
b202a1f7e7
|
@ -0,0 +1,43 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
describe SocialHelper::TwitterMethods, :type => :helper do
|
||||
let(:user) { FactoryBot.create(:user) }
|
||||
let(:answer) { FactoryBot.create(:answer, user: user,
|
||||
content: 'a' * 255,
|
||||
question_content: 'q' * 255) }
|
||||
|
||||
describe '#prepare_tweet' do
|
||||
context 'when the question and answer need to be shortened' do
|
||||
subject { prepare_tweet(answer) }
|
||||
|
||||
it 'should return a properly formatted tweet' do
|
||||
expect(subject).to eq("#{'q' * 123}… — #{'a' * 124}… https://justask.rrerr.net/#{user.screen_name}/a/#{answer.id}")
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the question and answer are short' do
|
||||
before do
|
||||
answer.question.content = 'Why are raccoons so good?'
|
||||
answer.question.save!
|
||||
answer.content = 'Because they are good cunes.'
|
||||
answer.save!
|
||||
end
|
||||
|
||||
subject { prepare_tweet(answer) }
|
||||
|
||||
it 'should return a properly formatted tweet' do
|
||||
expect(subject).to eq("#{answer.question.content} — #{answer.content} https://justask.rrerr.net/#{user.screen_name}/a/#{answer.id}")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#twitter_share_url' do
|
||||
subject { twitter_share_url(answer) }
|
||||
|
||||
it 'should return a proper share link' do
|
||||
expect(subject).to eq("https://twitter.com/intent/tweet?text=#{CGI.escape(prepare_tweet(answer))}")
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue