@@ -8,16 +8,6 @@ def some_email(to:, from:, subject:)
88 end
99
1010 describe "ActionMailer" do
11- before do
12- ::ActionMailer ::Base . delivery_method = :test
13- @mock_logger = MockLogger . new
14- @appender = SemanticLogger . add_appender ( logger : @mock_logger , formatter : :raw )
15- end
16-
17- after do
18- SemanticLogger . remove_appender ( @appender )
19- end
20-
2111 describe "#deliver" do
2212 it "sets the ActionMailer logger" do
2313 assert_kind_of SemanticLogger ::Logger , MyMailer . logger
@@ -26,6 +16,40 @@ def some_email(to:, from:, subject:)
2616 it "sends the email" do
2717 MyMailer . some_email ( to : 'test@test.com' , from : 'test@test.com' , subject : 'test' ) . deliver_now
2818 end
19+
20+ it "writes log messages" do
21+ messages = semantic_logger_events do
22+ MyMailer . some_email ( to : 'test@test.com' , from : 'test@test.com' , subject : 'test' ) . deliver_now
23+ end
24+ assert_equal 2 , messages . count , messages
25+
26+ assert_semantic_logger_event (
27+ messages [ 0 ] ,
28+ level : :info ,
29+ name : "ActionMailer::Base" ,
30+ message_includes : "ActionMailerTest::MyMailer#some_email: processed outbound mail" ,
31+ payload_includes : {
32+ event_name : "process.action_mailer" ,
33+ mailer : "ActionMailerTest::MyMailer" ,
34+ action : :some_email ,
35+ }
36+ )
37+
38+ assert_semantic_logger_event (
39+ messages [ 1 ] ,
40+ level : :info ,
41+ name : "ActionMailer::Base" ,
42+ message_includes : Rails ::VERSION ::MAJOR >= 6 ? "Delivered mail" : "Skipped delivery" ,
43+ payload_includes : {
44+ event_name : "deliver.action_mailer" ,
45+ mailer : "ActionMailerTest::MyMailer" ,
46+ perform_deliveries : Rails ::VERSION ::MAJOR >= 6 ? true : nil ,
47+ subject : "test" ,
48+ to : [ "test@test.com" ] ,
49+ from : [ "test@test.com" ] ,
50+ }
51+ )
52+ end
2953 end
3054
3155 describe "Logging::LogSubscriber" do
@@ -36,11 +60,7 @@ def some_email(to:, from:, subject:)
3660 let ( :subscriber ) { RailsSemanticLogger ::ActionMailer ::LogSubscriber . new }
3761
3862 let ( :event ) do
39- ActiveSupport ::Notifications ::Event . new event_name ,
40- 5 . seconds . ago ,
41- Time . zone . now ,
42- SecureRandom . uuid ,
43- payload
63+ ActiveSupport ::Notifications ::Event . new ( event_name , 5 . seconds . ago , Time . zone . now , SecureRandom . uuid , payload )
4464 end
4565
4666 let ( :payload ) do
0 commit comments