Sha256: a4dd62691a9296a3dd4de2bbeae908df76a4b4f6ba2526a064081a5808f5d58f

Contents?: true

Size: 1.45 KB

Versions: 54

Compression:

Stored size: 1.45 KB

Contents

require 'spec_helper'

require_relative '../../../lib/locomotive/steam/middlewares/stack_proxy'

describe Locomotive::Steam::Middlewares::StackProxy do

  let(:klass) { Locomotive::Steam::Middlewares::StackProxy }
  let(:proxy) { klass.new }

  describe '#initialize' do

    let(:args) { DefaultMiddleware }
    subject do
      klass.new { use(DefaultMiddleware) }
    end

    it 'adds it to the list' do
      expect(subject.list.size).to eq 1
      expect(subject.list.first).to eq [[DefaultMiddleware], nil]
    end

  end

  describe '#use' do

    let(:args) { DefaultMiddleware }
    before { proxy.use(*args) }

    it 'adds it to the operations' do
      expect(proxy.list.size).to eq 1
      expect(proxy.list.first).to eq [[DefaultMiddleware], nil]
    end

  end

  describe 'manipulating middlewares' do

    before do
      proxy.use DefaultMiddleware
      proxy.use SimpleMiddleware

      proxy.insert_before SimpleMiddleware, FooMiddleware
      proxy.use BarMiddleware, { answer: 42 }
      proxy.delete SimpleMiddleware
      proxy.insert_after 1, FancyMiddleware
    end

    subject { proxy.list }

    it do
      is_expected.to eq([
        [[DefaultMiddleware], nil],
        [[FooMiddleware], nil],
        [[FancyMiddleware], nil],
        [[BarMiddleware, { answer: 42 }], nil]
      ])
    end

  end

  class SimpleMiddleware; end
  class DefaultMiddleware; end
  class FooMiddleware; end
  class BarMiddleware; end
  class FancyMiddleware; end

end

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
locomotivecms_steam-1.8.0.alpha2 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.8.0.alpha1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.7.1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.7.0 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.6.1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.6.0 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.6.0.rc1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.6.0.beta1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.3 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.2 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0.rc1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0.rc0 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0.beta3 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0.beta2 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.5.0.beta1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.4.1 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.4.0 spec/unit/middlewares/stack_proxy_spec.rb
locomotivecms_steam-1.4.0.rc2 spec/unit/middlewares/stack_proxy_spec.rb