diff --git a/services/importer/spec/unit/connection_manager_spec.rb b/services/importer/spec/unit/connection_manager_spec.rb index c4c4afd293..bbd5a88520 100644 --- a/services/importer/spec/unit/connection_manager_spec.rb +++ b/services/importer/spec/unit/connection_manager_spec.rb @@ -8,16 +8,12 @@ describe Carto::ConnectionManager do let(:other_user) { create(:carto_user_light) } let(:other_connection_manager) { Carto::ConnectionManager.new(other_user) } - before(:all) do - Carto::Connector::PROVIDERS << DummyConnectorProvider - Carto::Connector.providers.keys.each do |provider_name| - Carto::ConnectorProvider.create! name: provider_name - end - end - - around(:each) do |example| + around do |example| config = { 'dummy' => { 'enabled' => true } } - Cartodb.with_config(connectors: config, &example) + + Cartodb.with_config(connectors: config) do + with_connector_providers(DummyConnectorProvider, incremental: true, &example) + end end let(:connection1) do diff --git a/services/importer/spec/unit/connector_runner_spec.rb b/services/importer/spec/unit/connector_runner_spec.rb index c22eca4619..c4d7d7a275 100644 --- a/services/importer/spec/unit/connector_runner_spec.rb +++ b/services/importer/spec/unit/connector_runner_spec.rb @@ -20,11 +20,7 @@ describe CartoDB::Importer2::ConnectorRunner do @fake_log = CartoDB::Importer2::Doubles::Log.new(@user) @providers = %w(dummy) @fake_log.clear - Carto::Connector::PROVIDERS << DummyConnectorProvider - Carto::Connector::PROVIDERS << DummyConnectorProviderWithModifiedDate - Carto::Connector.providers(all: true).keys.each do |provider_name| - Carto::ConnectorProvider.create! name: provider_name - end + @previous_providers = replace_connector_providers(DummyConnectorProvider, DummyConnectorProviderWithModifiedDate) end before(:each) do @@ -35,10 +31,7 @@ describe CartoDB::Importer2::ConnectorRunner do after(:all) do @user.destroy @feature_flag.destroy - Carto::Connector.providers(all: true).keys.each do |provider_name| - Carto::ConnectorProvider.find_by_name(provider_name).destroy - end - Carto::Connector::PROVIDERS.delete DummyConnectorProvider + restore_connector_providers(@previous_providers) end after(:each) do diff --git a/services/importer/spec/unit/connector_spec.rb b/services/importer/spec/unit/connector_spec.rb index c8a55d85d3..e913a5e7ea 100644 --- a/services/importer/spec/unit/connector_spec.rb +++ b/services/importer/spec/unit/connector_spec.rb @@ -12,13 +12,12 @@ describe Carto::Connector do @user = create_user @user.save @fake_log = CartoDB::Importer2::Doubles::Log.new(@user) - Carto::Connector::PROVIDERS << DummyConnectorProvider - Carto::Connector::PROVIDERS << dummy_connector_provider_with_id('another_dummy') - Carto::Connector::PROVIDERS << dummy_connector_provider_with_id('third_dummy') - Carto::Connector::PROVIDERS << DummyConnectorProviderWithModifiedDate - Carto::Connector.providers.keys.each do |provider_name| - Carto::ConnectorProvider.create! name: provider_name - end + @previous_providers = replace_connector_providers( + DummyConnectorProvider, + dummy_connector_provider_with_id('another_dummy'), + dummy_connector_provider_with_id('third_dummy'), + DummyConnectorProviderWithModifiedDate + ) end before(:each) do @@ -31,9 +30,7 @@ describe Carto::Connector do after(:all) do @user.destroy - Carto::Connector.providers.keys.each do |provider_name| - Carto::ConnectorProvider.find_by_name(provider_name).destroy - end + restore_connector_providers(@previous_providers) end it "Should list providers available for a user with default configuration" do diff --git a/spec/models/carto/connection_spec.rb b/spec/models/carto/connection_spec.rb index 4a9af7b299..5e8e465cee 100644 --- a/spec/models/carto/connection_spec.rb +++ b/spec/models/carto/connection_spec.rb @@ -5,16 +5,12 @@ describe Carto::Connection do let(:user) { create(:carto_user_light) } let(:fake_log) { CartoDB::Importer2::Doubles::Log.new(user) } - before(:all) do - Carto::Connector::PROVIDERS << DummyConnectorProvider - Carto::Connector.providers.keys.each do |provider_name| - Carto::ConnectorProvider.create! name: provider_name - end - end - - around(:each) do |example| + around do |example| config = { 'dummy' => { 'enabled' => true } } - Cartodb.with_config(connectors: config, &example) + + Cartodb.with_config(connectors: config) do + with_connector_providers(DummyConnectorProvider, incremental: true, &example) + end end describe 'connection type is automatically computed' do diff --git a/spec/requests/carto/api/connectors_controller_spec.rb b/spec/requests/carto/api/connectors_controller_spec.rb index f09a412517..6ba745001c 100644 --- a/spec/requests/carto/api/connectors_controller_spec.rb +++ b/spec/requests/carto/api/connectors_controller_spec.rb @@ -9,20 +9,24 @@ describe Carto::Api::ConnectorsController do before(:all) do create(:feature_flag, name: 'carto-connectors', restricted: false) @user = FactoryGirl.create(:carto_user) - Carto::Connector::PROVIDERS.clear - Carto::Connector::PROVIDERS << dummy_connector_provider_with_id('postgres', 'PostgreSQL') - Carto::Connector::PROVIDERS << dummy_connector_provider_with_id('hive', 'Hive') - Carto::Connector::PROVIDERS << dummy_connector_provider_with_id('bigquery', 'BigQuery', - 'sql_queries': false, - 'list_databases': true, - 'list_tables': true, - 'preview_table': true, - 'dry_run': true, - 'list_projects': true + + @previous_providers = replace_connector_providers( + dummy_connector_provider_with_id('postgres', 'PostgreSQL'), + dummy_connector_provider_with_id('hive', 'Hive'), + dummy_connector_provider_with_id( + 'bigquery', 'BigQuery', + 'sql_queries': false, + 'list_databases': true, + 'list_tables': true, + 'preview_table': true, + 'dry_run': true, + 'list_projects': true + ) ) - @connector_provider_postgres = FactoryGirl.create(:connector_provider, name: 'postgres') - @connector_provider_hive = FactoryGirl.create(:connector_provider, name: 'hive') + @connector_provider_postgres = Carto::ConnectorProvider.find_by(name: 'postgres') + @connector_provider_hive = Carto::ConnectorProvider.find_by(name: 'hive') + @connector_config_user = FactoryGirl.create(:connector_configuration, user_id: @user.id, connector_provider_id: @connector_provider_postgres.id, @@ -46,8 +50,7 @@ describe Carto::Api::ConnectorsController do @connector_config_user.destroy @connector_config_org_user.destroy @connector_config_org.destroy - @connector_provider_postgres.destroy - @connector_provider_hive.destroy + restore_connector_providers(@previous_providers) end describe '#index' do diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index e3f90fba5b..36666202c9 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,7 @@ require 'helpers/named_maps_helper' require 'helpers/unique_names_helper' require './spec/support/message_broker_stubs' require './spec/support/shared_entities_spec_helper' +require 'spec_helper_common' # This file is copied to spec/ when you run 'rails generate rspec:install' raise %(Cannot run tests in an env other than 'test', RAILS_ENV=#{Rails.env}) unless Rails.env.test? @@ -140,7 +141,3 @@ def set_cookies_for_next_request(previous_response) received_cookies = parse_set_cookie_header(previous_response.headers["Set-Cookie"]) received_cookies.each { |key, value| cookies[key] = value } end - -def mocked_record(data) - Struct.new(*data.keys).new(*data.values) -end diff --git a/spec/spec_helper_common.rb b/spec/spec_helper_common.rb new file mode 100644 index 0000000000..47d40cb629 --- /dev/null +++ b/spec/spec_helper_common.rb @@ -0,0 +1,25 @@ +def mocked_record(data) + Struct.new(*data.keys).new(*data.values) +end + +def replace_connector_providers(*args) + options = args.extract_options! + original_providers = Carto::Connector::PROVIDERS.dup + Carto::Connector::PROVIDERS.clear unless options[:incremental] + Carto::Connector::PROVIDERS.push(*args) + Carto::Connector.providers.keys.each do |provider_name| + create(:connector_provider, name: provider_name) unless Carto::ConnectorProvider.where(name: provider_name).exists? + end + original_providers +end + +def restore_connector_providers(providers) + Carto::Connector::PROVIDERS.replace(providers) +end + +def with_connector_providers(*args) + original_providers = replace_connector_providers(*args) + yield +ensure + restore_connector_providers(original_providers) +end diff --git a/spec/spec_helper_min.rb b/spec/spec_helper_min.rb index 105476263c..f19766d004 100644 --- a/spec/spec_helper_min.rb +++ b/spec/spec_helper_min.rb @@ -6,6 +6,7 @@ require 'helpers/named_maps_helper' require './spec/support/message_broker_stubs' require './spec/support/redis' require './spec/support/shared_entities_spec_helper' +require 'spec_helper_common' raise %(Cannot run tests in an env other than 'test', RAILS_ENV=#{Rails.env}) unless Rails.env.test?