diff --git a/app/services/staff_action_logger.rb b/app/services/staff_action_logger.rb index 0e420e5f4..cd681eea9 100644 --- a/app/services/staff_action_logger.rb +++ b/app/services/staff_action_logger.rb @@ -42,10 +42,13 @@ class StaffActionLogger topic = deleted_post.topic || Topic.with_deleted.find(deleted_post.topic_id) + username = deleted_post.user.try(:username) || "unknown" + name = deleted_post.user.try(:name) || "unknown" + details = [ "id: #{deleted_post.id}", "created_at: #{deleted_post.created_at}", - "user: #{deleted_post.user.username} (#{deleted_post.user.name})", + "user: #{username} (#{name})", "topic: #{topic.title}", "post_number: #{deleted_post.post_number}", "raw: #{deleted_post.raw}" diff --git a/spec/services/staff_action_logger_spec.rb b/spec/services/staff_action_logger_spec.rb index f055737cf..cb7d6e175 100644 --- a/spec/services/staff_action_logger_spec.rb +++ b/spec/services/staff_action_logger_spec.rb @@ -63,6 +63,13 @@ describe StaffActionLogger do it 'creates a new UserHistory record' do expect { log_post_deletion }.to change { UserHistory.count }.by(1) end + + it 'does not explode if post does not have a user' do + expect { + deleted_post.update_columns(user_id: nil) + log_post_deletion + }.to change { UserHistory.count }.by(1) + end end describe 'log_topic_deletion' do