From 9f2814b43704b68d27a9b8cabbc0cb2db54a369a Mon Sep 17 00:00:00 2001 From: Javier Goizueta Date: Wed, 26 Jun 2019 18:31:31 +0200 Subject: [PATCH] Adapt tests --- db/fake_data/guess_country_geocoded.csv | 11 +++++++++ spec/models/synchronization/member_spec.rb | 27 +++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 db/fake_data/guess_country_geocoded.csv diff --git a/db/fake_data/guess_country_geocoded.csv b/db/fake_data/guess_country_geocoded.csv new file mode 100644 index 0000000000..dc14347d79 --- /dev/null +++ b/db/fake_data/guess_country_geocoded.csv @@ -0,0 +1,11 @@ +Country,Amount,carto_geocode_hash +Spain,1,x +France,2,x +China,3,x +Japan,4,x +UK,5,x +Holland,8,x +Korea,6,x +The Netherlands,7,x +Portugal,9,x +Brazil,10,x diff --git a/spec/models/synchronization/member_spec.rb b/spec/models/synchronization/member_spec.rb index 5e321da6c9..15cf6978cb 100644 --- a/spec/models/synchronization/member_spec.rb +++ b/spec/models/synchronization/member_spec.rb @@ -149,7 +149,7 @@ describe Synchronization::Member do @user1.reload end - it 'now works with tables with views' do + it 'fails to overwrite tables with views by replacement' do url = 'https://wadus.com/guess_country.csv' path = fake_data_path('guess_country.csv') @@ -169,6 +169,31 @@ describe Synchronization::Member do @user2.in_database.execute('CREATE VIEW wadus AS SELECT * FROM guess_country') + member.run + expect(member.state).to eq 'failure' + expect(member.error_code).to eq 2013 + end + + it 'it can overwrite tables with views by sync' do + url = 'https://wadus.com/guess_country_geocoded.csv' + + path = fake_data_path('guess_country_geocoded.csv') + stub_download(url: url, filepath: path, content_disposition: false) + + attrs = random_attributes(user_id: @user2.id).merge(service_item_id: url, url: url, name: 'guess_country_geocoded') + member = Synchronization::Member.new(attrs).store + + DataImport.create( + user_id: @user2.id, + data_source: path, + synchronization_id: member.id, + service_name: 'public_url', + service_item_id: url, + updated_at: Time.now + ).run_import! + + @user2.in_database.execute('CREATE VIEW wadus_geocoded AS SELECT * FROM guess_country_geocoded') + member.run expect(member.state).to eq 'success' end