cartodb/spec/lib/tasks/user_rake_spec.rb
2020-06-15 10:58:47 +08:00

93 lines
3.4 KiB
Ruby

require 'spec_helper_min'
require 'rake'
describe 'user' do
before :all do
Rake.application.rake_require "tasks/user"
Rake::Task.define_task(:environment)
end
describe 'notifications:add_by_field' do
it "should not accept wrong or incomplete input" do
expect {
Rake::Task["user:notifications:add_by_field"].reenable
Rake.application.invoke_task "user:notifications:add_by_field"
}.to raise_error(RuntimeError, "Filter field and value are needed")
expect {
Rake::Task["user:notifications:add_by_field"].reenable
Rake.application.invoke_task "user:notifications:add_by_field[database_host]"
}.to raise_error(RuntimeError, "Filter field and value are needed")
expect {
Rake::Task["user:notifications:add_by_field"].reenable
Rake.application.invoke_task "user:notifications:add_by_field[database_host,localhost]"
}.to raise_error(RuntimeError, "Notification not provided. Please include it")
expect {
Rake::Task["user:notifications:add_by_field"].reenable
Rake.application.invoke_task "user:notifications:add_by_field[unknown_field,localhost,test notification!]"
}.to raise_error(RuntimeError, "Unknown field unknown_field for filtering. Allowed fields are database_host")
end
it "should change the notification field for the users with localhost database" do
user = FactoryGirl.create(:valid_user)
user.database_host = "localhost"
user.save
user2 = FactoryGirl.create(:valid_user)
user2.database_host = "127.0.0.1"
user2.save
Rake::Task["user:notifications:add_by_field"].reenable
Rake.application.invoke_task "user:notifications:add_by_field[database_host,localhost,test notification!]"
user.reload.notification.should eql 'test notification!'
user2.reload.notification.should be_nil
user.destroy
user2.destroy
end
end
describe 'notifications:clean_by_field' do
it "should not accept wrong or incomplete input" do
expect {
Rake::Task["user:notifications:clean_by_field"].reenable
Rake.application.invoke_task "user:notifications:clean_by_field"
}.to raise_error(RuntimeError, "Filter field and value are needed")
expect {
Rake::Task["user:notifications:clean_by_field"].reenable
Rake.application.invoke_task "user:notifications:clean_by_field[database_host]"
}.to raise_error(RuntimeError, "Filter field and value are needed")
expect {
Rake::Task["user:notifications:clean_by_field"].reenable
Rake.application.invoke_task "user:notifications:clean_by_field[unknown_field,localhost]"
}.to raise_error(RuntimeError, "Unknown field unknown_field for filtering. Allowed fields are database_host")
end
it "should clean the notification field for the users with localhost database" do
user = FactoryGirl.create(:valid_user)
user.database_host = "localhost"
user.notification = 'test notification!'
user.save
user2 = FactoryGirl.create(:valid_user)
user2.database_host = "127.0.0.1"
user2.notification = 'test notification!'
user2.save
Rake::Task["user:notifications:clean_by_field"].reenable
Rake.application.invoke_task "user:notifications:clean_by_field[database_host,localhost]"
user.reload.notification.should be_nil
user2.reload.notification.should eql 'test notification!'
user.destroy
user2.destroy
end
end
end