describe '/ticket/change-department' do Scripts.logout() Scripts.login($staff[:email], $staff[:password], true) Scripts.createTicket('Stafftitle','This ticket was made by an staff',1) Scripts.logout() Scripts.logout() Scripts.login($staff[:email], $staff[:password], true) request('/system/add-department', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, name: 'Suggestions' }) request('/system/add-department', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, name: 'Tech support' }) request('/system/add-department', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, name: 'Instalation problems' }) request('/staff/edit', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, departments: '[1, 2, 3]', staffId: 1 }) it 'should change department if staff has same department as ticket' do Scripts.logout() Scripts.login($staff[:email], $staff[:password], true) ticket = $database.getRow('ticket', 'Should we pay?', 'title') result = request('/ticket/change-department', { ticketNumber: ticket['ticket_number'], departmentId: 4, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'Should we pay?', 'title') (ticket['unread']).should.equal(1) (ticket['department_id']).should.equal(4) lastLog = $database.getLastRow('log') (lastLog['type']).should.equal('DEPARTMENT_CHANGED') end it 'should unassing ticket if staff does not server new department' do ticket = $database.getRow('ticket', 'Should we pay?', 'title') Scripts.assignTicket(ticket['ticket_number']) request('/staff/edit', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, departments: '[2, 4]', staffId: 1 }) result = request('/ticket/change-department', { ticketNumber: ticket['ticket_number'], departmentId: 3, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'Should we pay?', 'title') (ticket['unread']).should.equal(1) (ticket['department_id']).should.equal(3) (ticket['owner_id']).should.equal(nil) lastLog = $database.getLastRow('log') (lastLog['type']).should.equal('DEPARTMENT_CHANGED') end it 'should change department if staff does not have ticket department and is author' do ticket = $database.getRow('ticket', 'Stafftitle', 'title') result = request('/ticket/change-department', { ticketNumber: ticket['ticket_number'], departmentId: 1, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') (ticket['department_id']).should.equal(1) request('/staff/edit', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, departments: '[1, 2, 3]', staffId: 1 }) end it 'should not unassing ticket if owner has the new ticket department and staff does not have it' do Scripts.logout() Scripts.login($staff[:email], $staff[:password], true) result = request('/staff/edit', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, departments: '[1, 2]', staffId: 1 }) (result['status']).should.equal('success') result = request('/staff/invite', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, name: 'Jon Snow', email: 'jon_snow@opensupports.com', level: 2, profilePic: '', departments: '[1, 3]' }) (result['status']).should.equal('success') Scripts.createTicket('title of the ticket to change department', 'this is the content of the ticket to change department', 1) staffId = $database.getRow('staff','jon_snow@opensupports.com','email')['id'] ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(nil) result = request('/staff/assign-ticket', { ticketNumber: ticket['ticket_number'], staffId: staffId, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(staffId) result = request('/ticket/change-department', { ticketNumber: ticket['ticket_number'], departmentId: 3, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(staffId) result = request('/staff/un-assign-ticket', { ticketNumber: ticket['ticket_number'], csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(nil) result = request('/ticket/delete', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, ticketNumber: ticket['ticket_number'] }) (result['status']).should.equal('success') staff = $database.getRow('staff', 'jon_snow@opensupports.com', 'email') Scripts.deleteStaff(staff['id']) end it 'should unassing ticket if owner has not the new ticket department' do Scripts.logout() Scripts.login($staff[:email], $staff[:password], true) result = request('/staff/edit', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, departments: '[1, 2, 3]', staffId: 1 }) (result['status']).should.equal('success') result = request('/staff/invite', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, name: 'Oberyn', email: 'Oberyn_martel@opensupports.com', level: 2, profilePic: '', departments: '[1, 2]' }) (result['status']).should.equal('success') Scripts.createTicket('title of the ticket to change department', 'this is the content of the ticket to change department', 1) staffId = $database.getRow('staff','Oberyn_martel@opensupports.com','email')['id'] ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(nil) result = request('/staff/assign-ticket', { ticketNumber: ticket['ticket_number'], staffId: staffId, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(staffId) result = request('/ticket/change-department', { ticketNumber: ticket['ticket_number'], departmentId: 3, csrf_userid: $csrf_userid, csrf_token: $csrf_token }) (result['status']).should.equal('success') ticket = $database.getRow('ticket', 'title of the ticket to change department', 'title') (ticket['owner_id']).should.equal(nil) result = request('/ticket/delete', { csrf_userid: $csrf_userid, csrf_token: $csrf_token, ticketNumber: ticket['ticket_number'] }) (result['status']).should.equal('success') staff = $database.getRow('staff', 'Oberyn_martel@opensupports.com', 'email') Scripts.deleteStaff(staff['id']) end end