cartodb/services/importer/spec/acceptance/geojson_spec.rb
2020-06-15 10:58:47 +08:00

73 lines
2.4 KiB
Ruby

require_relative '../../../../spec/rspec_configuration'
require_relative '../../../../spec/spec_helper'
require 'rspec/core'
require 'rspec/expectations'
require 'rspec/mocks'
require_relative '../../lib/importer/runner'
require_relative '../../lib/importer/job'
require_relative '../../lib/importer/downloader'
require_relative '../../../../spec/rspec_configuration'
require_relative '../factories/pg_connection'
require_relative '../doubles/log'
require_relative '../doubles/user'
require_relative 'acceptance_helpers'
require_relative 'no_stats_context'
describe 'geojson regression tests' do
include AcceptanceHelpers
include_context "no stats"
before(:all) do
@user = create_user
@user.save
end
after(:all) do
@user.destroy
end
it 'imports a file exported from CartoDB' do
filepath = path_to('tm_world_borders_simpl_0_8.geojson')
downloader = ::CartoDB::Importer2::Downloader.new(@user.id, filepath)
runner = ::CartoDB::Importer2::Runner.new({
pg: @user.db_service.db_configuration_for,
downloader: downloader,
log: CartoDB::Importer2::Doubles::Log.new(@user),
user: @user
})
runner.run
end
it 'imports a file from a url with params' do
filepath = 'https://raw.github.com/benbalter/dc-wifi-social/master' +
'/bars.geojson?foo=bar'
downloader = ::CartoDB::Importer2::Downloader.new(@user.id, filepath)
runner = ::CartoDB::Importer2::Runner.new({
pg: @user.db_service.db_configuration_for,
downloader: downloader,
log: CartoDB::Importer2::Doubles::Log.new(@user),
user: @user
})
runner.run
end
it "raises if GeoJSON isn't valid" do
filepath = path_to('invalid.geojson')
downloader = ::CartoDB::Importer2::Downloader.new(@user.id, filepath)
runner = ::CartoDB::Importer2::Runner.new({
pg: @user.db_service.db_configuration_for,
downloader: downloader,
log: CartoDB::Importer2::Doubles::Log.new(@user),
user: @user
})
runner.run
runner.results.first.error_code.should eq 1002
end
end