Sha256: 15b5ba3d4c37bfab8b59ce777841aa4f9c4ff08365d56977012d4fd760fb3b98
Contents?: true
Size: 1.37 KB
Versions: 5
Compression:
Stored size: 1.37 KB
Contents
RSpec.describe NulogyMessageBusConsumer::Pipeline do let(:handler) { spy } describe "#invoke_pipeline" do it "raises if handler is not provided" do expect { invoke_pipeline }.to raise_error("Handlers are the end of the line. Do not use yield.") end it "calls the handler with message" do message = NulogyMessageBusConsumer::Message.new expect(handler).to receive(:call).with(message: message) invoke_pipeline( ->(**_, &block) { block.yield(message: message) }, handler ) end it "passes information along" do message = NulogyMessageBusConsumer::Message.new expect(handler).to receive(:call).with(message: message) invoke_pipeline( ->(**_, &block) { block.yield(message: message) }, ->(**_, &block) { block.yield }, handler ) end it "raises when overwriting an existing key" do message = NulogyMessageBusConsumer::Message.new other_message = NulogyMessageBusConsumer::Message.new expect { invoke_pipeline( ->(**_, &block) { block.yield(message: message) }, ->(**_, &block) { block.yield(message: other_message) }, handler ) }.to raise_error("Cannot override existing argument(s): message") end end def invoke_pipeline(*steps) NulogyMessageBusConsumer::Pipeline.new(steps).invoke end end
Version data entries
5 entries across 5 versions & 1 rubygems