Sha256: ab6b43ef225a570e9873a3fb0e19790ad9512d18121953a42a5500d339d07534

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

RSpec.describe SwitchPoint do
  describe '.writable!' do
    after do
      SwitchPoint.readonly!(:main)
    end

    it 'changes connection globally' do
      expect(Book).to connect_to('main_readonly.sqlite3')
      expect(Publisher).to connect_to('main_readonly.sqlite3')
      SwitchPoint.writable!(:main)
      expect(Book).to connect_to('main_writable.sqlite3')
      expect(Publisher).to connect_to('main_writable.sqlite3')
    end

    it 'affects thread-globally' do
      SwitchPoint.writable!(:main)
      Thread.start do
        expect(Book).to connect_to('main_writable.sqlite3')
      end.join
    end

    context 'within with block' do
      it 'changes the current mode' do
        Book.with_writable do
          SwitchPoint.readonly!(:main)
          expect(Book).to connect_to('main_readonly.sqlite3')
        end
        expect(Book).to connect_to('main_readonly.sqlite3')
        Book.with_writable do
          expect(Book).to connect_to('main_writable.sqlite3')
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
switch_point-0.3.1 spec/switch_point_spec.rb
switch_point-0.3.0 spec/switch_point_spec.rb