110 lines
3.2 KiB
Ruby
110 lines
3.2 KiB
Ruby
require_relative '../../spec_helper'
|
|
|
|
describe Carto::Map do
|
|
include Carto::Factories::Visualizations
|
|
|
|
before(:all) do
|
|
@user = create_user
|
|
@carto_user = Carto::User.find(@user.id)
|
|
end
|
|
|
|
before(:each) do
|
|
bypass_named_maps
|
|
delete_user_data(@user)
|
|
end
|
|
|
|
after(:all) do
|
|
bypass_named_maps
|
|
@user.destroy
|
|
end
|
|
|
|
it "Tests layer ordering" do
|
|
table = ::Table.new
|
|
table.user_id = @user.id
|
|
table.save
|
|
|
|
map = ::Map.create(user_id: @user.id, table_id: table.id)
|
|
|
|
5.times do
|
|
map.add_layer(::Layer.create(kind: 'carto'))
|
|
end
|
|
|
|
3.times do
|
|
map.add_layer(Layer.create(kind: 'tiled'))
|
|
end
|
|
|
|
map.add_layer(Layer.create(kind: 'torque'))
|
|
|
|
layers_count = map.layers.count
|
|
layers_count.should eq 9
|
|
|
|
base_layers_count = map.base_layers.count
|
|
base_layers_count.should eq 9
|
|
|
|
carto_layers_count = map.carto_layers.count
|
|
carto_layers_count.should eq 5
|
|
|
|
user_layers_count = map.user_layers.count
|
|
user_layers_count.should eq 3
|
|
|
|
carto_and_torque_layers_count = map.data_layers.count
|
|
carto_and_torque_layers_count.should eq 6
|
|
|
|
torque_layers_count = map.torque_layers.count
|
|
torque_layers_count.should eq 1
|
|
|
|
other_layers_count = map.other_layers.count
|
|
other_layers_count.should eq 1 # torque one counts as "other"
|
|
|
|
map_new = Carto::Map.where(id: map.id).first
|
|
|
|
layers_count.should eq map_new.layers.count
|
|
base_layers_count.should eq map_new.base_layers.count
|
|
carto_layers_count.should eq map_new.carto_layers.count
|
|
user_layers_count.should eq map_new.user_layers.count
|
|
carto_and_torque_layers_count.should eq map_new.data_layers.count
|
|
torque_layers_count.should eq map_new.torque_layers.count
|
|
other_layers_count.should eq map_new.other_layers.count
|
|
|
|
map.layers.map(&:id).should eq map_new.layers.map(&:id)
|
|
map.base_layers.map(&:id).should eq map_new.base_layers.map(&:id)
|
|
map.data_layers.map(&:id).should eq map_new.data_layers.map(&:id)
|
|
map.user_layers.map(&:id).should eq map_new.user_layers.map(&:id)
|
|
map.data_layers.map(&:id).should eq map_new.data_layers.map(&:id)
|
|
map.torque_layers.map(&:id).should eq map_new.torque_layers.map(&:id)
|
|
map.other_layers.map(&:id).should eq map_new.other_layers.map(&:id)
|
|
|
|
map.destroy
|
|
end
|
|
|
|
describe '#update_dataset_dependencies' do
|
|
before(:all) do
|
|
@carto_layer = FactoryGirl.create(:carto_layer, kind: 'carto')
|
|
@torque_layer = FactoryGirl.create(:carto_layer, kind: 'torque')
|
|
@map = Carto::Map.create(user: @carto_user, layers: [@carto_layer, @torque_layer])
|
|
end
|
|
|
|
after(:all) do
|
|
@torque_layer.destroy
|
|
@carto_layer.destroy
|
|
@map.destroy
|
|
end
|
|
|
|
it 'updates dependencies of carto layers' do
|
|
@map.layers.select(&:carto?).first.expects(:register_table_dependencies).once
|
|
@map.update_dataset_dependencies
|
|
end
|
|
|
|
it 'updates dependencies of carto layers' do
|
|
@map.layers.select(&:torque?).first.expects(:register_table_dependencies).once
|
|
@map.update_dataset_dependencies
|
|
end
|
|
end
|
|
|
|
it '#save should trigger invalidation' do
|
|
@map, @table, @table_visualization, @visualization = create_full_visualization(@carto_user)
|
|
@visualization.send(:invalidation_service).expects(:invalidate)
|
|
@map.save
|
|
end
|
|
end
|