@@ -191,6 +191,76 @@ def id
191
191
end
192
192
end
193
193
194
+ describe "#enqueue_at with exception object" do
195
+ let ( :event_name ) { "enqueue.active_job" }
196
+
197
+ let ( :payload ) do
198
+ {
199
+ adapter : ActiveJob ::QueueAdapters ::InlineAdapter . new ,
200
+ job : job ,
201
+ exception_object : ArgumentError . new ( "error" )
202
+ }
203
+ end
204
+
205
+ it "logs message" do
206
+ messages = semantic_logger_events do
207
+ subscriber . enqueue_at ( event )
208
+ end
209
+ assert_equal 1 , messages . count , messages
210
+
211
+ assert_semantic_logger_event (
212
+ messages [ 0 ] ,
213
+ level : :error ,
214
+ name : "Rails" ,
215
+ message_includes : "Failed enqueuing ActiveJobTest::MyJob" ,
216
+ payload_includes : {
217
+ job_class : "ActiveJobTest::MyJob" ,
218
+ queue : "my_jobs" ,
219
+ event_name : "enqueue.active_job"
220
+ }
221
+ )
222
+ assert_includes messages [ 0 ] . payload , :job_id
223
+
224
+ exception = messages [ 0 ] . exception
225
+ assert exception . is_a? ( ArgumentError )
226
+ assert_equal "error" , exception . message
227
+ end
228
+ end
229
+
230
+ describe "#enqueue_at with throwing :abort" do
231
+ let ( :event_name ) { "enqueue.active_job" }
232
+
233
+ let ( :payload ) do
234
+ {
235
+ adapter : ActiveJob ::QueueAdapters ::InlineAdapter . new ,
236
+ job : job ,
237
+ aborted : true
238
+ }
239
+ end
240
+
241
+ it "logs message" do
242
+ messages = semantic_logger_events do
243
+ subscriber . enqueue_at ( event )
244
+ end
245
+ assert_equal 1 , messages . count , messages
246
+
247
+ assert_semantic_logger_event (
248
+ messages [ 0 ] ,
249
+ level : :info ,
250
+ name : "Rails" ,
251
+ message_includes : "Failed enqueuing ActiveJobTest::MyJob" ,
252
+ payload_includes : {
253
+ job_class : "ActiveJobTest::MyJob" ,
254
+ queue : "my_jobs" ,
255
+ event_name : "enqueue.active_job"
256
+ }
257
+ )
258
+ assert_match /Failed enqueuing .*, a before_enqueue callback halted the enqueuing execution/ , messages [ 0 ] . message
259
+ assert_includes messages [ 0 ] . payload , :job_id
260
+ end
261
+ end
262
+
263
+
194
264
describe "ActiveJob::Logging::LogSubscriber::EventFormatter" do
195
265
let ( :formatter ) do
196
266
RailsSemanticLogger ::ActiveJob ::LogSubscriber ::EventFormatter . new ( event : event , log_duration : true )
0 commit comments