Skip to content

Commit 59f8d15

Browse files
committed
Add tests for enqueue event with exception and abort
1 parent f3aea8c commit 59f8d15

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

test/active_job_test.rb

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,74 @@ def id
121121
end
122122
end
123123

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+
124192
describe "ActiveJob::Logging::LogSubscriber::EventFormatter" do
125193
let(:formatter) do
126194
RailsSemanticLogger::ActiveJob::LogSubscriber::EventFormatter.new(event: event, log_duration: true)

0 commit comments

Comments
 (0)