summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb')
-rw-r--r--spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb b/spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb
new file mode 100644
index 00000000000..6e1e53e0e41
--- /dev/null
+++ b/spec/lib/gitlab/database/postgresql_adapter/empty_query_ping_spec.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Database::PostgresqlAdapter::EmptyQueryPing do
+ describe '#active?' do
+ let(:adapter_class) do
+ Class.new do
+ include Gitlab::Database::PostgresqlAdapter::EmptyQueryPing
+
+ def initialize(connection, lock)
+ @connection = connection
+ @lock = lock
+ end
+ end
+ end
+
+ subject { adapter_class.new(connection, lock).active? }
+
+ let(:connection) { double(query: nil) }
+ let(:lock) { double }
+
+ before do
+ allow(lock).to receive(:synchronize).and_yield
+ end
+
+ it 'uses an empty query to check liveness' do
+ expect(connection).to receive(:query).with(';')
+
+ subject
+ end
+
+ it 'returns true if no error was signaled' do
+ expect(subject).to be_truthy
+ end
+
+ it 'returns false when an error occurs' do
+ expect(lock).to receive(:synchronize).and_raise(PG::Error)
+
+ expect(subject).to be_falsey
+ end
+ end
+end