opensupports/tests/system/default-department.rb

269 lines
9.4 KiB
Ruby

describe '/system/default-department' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
it 'should fail if try to turn a private department default' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
privatedepartment = $database.getRow('department', 1, 'private')
result = request('/system/edit-settings', {
"csrf_userid" => $csrf_userid,
"csrf_token" => $csrf_token,
"default-department-id" => privatedepartment['id']
})
(result['status']).should.equal('fail')
(result['message']).should.equal('INVALID_DEFAULT_DEPARTMENT')
end
it 'should edit locked setting' do
result = request('/system/edit-settings', {
"csrf_userid" => $csrf_userid,
"csrf_token" => $csrf_token,
"default-is-locked" => 1
})
(result['status']).should.equal('success')
row = $database.getRow('setting', 'default-is-locked', 'name')
(row['value']).should.equal('1')
end
it 'should fail if default-department-id does not exist' do
request('/user/logout')
Scripts.login($staff[:email], $staff[:password], true)
result= request('/system/edit-settings', {
"csrf_userid" => $csrf_userid,
"csrf_token" => $csrf_token,
"default-department-id" => 1111
})
(result['status']).should.equal('fail')
(result['message']).should.equal('INVALID_DEFAULT_DEPARTMENT')
end
it 'should set a new default deparment' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
publicdepartment = $database.getRow('department', 'Suggestions', 'name')
result = request('/system/edit-settings', {
"csrf_userid" => $csrf_userid,
"csrf_token" => $csrf_token,
"default-department-id" => publicdepartment['id']
})
(result['status']).should.equal('success')
end
it 'should fail if try to delete the default department' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
defaultDepartment = $database.getRow('setting', 'default-department-id', 'name')
transferDepartment = $database.getRow('department','<b>new department</b>','name')
result = request('/system/delete-department', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
departmentId: defaultDepartment['value'],
transferDepartmentId: transferDepartment['id']
})
(result['status']).should.equal('fail')
(result['message']).should.equal('CAN_NOT_DELETE_DEFAULT_DEPARTMENT')
end
it 'should fail if try to edit default department into private' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
defaultDepartmentId = $database.getRow('setting', 'default-department-id', 'name')
department = $database.getRow('department',defaultDepartmentId['value'],'id')
result = request('/system/edit-department', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token,
departmentId: department['id'],
name: department['name'],
private: true
})
(result['status']).should.equal('fail')
(result['message']).should.equal('DEFAULT_DEPARTMENT_CAN_NOT_BE_PRIVATE')
end
it 'should create ticket in default department if Staff does not give department with locked on' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(1)
result = request('/ticket/create', {
title: 'Night King',
content: 'Arya sucks',
language: 'en',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King', 'title')
setting = $database.getRow('setting', 'default-department-id','name')
(row['department_id']).should.equal(setting['value'].to_i)
end
it 'should create ticket in default department if staff does not give department with locked off'do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(0)
result = request('/ticket/create', {
title: 'Night King2',
content: 'Arya sucks2',
language: 'en',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King2', 'title')
setting = $database.getRow('setting', 'default-department-id','name')
(row['department_id']).should.equal(setting['value'].to_i)
end
it 'should create ticket in selected department if staff give department and lockd is off'do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(0)
result = request('/ticket/create', {
title: 'Night King3',
content: 'Arya sucks3',
language: 'en',
departmentId: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King3', 'title')
(row['department_id']).should.equal(1)
end
it 'should create ticket in selected department if staff give department and locked is on' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(1)
result = request('/ticket/create', {
title: 'Night King4',
content: 'Arya sucks4',
language: 'en',
departmentId: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King4', 'title')
(row['department_id']).should.equal(1)
end
it 'should create ticket on default department if user does not give department and locked is on' do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(1)
request('/user/logout')
Scripts.login('user@os4.com', 'loginpass')
result = request('/ticket/create', {
title: 'Night King5',
content: 'Arya sucks5',
language: 'en',
departmentId: 5,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
row = $database.getRow('ticket', 'Night King5', 'title')
setting = $database.getRow('setting', 'default-department-id','name')
(row['department_id']).should.equal(setting['value'].to_i)
end
it 'should create ticket on default department if user does not give department and locked is off'do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(0)
request('/user/logout')
Scripts.login('user@os4.com', 'loginpass')
result = request('/ticket/create', {
title: 'Night King6',
content: 'Arya sucks6',
language: 'en',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King6', 'title')
setting = $database.getRow('setting', 'default-department-id','name')
(row['department_id']).should.equal(setting['value'].to_i)
end
it 'should create ticket on selected department if user give department and locked is off'do
request('/user/logout')
Scripts.login('staff@opensupports.com', 'staff', true)
Scripts.updateLockedDepartmentSetting(0)
request('/user/logout')
Scripts.login('user@os4.com', 'loginpass')
result = request('/ticket/create', {
title: 'Night King16',
content: 'Arya sucks16',
language: 'en',
departmentId: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
row = $database.getRow('ticket', 'Night King16', 'title')
(row['department_id']).should.equal(1)
end
it 'should create ticket on default leanguage if user does not pass language'do
$database.query('update setting set value="ru" where name="language";')
request('/user/logout')
Scripts.login('user@os4.com', 'loginpass')
result = request('/ticket/create', {
title: 'Danny Dragon',
content: 'They do not get to choose',
departmentId: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
ticket = $database.getRow('ticket', 'Danny Dragon', 'title')
defaultLanguage = $database.getRow('setting', 'language', 'name')
(ticket['language']).should.equal(defaultLanguage['value'])
result['status'].should.equal('success')
$database.query('update setting set value="en" where name="language";')
end
end