1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- require 'rails_helper'
- require_dependency 'issue_2715_fix_broken_twitter_urls_job'
- RSpec.describe Issue2715FixBrokenTwitterUrlsJob, type: :job do
- context 'with existing Twitter articles' do
- let!(:tweet) { create(:twitter_article, preferences: tweet_preferences) }
- let!(:dm) { create(:twitter_dm_article, preferences: dm_preferences) }
- let(:tweet_preferences) do
-
- { links: [{ url: "https://twitter.com/statuses/#{Faker::Number.number(20)}" }] }
- end
- let(:dm_preferences) do
- {
-
- links: [{ url: "https://twitter.com/statuses/#{Faker::Number.number(20)}" }],
- twitter: {
- recipient_id: recipient_id,
- sender_id: sender_id,
- },
- }
- end
- let(:recipient_id) { '1234567890' }
- let(:sender_id) { '0987654321' }
- it 'reformats all Twitter status URLs' do
- expect { described_class.perform_now }
- .to change { urls_of(tweet) }
- .to all(match(%r{^https://twitter.com/_/status/#{tweet.message_id}$}))
- end
- it 'reformats all Twitter DM URLs' do
- expect { described_class.perform_now }
- .to change { urls_of(dm) }
- .to all(match(%r{^https://twitter.com/messages/#{recipient_id}-#{sender_id}$}))
- end
- def urls_of(article)
- article.reload.preferences[:links].map { |link| link[:url] }
- end
- end
- end
|