Sha256: be02627e91662e1bdb15d0af84418469d93491f5fa35b20c71d116bfd8b03002

Contents?: true

Size: 1.23 KB

Versions: 4

Compression:

Stored size: 1.23 KB

Contents

require 'spec_helper'

module Borutus
  describe Account do
    describe 'tenancy support' do
      before(:each) do
        ActiveSupportHelpers.clear_model('Account')
        ActiveSupportHelpers.clear_model('Asset')

        Borutus.enable_tenancy = true
        Borutus.tenant_class = 'Borutus::Entry'

        FactoryBotHelpers.reload()
        Borutus::Asset.new
      end

      after(:each) do
        if Borutus.const_defined?(:Asset)
          ActiveSupportHelpers.clear_model('Account')
          ActiveSupportHelpers.clear_model('Asset')
        end

        Borutus.enable_tenancy = false
        Borutus.tenant_class = nil

        FactoryBotHelpers.reload()
      end

      it 'validate uniqueness of name scoped to tenant' do
        account = FactoryBot.create(:asset, tenant_id: 10)

        record = FactoryBot.build(:asset, name: account.name, tenant_id: 10)
        expect(record).not_to be_valid
        expect(record.errors[:name]).to eq(['has already been taken'])
      end

      it 'allows same name scoped under a different tenant' do
        account = FactoryBot.create(:asset, tenant_id: 10)

        record = FactoryBot.build(:asset, name: account.name, tenant_id: 11)
        expect(record).to be_valid
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
borutus-1.0.0 spec/models/tenancy_spec.rb
borutus-0.2.4 spec/models/tenancy_spec.rb
borutus-0.2.3 spec/models/tenancy_spec.rb
borutus-0.2.2 spec/models/tenancy_spec.rb