Sha256: 362a738be70560d8b36a2d0830187c873f40a757a92a308f10f39dfa8a477dde

Contents?: true

Size: 1.69 KB

Versions: 9

Compression:

Stored size: 1.69 KB

Contents

require 'spec_helper'
require 'sidekiq'
require 'acts_as_tenant/sidekiq'

describe ActsAsTenant::Sidekiq do
  after { ActsAsTenant.current_tenant = nil }
  let(:account) { Account.new(id: 1234) }
  let(:message) { { 'acts_as_tenant' => { 'class' => 'Account', 'id' => 1234 } } }

  describe ActsAsTenant::Sidekiq::Client do
    subject { ActsAsTenant::Sidekiq::Client.new }

    it 'saves tenant if present' do
      ActsAsTenant.current_tenant = account

      msg = {}
      subject.call(nil, msg, nil, nil) { }
      expect(msg).to eq message
    end

    it 'does not set tenant if not present' do
      expect(ActsAsTenant.current_tenant).to be_nil

      msg = {}
      subject.call(nil, msg, nil, nil) { }
      expect(msg).not_to eq message
    end
  end

  describe ActsAsTenant::Sidekiq::Server do
    subject { ActsAsTenant::Sidekiq::Server.new }

    it 'restores tenant if tenant saved' do
      expect(Account).to receive(:find).with(1234).once { account }

      msg = message
      subject.call(nil, msg, nil) do
        expect(ActsAsTenant.current_tenant).to be_a_kind_of Account
      end
      expect(ActsAsTenant.current_tenant).to be_nil
    end

    it 'runs without tenant if no tenant saved' do
      expect(Account).not_to receive(:find)

      msg = {}
      subject.call(nil, msg, nil) do
        expect(ActsAsTenant.current_tenant).to be_nil
      end
      expect(ActsAsTenant.current_tenant).to be_nil
    end
  end

  describe 'Sidekiq configuration' do
    describe 'client configuration' do
      it 'includes ActsAsTenant client' do
        expect(Sidekiq.client_middleware.exists?(ActsAsTenant::Sidekiq::Client)).to eq(true)
      end
    end

    # unable to test server configuration
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
acts_as_tenant-0.4.4 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.4.3 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.4.2 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.4.1 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.4.0 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.3.9 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.3.8 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.3.7 spec/acts_as_tenant/sidekiq_spec.rb
acts_as_tenant-0.3.6 spec/acts_as_tenant/sidekiq_spec.rb