diff --git a/ruby/spec/jam_ruby/models/email_batch_spec_new_musicians.rb b/ruby/spec/jam_ruby/models/email_batch_spec_new_musicians.rb index d6dd13626..ae0e91c11 100644 --- a/ruby/spec/jam_ruby/models/email_batch_spec_new_musicians.rb +++ b/ruby/spec/jam_ruby/models/email_batch_spec_new_musicians.rb @@ -15,13 +15,20 @@ describe EmailBatchNewMusician do let (:new_musician_batch) { FactoryGirl.create(:email_batch_new_musician) } - let (:receiver) { + let (:receiver1) { FactoryGirl.create(:user, :created_at => Time.now - (EmailBatchNewMusician::SINCE_DAYS.days + 1.day), :last_jam_locidispid => 1, :last_jam_addr => 1 ) } + let (:receiver2) { + FactoryGirl.create(:user, + :created_at => Time.now - (EmailBatchNewMusician::SINCE_DAYS.days + 1.day), + :last_jam_locidispid => 3, + :last_jam_addr => 3 + ) + } let (:drummer) { FactoryGirl.create(:user, :last_jam_locidispid => 1, @@ -38,27 +45,51 @@ describe EmailBatchNewMusician do let (:loser) { FactoryGirl.create(:user, :last_jam_locidispid => 2, :last_jam_addr => 2) } + let (:drummer3) { FactoryGirl.create(:user, + :last_jam_locidispid => 3, + :last_jam_addr => 3) } + let (:guitarist3) { FactoryGirl.create(:user, + :last_jam_locidispid => 3, + :last_jam_addr => 3) } + let (:bassist3) { FactoryGirl.create(:user, + :last_jam_locidispid => 3, + :last_jam_addr => 3) } + let (:vocalist3) { FactoryGirl.create(:user, + :last_jam_locidispid => 3, + :last_jam_addr => 3) } before(:each) do - + drummer; guitarist; bassist; vocalist; loser + drummer3; guitarist3; bassist3; vocalist3 + receiver1; receiver2 + new_musician_batch.reset! + JamRuby::Score.delete_all JamRuby::Score.createx(1, 'a', 1, 1, 'a', 1, 10) JamRuby::Score.createx(1, 'a', 1, 2, 'a', 2, Score::MAX_YELLOW_LATENCY + 1) end it 'sets up data properly' do - receiver; drummer; loser; vocalist results = new_musician_batch.fetch_recipients expect(results.count).to eq(1) user, new_musicians = results[0] - expect(user.id).to eq(receiver.id) - expect(new_musicians.count).to eq(2) + expect(user.id).to eq(receiver1.id) + expect(new_musicians.count).to eq(4) end it 'sends email' do - receiver; drummer; loser; vocalist ebatch = new_musician_batch ebatch.deliver_batch expect(UserMailer.deliveries.length).to eq(1) end + it 'handles multiple receivers' do + JamRuby::Score.createx(1, 'a', 1, 3, 'a', 3, 10) + results = new_musician_batch.fetch_recipients + expect(results.count).to eq(2) + user, new_musicians = results.detect { |rr| rr[0].id == receiver1.id } + expect(new_musicians.count).to eq(8) + user, new_musicians = results.detect { |rr| rr[0].id == receiver2.id } + expect(new_musicians.count).to eq(4) + end + end end