273 lines
11 KiB
Ruby
273 lines
11 KiB
Ruby
describe '/ticket/edit-comment' do
|
|
Scripts.logout()
|
|
Scripts.login($staff[:email], $staff[:password], true)
|
|
Scripts.createTicket('ticket made by a staff','content of the ticket made by a staff')
|
|
|
|
Scripts.logout()
|
|
Scripts.login()
|
|
Scripts.createTicket('ticket made by a user','content of the ticket made by a user')
|
|
|
|
def getTicketEventsCommentsQuery(ticketId)
|
|
return "SELECT * FROM `ticketevent` WHERE `type` = 'COMMENT' AND `ticket_id` = #{ticketId} ORDER BY `ticketevent`.`id` ASC;"
|
|
end
|
|
|
|
ticket = $database.getRow('ticket', 'ticket made by a user', 'title')
|
|
ticket2 = $database.getRow('ticket', 'ticket made by a staff', 'title')
|
|
|
|
it 'should success if author is right and ticket has no comment' do
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'content edited by the user',
|
|
ticketNumber: ticket['ticket_number']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(0)
|
|
ticket = $database.getRow('ticket', 'ticket made by a user', 'title')
|
|
|
|
(result['status']).should.equal('success')
|
|
(ticket['content']).should.equal('content edited by the user')
|
|
end
|
|
|
|
it 'should success if author is right and its the last comment' do
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(0)
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a user')
|
|
ticketevent = $database.getRow('ticketevent', 'com ment of a user', 'content')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
tickets_comments.to_a.last['content'].should.equal('com ment of a user')
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'comment edited by the user',
|
|
ticketEventId: ticketevent['id']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
|
|
(result['status']).should.equal('success')
|
|
|
|
tickets_comments.to_a.last['content'].should.equal('comment edited by the user')
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a user 2')
|
|
ticketevent = $database.getRow('ticketevent', 'com ment of a user 2', 'content')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(2)
|
|
tickets_comments.to_a.last['content'].should.equal('com ment of a user 2')
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'comment edited by the user 2',
|
|
ticketEventId: ticketevent['id']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(2)
|
|
tickets_comments.to_a.last['content'].should.equal('comment edited by the user 2')
|
|
|
|
(result['status']).should.equal('success')
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a user 3')
|
|
ticketevent = $database.getRow('ticketevent', 'com ment of a user 3', 'content')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(3)
|
|
tickets_comments.to_a.last['content'].should.equal('com ment of a user 3')
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'comment edited by the user 3',
|
|
ticketEventId: ticketevent['id']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(3)
|
|
tickets_comments.to_a.last['content'].should.equal('comment edited by the user 3')
|
|
|
|
ticketevent = tickets_comments.to_a.last
|
|
|
|
(result['status']).should.equal('success')
|
|
|
|
Scripts.logout()
|
|
Scripts.login($staff[:email], $staff[:password], true)
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a staff xd')
|
|
ticketevent = $database.getRow('ticketevent', 'com ment of a staff xd', 'content')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(4)
|
|
tickets_comments.to_a.last['content'].should.equal('com ment of a staff xd')
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'comment edited by the staff xd',
|
|
ticketEventId: ticketevent['id']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(4)
|
|
tickets_comments.to_a.last['content'].should.equal('comment edited by the staff xd')
|
|
|
|
ticketevent = tickets_comments.to_a.last
|
|
|
|
(result['status']).should.equal('success')
|
|
|
|
Scripts.logout()
|
|
Scripts.login()
|
|
end
|
|
|
|
it 'should fail if author is right but ticket has other commets below' do
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(4)
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'content edited by the user',
|
|
ticketNumber: ticket['ticket_number']
|
|
})
|
|
|
|
(result['status']).should.equal('fail')
|
|
(result['message']).should.equal('TICKET_CONTENT_CANNOT_BE_EDITED')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(4)
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a user 4')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(5)
|
|
ticket_comment3 = tickets_comments.to_a.last
|
|
|
|
Scripts.commentTicket(ticket['ticket_number'],'com ment of a user 5')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket['id']))
|
|
tickets_comments.size.should.equal(6)
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'this is not the last comment of the ticket',
|
|
ticketEventId: ticket_comment3['id']
|
|
})
|
|
|
|
(result['status']).should.equal('fail')
|
|
(result['message']).should.equal('INVALID_TICKET_EVENT')
|
|
end
|
|
|
|
it 'should fail if ticket has no comments but author is wrong' do
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'this is not my ticket',
|
|
ticketNumber: ticket2['ticket_number']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(0)
|
|
ticket2 = $database.getRow('ticket', 'ticket made by a staff', 'title')
|
|
|
|
(result['status']).should.equal('fail')
|
|
(ticket2['content']).should.equal('content of the ticket made by a staff')
|
|
(result['message']).should.equal('NO_PERMISSION')
|
|
end
|
|
|
|
it 'should fail if ticket has comment and author is wrong' do
|
|
Scripts.logout()
|
|
Scripts.login($staff[:email], $staff[:password], true)
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(0)
|
|
|
|
Scripts.commentTicket(ticket2['ticket_number'],'com ment of a staff')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
tickets_comments.to_a.last['content'].should.equal('com ment of a staff')
|
|
|
|
Scripts.logout()
|
|
Scripts.login()
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'this is not my ticket',
|
|
ticketNumber: ticket2['ticket_number']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
ticket2 = $database.getRow('ticket', 'ticket made by a staff', 'title')
|
|
|
|
(result['status']).should.equal('fail')
|
|
(ticket2['content']).should.equal('content of the ticket made by a staff')
|
|
(result['message']).should.equal('NO_PERMISSION')
|
|
end
|
|
|
|
|
|
it 'should fail if author is wrong but comment is the last' do
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
|
|
ticket_comment = tickets_comments.to_a.last
|
|
|
|
ticket_comment['content'].should.equal('com ment of a staff')
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'this comment it is not mine',
|
|
ticketEventId: ticket_comment['id']
|
|
})
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
|
|
ticket_comment = tickets_comments.to_a.last
|
|
|
|
(result['status']).should.equal('fail')
|
|
(result['message']).should.equal('NO_PERMISSION')
|
|
ticket_comment['content'].should.equal('com ment of a staff')
|
|
end
|
|
|
|
it 'should fail if the author and comment are wrong' do
|
|
Scripts.logout()
|
|
Scripts.login($staff[:email], $staff[:password], true)
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(1)
|
|
first_comment = tickets_comments.to_a.last
|
|
|
|
Scripts.commentTicket(ticket2['ticket_number'],'com ment of a staff 2')
|
|
|
|
tickets_comments = $database.query(getTicketEventsCommentsQuery(ticket2['id']))
|
|
tickets_comments.size.should.equal(2)
|
|
last_comment = tickets_comments.to_a.last
|
|
last_comment['content'].should.equal('com ment of a staff 2')
|
|
|
|
Scripts.logout()
|
|
Scripts.login()
|
|
|
|
result = request('/ticket/edit-comment', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
content: 'this comment it is not mine and is not the last',
|
|
ticketEventId: first_comment['id']
|
|
})
|
|
|
|
(result['status']).should.equal('fail')
|
|
(result['message']).should.equal('NO_PERMISSION')
|
|
last_comment['content'].should.equal('com ment of a staff 2')
|
|
end
|
|
end
|