spec/slavery_spec.rb in slavery-2.0.0 vs spec/slavery_spec.rb in slavery-2.1.0

- old
+ new

@@ -93,19 +93,19 @@ end describe 'configuration' do before do # Backup connection and configs - @backup_conn = Slavery.instance_variable_get :@slave_connection_holder + @backup_conn = Slavery.instance_variable_get :@connection_holder @backup_config = ActiveRecord::Base.configurations.dup @backup_disabled = Slavery.disabled - Slavery.instance_variable_set :@slave_connection_holder, nil + Slavery.instance_variable_set :@connection_holder, nil end after do # Restore connection and configs - Slavery.instance_variable_set :@slave_connection_holder, @backup_conn + Slavery.instance_variable_set :@connection_holder, @backup_conn ActiveRecord::Base.configurations = @backup_config Slavery.disabled = @backup_disabled end it 'raises error if slave configuration not specified' do @@ -117,8 +117,32 @@ it 'connects to master if slave configuration not specified' do ActiveRecord::Base.configurations['test_slave'] = nil Slavery.disabled = true expect(Slavery.on_slave { User.count }).to be 2 + end + + it 'connects to slave when specified as a hash' do + Slavery.spec_key = 'test_slave' + hash = ActiveRecord::Base.configurations['test_slave'] + expect(Slavery::ConnectionHolder).to receive(:establish_connection).with(hash) + Slavery::ConnectionHolder.activate + end + + it 'connects to slave when specified as a url' do + expected = if Gem::Version.new(ActiveRecord::VERSION::STRING) < Gem::Version.new('4.1.0') + 'postgres://root:@localhost:5432/test_slave' + else + { + 'adapter' => 'postgresql', + 'username' => 'root', + 'port' => 5432, + 'database' => 'test_slave', + 'host' => 'localhost' + } + end + Slavery.spec_key = 'test_slave_url' + expect(Slavery::ConnectionHolder).to receive(:establish_connection).with(expected) + Slavery::ConnectionHolder.activate end end end