diff --git a/.rubocop.yml b/.rubocop.yml index c476e449..660a1790 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -127,4 +127,4 @@ Style/RescueStandardError: Enabled: false Style/Encoding: - Enabled: false \ No newline at end of file + Enabled: false diff --git a/spec/workers/share_worker_spec.rb b/spec/workers/share_worker_spec.rb index 4120aeda..269fbfa5 100644 --- a/spec/workers/share_worker_spec.rb +++ b/spec/workers/share_worker_spec.rb @@ -1,40 +1,42 @@ # frozen_string_literal: true -require 'rails_helper' +require "rails_helper" describe ShareWorker do let(:user) { FactoryBot.create(:user) } let(:answer) { FactoryBot.create(:answer, user: user) } - let!(:service) { Services::Twitter.create!(type: 'Services::Twitter', - user: user) } + let!(:service) do + Services::Twitter.create!(type: "Services::Twitter", + user: user) + end before do stub_const("APP_CONFIG", { - 'hostname' => 'example.com', - 'anonymous_name' => 'Anonymous', - 'https' => true, - 'items_per_page' => 5, - 'sharing' => { - 'twitter' => { - 'consumer_key' => '', - } - } - }) + "hostname" => "example.com", + "anonymous_name" => "Anonymous", + "https" => true, + "items_per_page" => 5, + "sharing" => { + "twitter" => { + "consumer_key" => "" + } + } + }) end describe "#perform" do before do - allow(Sidekiq.logger).to receive(:info) + allow(Sidekiq.logger).to receive(:info) end subject do Sidekiq::Testing.fake! do - ShareWorker.perform_async(user.id, answer.id, 'twitter') + ShareWorker.perform_async(user.id, answer.id, "twitter") end end - context 'when answer doesn\'t exist' do - it 'prevents the job from retrying and logs a message' do + context "when answer doesn't exist" do + it "prevents the job from retrying and logs a message" do answer.destroy! expect { subject }.to change(ShareWorker.jobs, :size).by(1) expect { ShareWorker.drain }.to change(ShareWorker.jobs, :size).by(-1) @@ -42,22 +44,22 @@ describe ShareWorker do end end - context 'when answer exists' do - it 'handles Twitter::Error::DuplicateStatus' do + context "when answer exists" do + it "handles Twitter::Error::DuplicateStatus" do allow_any_instance_of(Services::Twitter).to receive(:post).with(answer).and_raise(Twitter::Error::DuplicateStatus) subject ShareWorker.drain expect(Sidekiq.logger).to have_received(:info).with("Tried to post answer ##{answer.id} from user ##{user.id} to Twitter but the status was already posted.") end - it 'handles Twitter::Error::Unauthorized' do + it "handles Twitter::Error::Unauthorized" do allow_any_instance_of(Services::Twitter).to receive(:post).with(answer).and_raise(Twitter::Error::Unauthorized) subject ShareWorker.drain expect(Sidekiq.logger).to have_received(:info).with("Tried to post answer ##{answer.id} from user ##{user.id} to Twitter but the token has exired or been revoked.") end - it 'retries on unhandled exceptions' do + it "retries on unhandled exceptions" do expect { subject }.to change(ShareWorker.jobs, :size).by(1) expect { ShareWorker.drain }.to raise_error(Twitter::Error::BadRequest) expect(Sidekiq.logger).to have_received(:info)