You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.8 KiB

require 'rspec/core'
require 'rspec/expectations'
require 'rspec/mocks'
require 'sequel'
require_relative '../../spec_helper'
require_relative '../../../app/models/visualization/name_checker'
include CartoDB
describe Visualization::NameChecker do
before :all do
bypass_named_maps
@user = FactoryGirl.create(:valid_user)
@user2 = FactoryGirl.create(:valid_user)
@vis1 = FactoryGirl.build(:derived_visualization, name: 'Visualization 1', user_id: @user.id).store
@vis2 = FactoryGirl.build(:derived_visualization, name: 'Visualization 2', user_id: @user.id).store
@vis3 = FactoryGirl.build(:derived_visualization, name: 'Visualization 4', user_id: @user2.id).store
@shared_entity = CartoDB::SharedEntity.new(
recipient_id: @user.id,
recipient_type: CartoDB::SharedEntity::RECIPIENT_TYPE_USER,
entity_id: @vis3.id,
entity_type: CartoDB::SharedEntity::ENTITY_TYPE_VISUALIZATION
).save
end
after :all do
@shared_entity.destroy
@vis3.destroy
@vis2.destroy
@vis1.destroy
@user.destroy
end
describe '#available?' do
it 'returns true if passed visualization name is available for the user' do
checker = Visualization::NameChecker.new(@user)
checker.available?('Visualization 3').should == true
end
it 'returns false if passed visualization name is in use by the user' do
checker = Visualization::NameChecker.new(@user)
checker.available?('Visualization 1').should == false
checker.available?('Visualization 2').should == false
end
it 'returns true if name is available but used in shared visualizations' do
checker = Visualization::NameChecker.new(@user)
checker.available?('Visualization 4').should == true
end
end # available?
end # Visualization::NameChecker