Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'gems/click_house-client/spec/click_house/client/configuration_spec.rb')
-rw-r--r--gems/click_house-client/spec/click_house/client/configuration_spec.rb66
1 files changed, 66 insertions, 0 deletions
diff --git a/gems/click_house-client/spec/click_house/client/configuration_spec.rb b/gems/click_house-client/spec/click_house/client/configuration_spec.rb
new file mode 100644
index 00000000000..8cbd64ca650
--- /dev/null
+++ b/gems/click_house-client/spec/click_house/client/configuration_spec.rb
@@ -0,0 +1,66 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ClickHouse::Client::Configuration do
+ subject(:configuration) do
+ config = described_class.new
+ config.http_post_proc = -> {}
+ config.json_parser = Object
+ config
+ end
+
+ describe '#register_database' do
+ let(:database_options) do
+ {
+ database: 'test_db',
+ url: 'http://localhost:3333',
+ username: 'user',
+ password: 'pass',
+ variables: {
+ join_use_nulls: 1
+ }
+ }
+ end
+
+ it 'registers a database' do
+ configuration.register_database(:my_db, **database_options)
+
+ expect(configuration.databases.size).to eq(1)
+ database = configuration.databases[:my_db]
+
+ expect(database.uri.to_s).to eq('http://localhost:3333?database=test_db&join_use_nulls=1')
+ end
+
+ context 'when adding the same DB multiple times' do
+ it 'raises error' do
+ configuration.register_database(:my_db, **database_options)
+ expect do
+ configuration.register_database(:my_db, **database_options)
+ end.to raise_error(ClickHouse::Client::ConfigurationError, /database 'my_db' is already registered/)
+ end
+ end
+ end
+
+ describe '#validate!' do
+ context 'when `http_post_proc` option is not configured' do
+ it 'raises error' do
+ configuration.http_post_proc = nil
+
+ expect do
+ configuration.validate!
+ end.to raise_error(ClickHouse::Client::ConfigurationError, /'http_post_proc' option is not configured/)
+ end
+ end
+
+ context 'when `json_parser` option is not configured' do
+ it 'raises error' do
+ configuration.json_parser = nil
+
+ expect do
+ configuration.validate!
+ end.to raise_error(ClickHouse::Client::ConfigurationError, /'json_parser' option is not configured/)
+ end
+ end
+ end
+end