@@ -191,6 +191,76 @@ def id
191191 end
192192 end
193193
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+
194264 describe "ActiveJob::Logging::LogSubscriber::EventFormatter" do
195265 let ( :formatter ) do
196266 RailsSemanticLogger ::ActiveJob ::LogSubscriber ::EventFormatter . new ( event : event , log_duration : true )
0 commit comments