spec/grape/dsl/middleware_spec.rb in grape-0.16.2 vs spec/grape/dsl/middleware_spec.rb in grape-0.17.0

- old
+ new

@@ -5,26 +5,46 @@ module MiddlewareSpec class Dummy include Grape::DSL::Middleware end end + describe Middleware do subject { Class.new(MiddlewareSpec::Dummy) } let(:proc) { ->() {} } + let(:foo_middleware) { Class.new } + let(:bar_middleware) { Class.new } describe '.use' do - it 'adds a middleware' do - expect(subject).to receive(:namespace_stackable).with(:middleware, [:my_middleware, :arg1, proc]) + it 'adds a middleware with the right operation' do + expect(subject).to receive(:namespace_stackable).with(:middleware, [:use, foo_middleware, :arg1, proc]) - subject.use :my_middleware, :arg1, &proc + subject.use foo_middleware, :arg1, &proc end end + describe '.insert_before' do + it 'adds a middleware with the right operation' do + expect(subject).to receive(:namespace_stackable).with(:middleware, [:insert_before, foo_middleware, :arg1, proc]) + + subject.insert_before foo_middleware, :arg1, &proc + end + end + + describe '.insert_after' do + it 'adds a middleware with the right operation' do + expect(subject).to receive(:namespace_stackable).with(:middleware, [:insert_after, foo_middleware, :arg1, proc]) + + subject.insert_after foo_middleware, :arg1, &proc + end + end + describe '.middleware' do it 'returns the middleware stack' do - subject.use :my_middleware, :arg1, &proc + subject.use foo_middleware, :arg1, &proc + subject.insert_before bar_middleware, :arg1, :arg2 - expect(subject.middleware).to eq [[:my_middleware, :arg1, proc]] + expect(subject.middleware).to eq [[:use, foo_middleware, :arg1, proc], [:insert_before, bar_middleware, :arg1, :arg2]] end end end end end