- 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>
32 lines
908 B
Ruby
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
|