Reports email notification; wrong recipient

The mailer uses the person_id to find a user
which cannot work on a production environment.

I haven't used a remote user on my test setup.
This commit is contained in:
Lukas Matt 2014-06-23 15:54:25 -04:00
parent c475a3985e
commit 01a45ccf40
2 changed files with 16 additions and 7 deletions

View file

@ -8,10 +8,13 @@ class ReportMailer < ActionMailer::Base
:id => id
}
Role.admins.each do |role|
user = User.find_by_id(role.person_id)
unless user.user_preferences.exists?(:email_type => :someone_reported)
resource[:email] = user.email
format(resource).deliver
person = Person.find(role.person_id)
if person.local?
user = User.find_by_id(person.owner_id)
unless user.user_preferences.exists?(:email_type => :someone_reported)
resource[:email] = user.email
format(resource).deliver
end
end
end
end

View file

@ -7,8 +7,9 @@ require 'spec_helper'
describe Report do
describe '#make_notification' do
before do
@user = bob
Role.add_admin(@user)
@remote = FactoryGirl.create(:person, :diaspora_handle => "remote@remote.net")
@user = FactoryGirl.create(:user_with_aspect, :username => "local")
Role.add_admin(@user.person)
end
it "should deliver successfully" do
@ -22,5 +23,10 @@ describe Report do
ReportMailer.new_report('post', 666)
}.to change(ActionMailer::Base.deliveries, :size).by(1)
end
it "should include correct recipient" do
ReportMailer.new_report('post', 666)
expect(ActionMailer::Base.deliveries[0].to[0]).to include(@user.email)
end
end
end