Sha256: 914ef6b610a56dc945fbddaa65940d4e7c3764c0c06f27fa00d35630e0ef7ecb
Contents?: true
Size: 1.71 KB
Versions: 5
Compression:
Stored size: 1.71 KB
Contents
RSpec.describe NulogyMessageBusConsumer::Steps::DeduplicateMessages do subject(:deduplicate_messages) { NulogyMessageBusConsumer::Steps::DeduplicateMessages.new(logger) } let(:logger) { spy } let(:id) { SecureRandom.uuid } let(:message) { NulogyMessageBusConsumer::Message.new(id: id) } context "when a duplicate message is consumed" do it "logs a duplicate was detected" do expect(logger).to receive(:warn).with(include_json( event: "duplicate_message_detected", kafka_message_id: id )) deduplicate_messages.call(message: message) { :success } deduplicate_messages.call(message: message) { raise "Not evaluated" } end it "returns :success" do deduplicate_messages.call(message: message) { :success } result = deduplicate_messages.call(message: message) { raise "Not evaluated" } expect(result).to be(:success) end end context "when a duplicate message is processed at the same time" do it "logs a duplicate was detected" do expect(logger).to receive(:warn).with(include_json( event: "duplicate_message_detected", kafka_message_id: id )) deduplicate_messages.call(message: message) do NulogyMessageBusConsumer::ProcessedMessage.create!(id: id) :success end end it "returns :success" do result = deduplicate_messages.call(message: message) { NulogyMessageBusConsumer::ProcessedMessage.create!(id: id) :success } expect(result).to be(:success) end end it "records message was processed" do deduplicate_messages.call(message: message) { :success } expect(NulogyMessageBusConsumer::ProcessedMessage.exists?(id: id)).to be(true) end end
Version data entries
5 entries across 5 versions & 1 rubygems