1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Support nesting mailboxes in modules

This commit is contained in:
George Claghorn 2018-10-01 17:48:44 -04:00
parent 704179251f
commit 622901636b
2 changed files with 15 additions and 2 deletions

View file

@ -21,7 +21,7 @@ class ActionMailbox::Router::Route
end
def mailbox_class
"#{mailbox_name.to_s.capitalize}Mailbox".constantize
"#{mailbox_name.to_s.camelize}Mailbox".constantize
end
private

View file

@ -13,6 +13,11 @@ end
class SecondMailbox < RootMailbox
end
module Nested
class FirstMailbox < RootMailbox
end
end
class FirstMailboxAddress
def match?(inbound_email)
inbound_email.mail.to.include?("replies-class@example.com")
@ -57,7 +62,7 @@ module ActionMailbox
assert_equal "SecondMailbox", $processed_by
assert_equal inbound_email.mail, $processed_mail
end
test "single regexp route" do
@router.add_routes(/replies-\w+@example.com/ => :first, "replies-nowhere@example.com" => :second)
@ -81,6 +86,14 @@ module ActionMailbox
assert_equal "FirstMailbox", $processed_by
end
test "string route to nested mailbox" do
@router.add_route "first@example.com", to: "nested/first"
inbound_email = create_inbound_email_from_mail(to: "first@example.com", subject: "This is a reply")
@router.route inbound_email
assert_equal "Nested::FirstMailbox", $processed_by
end
test "missing route" do
assert_raises(ActionMailbox::Router::RoutingError) do
inbound_email = create_inbound_email_from_mail(to: "going-nowhere@example.com", subject: "This is a reply")