Updated

spec/jobs / email_petitioners_job_spec.rb

D
44 lines of codes
0 methods
N/A complexity/method
16 churn
70.72 complexity
111 duplications
require 'rails_helper' require_relative 'shared_examples' RSpec.describe EmailPetitionersJob, type: :job do let(:email_requested_at) { Time.current }
  1. Similar code found in 2 nodes Locations: 0 1
let(:petition) { FactoryBot.create(:open_petition) } let(:signature) { FactoryBot.create(:validated_signature, :petition => petition) } let(:email) { FactoryBot.create(:petition_email, petition: petition) } let(:arguments) { { petition: petition, email: email } } before do petition.set_email_requested_at_for('petition_email', to: email_requested_at) allow(petition).to receive_message_chain(:signatures_to_email_for, :find_each).and_yield(signature) end it_behaves_like "job to enqueue signatory mailing jobs" context "when the petition email has been deleted" do before do email.destroy end it "enqueues a job" do described_class.run_later_tonight(**arguments) expect(enqueued_jobs.size).to eq(1) end it "doesn't raise an error" do expect { perform_enqueued_jobs { described_class.run_later_tonight(**arguments) } }.not_to raise_error end it "doesn't send any email" do expect { perform_enqueued_jobs { described_class.run_later_tonight(**arguments) } }.not_to change { deliveries.size } end end end