Always allow sync of external sources

pull/12855/head
Juan Ignacio Sánchez Lara 7 years ago
parent e1b5860ed6
commit 4c4a5d26f5

@ -16,7 +16,7 @@ class Api::Json::SynchronizationsController < Api::ApplicationController
# Upon creation, no rate limit checks
def create
return head(401) unless current_user.sync_tables_enabled
return head(401) unless current_user.sync_tables_enabled || @external_source
@stats_aggregator.timing('synchronizations.create') do

@ -10,10 +10,6 @@ describe Api::Json::SynchronizationsController do
it_behaves_like 'synchronization controllers' do
end
let(:file_url) do
"https://raw.githubusercontent.com/CartoDB/cartodb/72cd3298130f8f2b46b3b66d2f53431e4396f4ac/spec/support/data/guess_country.csv"
end
before(:each) do
login(@user1)
@user1.sync_tables_enabled = true
@ -23,7 +19,7 @@ describe Api::Json::SynchronizationsController do
describe '#create' do
let(:params) do
{
url: file_url,
url: "fake_url",
interval: 3600,
content_guessing: true,
type_guessing: true,
@ -31,12 +27,35 @@ describe Api::Json::SynchronizationsController do
}
end
it 'returns 401 if user can\'t sync tables' do
@user1.sync_tables_enabled = false
@user1.save
describe 'for users without sync tables' do
before(:each) do
@user1.sync_tables_enabled = false
@user1.save
end
post_json api_v1_synchronizations_create_url(params) do |r|
r.status.should eq 401
it 'returns 401' do
post_json api_v1_synchronizations_create_url(params) do |r|
r.status.should eq 401
end
end
it 'creates a synchronization and enqueues a import job for external sources' do
begin
Resque::ImporterJobs.expects(:perform).once
carto_visualization = FactoryGirl.create(:carto_visualization, user_id: @user1.id)
external_source = FactoryGirl.create(:external_source, visualization: carto_visualization)
remote_id = external_source.visualization_id
expect {
post_json api_v1_synchronizations_create_url(params.merge(remote_visualization_id: remote_id)) do |r|
r.status.should eq 200
end
}.to change { Carto::Synchronization.count }.by 1
ensure
external_source.external_data_imports.each(&:destroy)
external_source.destroy
carto_visualization.destroy
end
end
end

Loading…
Cancel
Save