Sha256: f9cb9b1d1875e9f1141edb33b4fa308568bc42ef7e1cd1225e5a442c45551a66

Contents?: true

Size: 1.56 KB

Versions: 11

Compression:

Stored size: 1.56 KB

Contents

require 'thread'
require File.expand_path('spec_helper', File.dirname(__FILE__))

describe 'Sunspot::Rails session' do
  it 'is a different object for each thread' do
    # Queue is just a convenient thread-safe container
    sessions_queue = Queue.new

    # Create some threads which dump their session into the queue
    Array.new(2) {
      Thread.new { sessions_queue << Sunspot.session.session }
    }.each { |thread| thread.join }

    # Collect the items from the queue
    sessions = []
    until sessions_queue.empty?
      sessions << sessions_queue.pop
    end

    # There should be no items in the queue with the same object_id
    object_ids = sessions.map(&:object_id)
    object_ids.uniq.should == object_ids
  end

  it 'should create a separate master/slave session if configured' do
  end

  it 'should not create a separate master/slave session if no master configured' do
  end

  context 'disabled' do
    before do
      Sunspot::Rails.reset
      ::Rails.stub(:env).and_return("config_disabled_test")
    end

    after do
      Sunspot::Rails.reset
    end

    it 'sets the session proxy as a stub' do
      Sunspot::Rails.build_session.should be_a_kind_of(Sunspot::Rails::StubSessionProxy)
    end
  end

  private

  def with_configuration(options)
    original_configuration = Sunspot::Rails.configuration
    Sunspot::Rails.reset
    Sunspot::Rails.configuration = Sunspot::Rails::Configuration.new
    Sunspot::Rails.configuration.user_configuration = options
    yield
    Sunspot::Rails.reset
    Sunspot::Rails.configuration = original_configuration
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/sunspot_rails-2.2.7/spec/session_spec.rb
sunspot_rails-2.2.7 spec/session_spec.rb
sunspot_rails-2.2.6 spec/session_spec.rb
sunspot_rails-2.2.5 spec/session_spec.rb
sunspot_rails-2.2.4 spec/session_spec.rb
sunspot_rails-2.2.3 spec/session_spec.rb
sunspot_rails-2.2.2 spec/session_spec.rb
sunspot_rails-2.2.1 spec/session_spec.rb
sunspot_rails-2.2.0 spec/session_spec.rb
sunspot_rails-2.1.1 spec/session_spec.rb
sunspot_rails-2.1.0 spec/session_spec.rb