@@ -121,6 +121,74 @@ def id
121
121
end
122
122
end
123
123
124
+ describe "#enqueue with exception object" do
125
+ let ( :event_name ) { "enqueue.active_job" }
126
+
127
+ let ( :payload ) do
128
+ {
129
+ adapter : ActiveJob ::QueueAdapters ::InlineAdapter . new ,
130
+ job : job ,
131
+ exception_object : ArgumentError . new ( "error" )
132
+ }
133
+ end
134
+
135
+ it "logs message" do
136
+ messages = semantic_logger_events do
137
+ subscriber . enqueue ( event )
138
+ end
139
+ assert_equal 1 , messages . count , messages
140
+
141
+ assert_semantic_logger_event (
142
+ messages [ 0 ] ,
143
+ level : :error ,
144
+ name : "Rails" ,
145
+ message_includes : "Error enqueuing ActiveJobTest::MyJob" ,
146
+ payload_includes : {
147
+ job_class : "ActiveJobTest::MyJob" ,
148
+ queue : "my_jobs" ,
149
+ event_name : "enqueue.active_job"
150
+ }
151
+ )
152
+ assert_includes messages [ 0 ] . payload , :job_id
153
+
154
+ exception = messages [ 0 ] . exception
155
+ assert exception . is_a? ( ArgumentError )
156
+ assert_equal "error" , exception . message
157
+ end
158
+ end
159
+
160
+ describe "#enqueue with throwing :abort" do
161
+ let ( :event_name ) { "enqueue.active_job" }
162
+
163
+ let ( :payload ) do
164
+ {
165
+ adapter : ActiveJob ::QueueAdapters ::InlineAdapter . new ,
166
+ job : job ,
167
+ aborted : true
168
+ }
169
+ end
170
+
171
+ it "logs message" do
172
+ messages = semantic_logger_events do
173
+ subscriber . enqueue ( event )
174
+ end
175
+ assert_equal 1 , messages . count , messages
176
+
177
+ assert_semantic_logger_event (
178
+ messages [ 0 ] ,
179
+ level : :error ,
180
+ name : "Rails" ,
181
+ message_includes : "Failed enqueuing ActiveJobTest::MyJob, a before_enqueue callback halted the enqueuing execution." ,
182
+ payload_includes : {
183
+ job_class : "ActiveJobTest::MyJob" ,
184
+ queue : "my_jobs" ,
185
+ event_name : "enqueue.active_job"
186
+ }
187
+ )
188
+ assert_includes messages [ 0 ] . payload , :job_id
189
+ end
190
+ end
191
+
124
192
describe "ActiveJob::Logging::LogSubscriber::EventFormatter" do
125
193
let ( :formatter ) do
126
194
RailsSemanticLogger ::ActiveJob ::LogSubscriber ::EventFormatter . new ( event : event , log_duration : true )
0 commit comments