12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- # frozen_string_literal: true
- require 'rails_helper'
- RSpec.describe DatabaseHelper do
- context 'when a replica is enabled' do
- around do |example|
- ClimateControl.modify REPLICA_DB_NAME: 'prod-relay-quantum-tunnel-mirror' do
- example.run
- end
- end
- before { allow(ApplicationRecord).to receive(:connected_to) }
- describe '#with_read_replica' do
- it 'uses the replica for connections' do
- helper.with_read_replica { _x = 1 }
- expect(ApplicationRecord)
- .to have_received(:connected_to).with(role: :reading, prevent_writes: true)
- end
- end
- describe '#with_primary' do
- it 'uses the primary for connections' do
- helper.with_primary { _x = 1 }
- expect(ApplicationRecord)
- .to have_received(:connected_to).with(role: :writing)
- end
- end
- end
- context 'when a replica is not enabled' do
- around do |example|
- ClimateControl.modify REPLICA_DB_NAME: nil do
- example.run
- end
- end
- before { allow(ApplicationRecord).to receive(:connected_to) }
- describe '#with_read_replica' do
- it 'does not use the replica for connections' do
- helper.with_read_replica { _x = 1 }
- expect(ApplicationRecord)
- .to_not have_received(:connected_to).with(role: :reading, prevent_writes: true)
- end
- end
- describe '#with_primary' do
- it 'does not use the primary for connections' do
- helper.with_primary { _x = 1 }
- expect(ApplicationRecord)
- .to_not have_received(:connected_to).with(role: :writing)
- end
- end
- end
- end
|