55 lines
2.0 KiB
Ruby
55 lines
2.0 KiB
Ruby
|
require 'spec_helper_min'
|
||
|
require 'rake'
|
||
|
require 'factories/carto_visualizations'
|
||
|
|
||
|
describe 'cartodb:fix_unique_legends' do
|
||
|
include Carto::Factories::Visualizations
|
||
|
|
||
|
before(:each) do
|
||
|
Rake.application.rake_require "tasks/fix_unique_legends"
|
||
|
Rake::Task.define_task(:environment)
|
||
|
Rake.application['cartodb:fix_unique_legends'].reenable
|
||
|
|
||
|
user = FactoryGirl.create(:carto_user)
|
||
|
_, _, _, visualization = create_full_visualization(user)
|
||
|
@layer = visualization.layers.find(&:data_layer?)
|
||
|
@legend = Carto::Legend.create!(layer: @layer,
|
||
|
title: "bird_name",
|
||
|
pre_html: "",
|
||
|
post_html: "",
|
||
|
type: "torque",
|
||
|
definition: {
|
||
|
"categories" => [
|
||
|
{ "title" => "Perico", "color"=>"#ff382a", "icon"=>"" },
|
||
|
{ "title" => "Palotes", "color"=>"#0038d1", "icon"=>"" },
|
||
|
{ "title" => "Jr", "color"=>"#d4cf34", "icon"=>"" }
|
||
|
]
|
||
|
},
|
||
|
conf: { "columns" => [] })
|
||
|
end
|
||
|
|
||
|
it 'deletes duplicate legend of unique type' do
|
||
|
legend2 = @legend.dup
|
||
|
legend2.type = 'choropleth'
|
||
|
legend2.updated_at = @legend.updated_at - 1.minute
|
||
|
legend2.save(validate: false)
|
||
|
@layer.reload.legends.count.should eq 2
|
||
|
|
||
|
Rake.application['cartodb:fix_unique_legends'].invoke
|
||
|
|
||
|
@layer.reload.legends.count.should eq 1
|
||
|
@layer.reload.legends.first.id.should eq @legend.id
|
||
|
end
|
||
|
|
||
|
it 'keeps layers if different type' do
|
||
|
legend2 = @legend.dup
|
||
|
legend2.type = 'bubble'
|
||
|
legend2.save(validate: false)
|
||
|
@layer.reload.legends.count.should eq 2
|
||
|
|
||
|
Rake.application['cartodb:fix_unique_legends'].invoke
|
||
|
|
||
|
@layer.reload.legends.count.should eq 2
|
||
|
end
|
||
|
end
|