83 lines
2.0 KiB
Ruby
83 lines
2.0 KiB
Ruby
require_relative '../spec_helper'
|
|
require 'models/user_table_shared_examples'
|
|
|
|
describe UserTable do
|
|
before(:all) do
|
|
bypass_named_maps
|
|
|
|
@user = create_user(email: 'admin@cartotest.com', username: 'admin', password: '000123456')
|
|
@carto_user = Carto::User.find(@user.id)
|
|
|
|
@user_table = ::UserTable.new
|
|
|
|
@user_table.user_id = @user.id
|
|
@user_table.name = 'user_table'
|
|
@user_table.save
|
|
|
|
# The dependent visualization models are in the Table class for the Sequel model
|
|
@dependent_test_object = @user_table.service
|
|
end
|
|
|
|
after(:all) do
|
|
@user_table.destroy
|
|
@user.destroy
|
|
end
|
|
|
|
it_behaves_like 'user table models' do
|
|
def build_user_table(attrs = {})
|
|
::UserTable.new.set_all(attrs)
|
|
end
|
|
end
|
|
|
|
it "can save large OIDs" do
|
|
user_table = ::UserTable.new
|
|
user_table.user_id = @user.id
|
|
user_table.name = 'user_table_3'
|
|
user_table.save
|
|
user_table.reload
|
|
|
|
user_table.table_id = 2**32 - 1
|
|
user_table.save
|
|
user_table.reload
|
|
user_table.table_id.should eq 2**32 - 1
|
|
|
|
user_table.destroy
|
|
end
|
|
|
|
context 'viewer users' do
|
|
after(:each) do
|
|
@user.viewer = false
|
|
@user.save
|
|
end
|
|
|
|
it "can't create new user tables" do
|
|
bypass_named_maps
|
|
@user.viewer = true
|
|
@user.save
|
|
|
|
@user_table = ::UserTable.new
|
|
@user_table.user_id = @user.id
|
|
@user_table.name = 'user_table_2'
|
|
expect { @user_table.save }.to raise_error(Sequel::ValidationFailed, /Viewer users can't create tables/)
|
|
end
|
|
|
|
it "can't delete user tables" do
|
|
bypass_named_maps
|
|
@user_table = ::UserTable.new
|
|
@user_table.user_id = @user.id
|
|
@user_table.name = 'user_table_2'
|
|
@user_table.save
|
|
@user.viewer = true
|
|
@user.save
|
|
@user_table.reload
|
|
|
|
expect { @user_table.destroy }.to raise_error(CartoDB::InvalidMember, /Viewer users can't destroy tables/)
|
|
|
|
@user.viewer = false
|
|
@user.save
|
|
@user_table.reload
|
|
@user_table.destroy
|
|
end
|
|
end
|
|
end
|