Sha256: 3d4fb01a6d56c411b3bee36f42901061f670d47ea14f510fb614c12113f4965f

Contents?: true

Size: 1.82 KB

Versions: 10

Compression:

Stored size: 1.82 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

module Grape
  module DSL
    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 with the right operation' do
          expect(subject).to receive(:namespace_stackable).with(:middleware, [:use, foo_middleware, :arg1, proc])

          subject.use foo_middleware, :arg1, &proc
        end
      end

      describe '.insert' do
        it 'adds a middleware with the right operation' do
          expect(subject).to receive(:namespace_stackable).with(:middleware, [:insert, 0, :arg1, proc])

          subject.insert 0, :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 foo_middleware, :arg1, &proc
          subject.insert_before bar_middleware, :arg1, :arg2

          expect(subject.middleware).to eq [[:use, foo_middleware, :arg1, proc], [:insert_before, bar_middleware, :arg1, :arg2]]
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
grape-1.5.3 spec/grape/dsl/middleware_spec.rb
grape-1.5.2 spec/grape/dsl/middleware_spec.rb
grape-1.5.1 spec/grape/dsl/middleware_spec.rb
grape-1.5.0 spec/grape/dsl/middleware_spec.rb
grape-extra_validators-2.0.0 vendor/bundle/ruby/2.6.0/gems/grape-1.4.0/spec/grape/dsl/middleware_spec.rb
grape-1.4.0 spec/grape/dsl/middleware_spec.rb
grape-1.3.3 spec/grape/dsl/middleware_spec.rb
grape-1.3.2 spec/grape/dsl/middleware_spec.rb
grape-1.3.1 spec/grape/dsl/middleware_spec.rb
grape-1.3.0 spec/grape/dsl/middleware_spec.rb