Initial commit
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
require_relative '../../spec_helper'
|
||||
require 'rspec/core'
|
||||
require 'ostruct'
|
||||
require_relative '../../../app/models/layer/presenter'
|
||||
|
||||
include CartoDB
|
||||
|
||||
describe CartoDB::LayerModule::Presenter do
|
||||
describe '#to_vizjson_v2' do
|
||||
it 'wraps the sql if query_wrapper available' do
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
tooltip: { 'template' => 'blahblah' },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'query' => '',
|
||||
'tile_style' => '',
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => '000cd294-b124-4f82-b569-0f7fe41d2db8',
|
||||
'query_wrapper' => 'bogus tpl <%= sql %>'
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson.fetch(:options).fetch(:sql).should eq 'bogus tpl select * from "000cd294-b124-4f82-b569-0f7fe41d2db8"'
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
tooltip: { 'template' => 'blahblah' },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'query' => '',
|
||||
'tile_style' => '',
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => 'bogus template <%= sql %>'
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson.fetch(:options).fetch(:sql).should eq 'bogus template select * from bogus_table'
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => {'visible' => nil} },
|
||||
tooltip: { 'template' => 'blahblah' },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'query' => 'select the_geom from bogus_table',
|
||||
'tile_style' => '',
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => 'bogus template <%= sql %>'
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson.fetch(:options).fetch(:sql)
|
||||
.should == 'bogus template select the_geom from bogus_table'
|
||||
end
|
||||
|
||||
it 'returns `sql_wrap` with `query_wrapper` if present and with style properties nil or not autogenerated' do
|
||||
query_wrapper = 'bogus template <%= sql %>'
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => query_wrapper,
|
||||
'style_properties' => {}
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson[:options]['sql_wrap'].should eq query_wrapper
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => query_wrapper,
|
||||
'style_properties' => { 'autogenerated' => false }
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson[:options]['sql_wrap'].should eq query_wrapper
|
||||
end
|
||||
|
||||
it 'does not return `sql_wrap` with `query_wrapper` if present without style properties or autogenerated' do
|
||||
query_wrapper = 'bogus template <%= sql %>'
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => query_wrapper
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson[:options]['sql_wrap'].should be_nil
|
||||
|
||||
layer = OpenStruct.new(
|
||||
public_values: { 'options' => { 'visible' => nil } },
|
||||
kind: 'carto',
|
||||
options: {
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => query_wrapper,
|
||||
'style_properties' => { 'autogenerated' => true }
|
||||
}
|
||||
)
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer).to_vizjson_v2
|
||||
vizjson[:options]['sql_wrap'].should be_nil
|
||||
end
|
||||
|
||||
it 'keeps the visible attribute when rendering' do
|
||||
layer = OpenStruct.new(
|
||||
kind: 'torque',
|
||||
options: {
|
||||
'query' => 'select the_geom from bogus_table',
|
||||
'tile_style' => '',
|
||||
'interactivity' => '',
|
||||
'style_version' => '',
|
||||
'table_name' => 'bogus_table',
|
||||
'query_wrapper' => 'bogus template <%= sql %>',
|
||||
'visible' => true
|
||||
},
|
||||
)
|
||||
|
||||
options = {
|
||||
visualization_id: '',
|
||||
sql: '',
|
||||
}
|
||||
|
||||
vizjson = CartoDB::LayerModule::Presenter.new(layer, options).to_vizjson_v2
|
||||
vizjson[:options]['visible'].should == true
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user