spec/consumer_spec.rb in deimos-ruby-1.1.0.pre.beta2 vs spec/consumer_spec.rb in deimos-ruby-1.2.0.pre.beta1
- old
+ new
@@ -10,10 +10,15 @@
schema 'MySchema'
namespace 'com.my-namespace'
key_config field: 'test_id'
# :nodoc:
+ def fatal_error?(_exception, payload, _metadata)
+ payload == 'fatal'
+ end
+
+ # :nodoc:
def consume(_payload, _metadata)
raise 'This should not be called unless call_original is set'
end
end
stub_const('ConsumerTest::MyConsumer', consumer_class)
@@ -34,9 +39,22 @@
expect(payload['test_id']).to eq('foo')
end
end
it 'should fail on invalid message' do
+ test_consume_invalid_message(MyConsumer, 'invalid' => 'key')
+ end
+
+ it 'should fail if reraise is false but fatal_error is true' do
+ Deimos.configure { |config| config.reraise_consumer_errors = false }
+ test_consume_invalid_message(MyConsumer, 'fatal')
+ end
+
+ it 'should fail if fatal_error is true globally' do
+ Deimos.configure do |config|
+ config.fatal_error { true }
+ config.reraise_consumer_errors = false
+ end
test_consume_invalid_message(MyConsumer, 'invalid' => 'key')
end
it 'should fail on message with extra fields' do
test_consume_invalid_message(MyConsumer,