diff --git a/jobs/regular/discourse_post_event/send_reminder.rb b/jobs/regular/discourse_post_event/send_reminder.rb index 97aabacd..85fdf80d 100644 --- a/jobs/regular/discourse_post_event/send_reminder.rb +++ b/jobs/regular/discourse_post_event/send_reminder.rb @@ -9,6 +9,9 @@ module Jobs raise Discourse::InvalidParameters.new(:reminder) if args[:reminder].blank? event = DiscoursePostEvent::Event.includes(post: [:topic], invitees: [:user]).find(args[:event_id]) + + return unless event.post + invitees = event.invitees.where(status: [ DiscoursePostEvent::Invitee.statuses[:going], DiscoursePostEvent::Invitee.statuses[:interested] diff --git a/spec/jobs/regular/discourse_post_event/send_reminder_spec.rb b/spec/jobs/regular/discourse_post_event/send_reminder_spec.rb index c918093b..aa4c80c0 100644 --- a/spec/jobs/regular/discourse_post_event/send_reminder_spec.rb +++ b/spec/jobs/regular/discourse_post_event/send_reminder_spec.rb @@ -65,6 +65,18 @@ describe Jobs::DiscoursePostEventSendReminder do end end + context 'deleted post' do + let!(:event_1) { Fabricate(:event, post: post_1, reminders: reminders, original_starts_at: 3.hours.from_now) } + + it 'is not erroring when post is already deleted' do + post_1.delete + + expect { + subject.execute(event_id: event_1.id, reminder: reminders) + }.not_to raise_error + end + end + context 'public event' do context 'event has not started' do let!(:event_1) { Fabricate(:event, post: post_1, reminders: reminders, original_starts_at: 3.hours.from_now) }