opensupports/tests/staff/assign-ticket.rb

125 lines
4.8 KiB
Ruby

describe '/staff/assign-ticket' do
Scripts.logout()
Scripts.login($staff[:email], $staff[:password], true)
Scripts.createTicket('ticket_to_assing_1')
Scripts.createTicket('ticket_to_assing_2')
Scripts.createTicket('ticket_to_assing_3')
Scripts.createTicket('ticket_to_assing_4')
Scripts.createTicket('ticket_to_assing_5')
Scripts.createTicket('ticket_to_assing_6')
Scripts.createTicket('ticket_to_assing_7')
Scripts.createTicket('ticket_to_assing_8')
Scripts.createTicket('ticket_to_assing_9')
Scripts.createTicket('ticket_to_assing_10')
Scripts.createTicket('ticket_to_assing_11')
Scripts.createTicket('ticket_to_assing_12')
Scripts.createTicket('ticket_to_assing_13')
Scripts.createTicket('ticket_to_assing_14')
Scripts.createTicket('ticket_to_assing_15')
Scripts.createTicket('ticket_to_assing_16')
Scripts.createTicket('ticket_to_assing_17')
Scripts.createTicket('ticket_to_assing_18')
#TODO: Create a staff without all department
#it 'should fail if staff is not in the same department'do
#end
it 'should assign ticket if everything is okey' do
ticket1 = $database.getRow('ticket', 'ticket_to_assing_1', 'title')
ticket2 = $database.getRow('ticket', 'ticket_to_assing_2', 'title')
ticket3 = $database.getRow('ticket', 'ticket_to_assing_3', 'title')
ticket4 = $database.getRow('ticket', 'ticket_to_assing_4', 'title')
ticket5 = $database.getRow('ticket', 'ticket_to_assing_5', 'title')
ticket6 = $database.getRow('ticket', 'ticket_to_assing_6', 'title')
ticket7 = $database.getRow('ticket', 'ticket_to_assing_7', 'title')
ticket8 = $database.getRow('ticket', 'ticket_to_assing_8', 'title')
ticket9 = $database.getRow('ticket', 'ticket_to_assing_9', 'title')
ticket10 = $database.getRow('ticket', 'ticket_to_assing_10', 'title')
ticket11 = $database.getRow('ticket', 'ticket_to_assing_11', 'title')
ticket12 = $database.getRow('ticket', 'ticket_to_assing_12', 'title')
ticket13 = $database.getRow('ticket', 'ticket_to_assing_13', 'title')
ticket14 = $database.getRow('ticket', 'ticket_to_assing_14', 'title')
ticket15 = $database.getRow('ticket', 'ticket_to_assing_15', 'title')
ticket16 = $database.getRow('ticket', 'ticket_to_assing_16', 'title')
ticket17 = $database.getRow('ticket', 'ticket_to_assing_17', 'title')
ticket18 = $database.getRow('ticket', 'ticket_to_assing_18', 'title')
ticket_with_id_1 = $database.getRow('ticket', 'Should we pay?', 'title')
tickets = [
ticket1,
ticket2,
ticket3,
ticket4,
ticket5,
ticket6,
ticket7,
ticket8,
ticket9,
ticket10,
ticket11,
ticket12,
ticket13,
ticket14,
ticket15,
ticket16,
ticket17,
ticket18,
ticket_with_id_1
]
for ticket in tickets
result = request('/staff/assign-ticket', {
ticketNumber: ticket['ticket_number'],
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
ticket = $database.getRow('ticket', ticket['ticket_number'], 'ticket_number')
(ticket['owner_id']).should.equal(1)
staff_ticket = $database.getRow('staff_ticket', ticket['id'].to_i , 'ticket_id')
(staff_ticket['staff_id']).should.equal(1)
(staff_ticket['ticket_id']).should.equal(ticket['id'])
end
end
it 'should assign ticket if a staff choose another to assing a ticket ' do
staffId = $database.getRow('staff','ayra2@opensupports.com','email')['id']
ticket = $database.getRow('ticket', 'Winter is coming!', 'title')
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', 'Winter is coming!', 'title')
(ticket['owner_id']).should.equal(staffId)
(ticket['unread']).should.equal(1)
end
it 'should fail if ticket is already owned' do
ticket = $database.getRow('ticket', 'Should we pay?', 'title')
result = request('/staff/assign-ticket', {
ticketNumber: ticket['ticket_number'],
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('fail')
(result['message']).should.equal('TICKET_ALREADY_ASSIGNED')
end
end