269 lines
9.4 KiB
Ruby
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 |