Sha256: 9c7c4a216e14a83f55ab8ae3d3ce18352450411ad1ce75ae90b6d1348907f896

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require 'spec_helper'

describe 'query caching' do
  let(:db_names) { [db1, db2] }

  before do
    Apartment.configure do |config|
      config.excluded_models = ["Company"]
      config.tenant_names = lambda{ Company.pluck(:database) }
      config.use_schemas = true
    end

    Apartment::Tenant.reload!(config)

    db_names.each do |db_name|
      Apartment::Tenant.create(db_name)
      Company.create database: db_name
    end
  end

  after do
    db_names.each{ |db| Apartment::Tenant.drop(db) }
    Apartment::Tenant.reset
    Company.delete_all
  end

  it 'clears the ActiveRecord::QueryCache after switching databases' do
    db_names.each do |db_name|
      Apartment::Tenant.switch! db_name
      User.create! name: db_name
    end

    ActiveRecord::Base.connection.enable_query_cache!

    Apartment::Tenant.switch! db_names.first
    expect(User.find_by_name(db_names.first).name).to eq(db_names.first)

    Apartment::Tenant.switch! db_names.last
    expect(User.find_by_name(db_names.first)).to be_nil
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
apartment-1.2.0 spec/integration/query_caching_spec.rb
apartment-1.1.0 spec/integration/query_caching_spec.rb