cartodb-4.29/spec/models/table_registrar_spec.rb
2020-06-15 10:58:47 +08:00

86 lines
2.8 KiB
Ruby

require 'spec_helper'
describe CartoDB::TableRegistrar do
before(:all) do
@user = create_user
end
after(:all) do
@user.destroy
end
describe '#register' do
let(:description) { "Table registrar test description" }
let(:tags) { ["Administrative regions", "Historic"] }
let(:source) { "Table registrar test source" }
let(:attributions) { "Table registrar test attributions" }
before(:each) do
bypass_named_maps
@data_import = FactoryGirl.create(:data_import, user_id: @user.id)
@external_data_import = FactoryGirl.create(:external_data_import_with_external_source,
data_import_id: @data_import.id)
@external_data_import.external_source.visualization.description = description
@external_data_import.external_source.visualization.tags = tags
@external_data_import.external_source.visualization.source = source
@external_data_import.external_source.visualization.attributions = attributions
@external_data_import.external_source.visualization.save
end
after(:each) do
@external_data_import.destroy
@data_import.destroy
end
it 'registers description from external sources' do
CartoDB::Visualization::Member.any_instance.stubs(:save_named_map).returns(true)
@user.in_database.run(%{CREATE TABLE xxx (id serial)})
tr = CartoDB::TableRegistrar.new(@user, ::Table)
tr.register('xxx', @external_data_import.data_import_id)
tr.table.description.should eq description
tr.table.table_visualization.delete
tr.table.destroy
end
it 'registers tags from external sources' do
CartoDB::Visualization::Member.any_instance.stubs(:save_named_map).returns(true)
@user.in_database.run(%{CREATE TABLE xxx (id serial)})
tr = CartoDB::TableRegistrar.new(@user, ::Table)
tr.register('xxx', @external_data_import.data_import_id)
tr.table.tags.should eq tags.join(',') # Tags are stored as a plain string
tr.table.table_visualization.delete
tr.table.destroy
end
it 'creates a default visualization with external source description, attributions and source' do
CartoDB::Visualization::Member.any_instance.stubs(:save_named_map).returns(true)
@user.in_database.run(%{CREATE TABLE xxx (id serial)})
tr = CartoDB::TableRegistrar.new(@user, ::Table)
tr.register('xxx', @external_data_import.data_import_id)
visualization = tr.table.table_visualization
visualization.description.should eq @external_data_import.external_source.visualization.description
visualization.source.should eq @external_data_import.external_source.visualization.source
visualization.attributions.should eq @external_data_import.external_source.visualization.attributions
visualization.delete
tr.table.destroy
end
end
end