DEV: Raise exceptions when jobs fail in test mode

Previously jobs would fail silently in test mode. Now they will raise the exception and cause the relevant test to fail. This identified a few broken tests, which I will fix in a followup commit
This commit is contained in:
David Taylor 2019-04-08 15:57:47 +01:00
parent 5e68c5f851
commit 20cda5d689
2 changed files with 10 additions and 2 deletions

View File

@ -54,6 +54,8 @@ module Discourse
current_db: cm.current_db, current_db: cm.current_db,
current_hostname: cm.current_hostname current_hostname: cm.current_hostname
}.merge(context)) }.merge(context))
raise ex if Rails.env.test?
end end
# Expected less matches than what we got in a find # Expected less matches than what we got in a find

View File

@ -274,7 +274,10 @@ describe Discourse do
it "should not fail when called" do it "should not fail when called" do
exception = StandardError.new exception = StandardError.new
expect do
Discourse.handle_job_exception(exception, nil, nil) Discourse.handle_job_exception(exception, nil, nil)
end.to raise_error(StandardError) # Raises in test mode, catch it
expect(logger.exception).to eq(exception) expect(logger.exception).to eq(exception)
expect(logger.context.keys).to eq([:current_db, :current_hostname]) expect(logger.context.keys).to eq([:current_db, :current_hostname])
end end
@ -282,7 +285,10 @@ describe Discourse do
it "correctly passes extra context" do it "correctly passes extra context" do
exception = StandardError.new exception = StandardError.new
expect do
Discourse.handle_job_exception(exception, { message: "Doing a test", post_id: 31 }, nil) Discourse.handle_job_exception(exception, { message: "Doing a test", post_id: 31 }, nil)
end.to raise_error(StandardError) # Raises in test mode, catch it
expect(logger.exception).to eq(exception) expect(logger.exception).to eq(exception)
expect(logger.context.keys.sort).to eq([:current_db, :current_hostname, :message, :post_id].sort) expect(logger.context.keys.sort).to eq([:current_db, :current_hostname, :message, :post_id].sort)
end end