@@ -8,7 +8,7 @@ class EmailTest < ActiveSupport::TestCase
88 @notification = noticed_notifications ( :one )
99 end
1010
11- test "sends email" do
11+ test "sends email (with args) " do
1212 set_config (
1313 mailer : "UserMailer" ,
1414 method : "new_comment" ,
@@ -21,6 +21,76 @@ class EmailTest < ActiveSupport::TestCase
2121 end
2222 end
2323
24+ test "sends email (with kwargs)" do
25+ set_config (
26+ mailer : "UserMailer" ,
27+ method : "greeting" ,
28+ params : -> { { foo : :bar } } ,
29+ kwargs : -> { { body : "Custom" } }
30+ )
31+
32+ assert_emails ( 1 ) do
33+ @delivery_method . deliver
34+ end
35+ end
36+
37+ test "sends email (with kwargs, replacing default argument)" do
38+ set_config (
39+ mailer : "UserMailer" ,
40+ method : "greeting" ,
41+ params : -> { { foo : :bar } } ,
42+ kwargs : -> { { body : "Custom" , subject : "Testing" } }
43+ )
44+
45+ assert_emails ( 1 ) do
46+ @delivery_method . deliver
47+ end
48+ end
49+
50+ test "raises the underlying ArgumentError if kwargs are missing" do
51+ set_config (
52+ mailer : "UserMailer" ,
53+ method : "greeting" ,
54+ params : -> { { foo : :bar } } ,
55+ kwargs : -> { { baz : 123 } }
56+ )
57+
58+ error = assert_raises ArgumentError do
59+ @delivery_method . deliver
60+ end
61+
62+ assert_equal "missing keyword: :body" , error . message
63+ end
64+
65+ test "raises the underlying ArgumentError if unknown kwargs are given" do
66+ set_config (
67+ mailer : "UserMailer" ,
68+ method : "greeting" ,
69+ params : -> { { foo : :bar } } ,
70+ kwargs : -> { { body : "Test" , baz : 123 } }
71+ )
72+
73+ error = assert_raises ArgumentError do
74+ @delivery_method . deliver
75+ end
76+
77+ assert_equal "unknown keyword: :baz" , error . message
78+ end
79+
80+ test "accepts both args and kwargs" do
81+ set_config (
82+ mailer : "UserMailer" ,
83+ method : "greeting" ,
84+ params : -> { { foo : :bar } } ,
85+ args : -> { [ "hey" ] } ,
86+ kwargs : -> { { body : "Test" } }
87+ )
88+
89+ assert_emails ( 1 ) do
90+ @delivery_method . deliver
91+ end
92+ end
93+
2494 test "enqueues email" do
2595 set_config (
2696 mailer : "UserMailer" ,
0 commit comments