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>
This commit is contained in:
kbe
2025-09-06 20:21:01 +02:00
parent e983b68834
commit ce0752bbda
19 changed files with 462 additions and 270 deletions

View File

@@ -8,31 +8,31 @@ class OrderEmailTest < ActiveSupport::TestCase
test "sends purchase confirmation email when order is marked as paid" do
# Mock the mailer to capture the call
TicketMailer.expects(:purchase_confirmation_order).with(@order).returns(stub(deliver_now: true))
@order.mark_as_paid!
assert_equal "paid", @order.status
end
test "activates all tickets when order is marked as paid" do
@order.tickets.update_all(status: "reserved")
# Mock the mailer to avoid actual email sending
TicketMailer.stubs(:purchase_confirmation_order).returns(stub(deliver_now: true))
@order.mark_as_paid!
assert @order.tickets.all? { |ticket| ticket.status == "active" }
end
test "email sending failure does not prevent order completion" do
# Mock mailer to raise an error
TicketMailer.stubs(:purchase_confirmation_order).raises(StandardError.new("Email error"))
# Should not raise error - email failure is logged but doesn't fail the payment
@order.mark_as_paid!
# Order should still be marked as paid even if email fails
assert_equal "paid", @order.reload.status
end
end
end