93 lines
3.4 KiB
Ruby
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
|