Files
aperonight/test/jobs/event_reminder_job_test.rb
kbe ce0752bbda feat: Complete email notifications system with comprehensive functionality
- Implement comprehensive email notification system for ticket purchases and event reminders
- Add event reminder job with configurable scheduling
- Enhance ticket mailer with QR code generation and proper formatting
- Update order model with email delivery tracking
- Add comprehensive test coverage for all email functionality
- Configure proper mailer settings and disable annotations
- Update backlog to reflect completed email features

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 20:21:01 +02:00

32 lines
908 B
Ruby

require "test_helper"
class EventReminderJobTest < ActiveJob::TestCase
def setup
@event = events(:concert_event)
@user = users(:one)
@ticket = tickets(:one)
end
test "performs event reminder job for users with tickets" do
# Mock the mailer to avoid actual email sending in tests
TicketMailer.expects(:event_reminder).with(@user, @event, 7).returns(stub(deliver_now: true))
EventReminderJob.perform_now(@event.id, 7)
end
test "handles missing event gracefully" do
assert_raises(ActiveRecord::RecordNotFound) do
EventReminderJob.perform_now(999999, 7)
end
end
test "logs error when mailer fails" do
# Mock a failing mailer
TicketMailer.stubs(:event_reminder).raises(StandardError.new("Test error"))
Rails.logger.expects(:error).with(regexp_matches(/Failed to send event reminder/))
EventReminderJob.perform_now(@event.id, 7)
end
end