cartodb/spec/lib/carto/visualization_migrator_spec.rb

72 lines
2.1 KiB
Ruby
Raw Normal View History

2020-06-15 10:58:47 +08:00
require 'spec_helper_min'
require 'carto/visualization_migrator'
describe Carto::VisualizationMigrator do
include Carto::Factories::Visualizations
include_context 'visualization creation helpers'
class VizMigrator
include Carto::VisualizationMigrator
end
let(:migrator) { VizMigrator.new }
shared_context 'full visualization' do
before(:all) do
@user_1 = FactoryGirl.create(:carto_user, private_tables_enabled: false)
end
before(:each) do
@map, @table, @table_visualization, @visualization = create_full_visualization(Carto::User.find(@user_1.id), visualization_attributes: { version: 3 })
end
after(:each) do
destroy_full_visualization(@map, @table, @table_visualization, @visualization)
end
after(:all) do
@user_1.destroy
end
end
describe '#migrate_visualization_to_v3' do
include_context 'full visualization'
it 'migrates layer selector for ActiveRecord model' do
@visualization.overlays << Carto::Overlay.new(type: 'layer_selector')
@visualization.reload
migrator.migrate_visualization_to_v3(@visualization)
@visualization.reload
@visualization.overlays.any? { |o| o.type == 'layer_selector' }.should be_false
@visualization.map.options['layer_selector'].should be_true
end
it 'fixes GMaps options' do
basemap = @visualization.layers.first
basemap.kind = 'gmapsbase'
basemap.options = { "type" => "GMapsBase", "base_type" => "roadmap" }
basemap.save!
migrator.migrate_visualization_to_v3(@visualization)
@visualization.reload
@visualization.layers.first.options.should have_key(:baseType)
@visualization.layers.first.options.should_not have_key(:base_type)
end
it 'adds analyses' do
# Fixture check
expect(@visualization.analyses.none?).to be_true
expect(@visualization.data_layers.none?(&:source_id)).to be_true
migrator.migrate_visualization_to_v3(@visualization)
@visualization.reload
expect(@visualization.analyses.any?).to be_true
expect(@visualization.data_layers.all?(&:source_id)).to be_true
end
end
end