docbrown/spec/workers/articles/rss_reader_worker_spec.rb
rhymes 1741e52e83
Add missing features to new feed importer (#11501)
* Add explanatory comment to how RssReaderFetchUserWorker works

* Add Feeds::ImportWorker worker

* Enable Feeds::Import for single user feed fetching behind a feature flag

* Add Feeds::ValidateUrl service

* Add feature flag to user's validate feed URL feature

* Remove todo notices

* Add feature flag to fetch_all_rss task

* Add feature flag to RssReaderWorker

* Bring back short-circuit for Articles::RssReaderWorker
2020-11-24 18:11:13 +01:00

49 lines
1.5 KiB
Ruby

require "rails_helper"
RSpec.describe Articles::RssReaderWorker, type: :worker do
let(:worker) { subject }
include_examples "#enqueues_on_correct_queue", "medium_priority"
describe "#perform" do
it "instructs RssReader to fetch all articles" do
allow(RssReader).to receive(:get_all_articles)
worker.perform
expect(RssReader).to have_received(:get_all_articles).with(force: false)
end
it "does not enqueue Feeds::ImportArticlesWorker if the :feeds_import flag is not enabled" do
allow(RssReader).to receive(:get_all_articles)
sidekiq_assert_no_enqueued_jobs do
worker.perform
end
expect(RssReader).to have_received(:get_all_articles).with(force: false)
end
it "enqueues Feeds::ImportArticlesWorker if the :feeds_import flag is enabled" do
allow(RssReader).to receive(:get_all_articles)
allow(FeatureFlag).to receive(:enabled?).with(:feeds_import).and_return(true)
sidekiq_assert_enqueued_jobs(1, only: Feeds::ImportArticlesWorker) do
worker.perform
end
expect(RssReader).not_to have_received(:get_all_articles)
end
it "short circuits if it's running on DEV" do
allow(SiteConfig).to receive(:community_name).and_return("DEV")
allow(RssReader).to receive(:get_all_articles)
allow(FeatureFlag).to receive(:enabled?)
worker.perform
expect(RssReader).not_to have_received(:get_all_articles)
expect(FeatureFlag).not_to have_received(:enabled?)
end
end
end