email_process_follow_up_possible_test.rb 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. require 'test_helper'
  2. class EmailProcessFollowUpPossibleTest < ActiveSupport::TestCase
  3. test 'process with follow up possible check' do
  4. users_group = Group.lookup(name: 'Users')
  5. ticket = Ticket.create(
  6. title: 'follow up check',
  7. group: users_group,
  8. customer_id: 2,
  9. state: Ticket::State.lookup(name: 'new'),
  10. priority: Ticket::Priority.lookup(name: '2 normal'),
  11. updated_by_id: 1,
  12. created_by_id: 1,
  13. )
  14. article = Ticket::Article.create(
  15. ticket_id: ticket.id,
  16. from: 'some_sender@example.com',
  17. to: 'some_recipient@example.com',
  18. subject: 'follow up check',
  19. message_id: '<20150830145601.30.608882@edenhofer.zammad.com>',
  20. body: 'some message article',
  21. internal: false,
  22. sender: Ticket::Article::Sender.lookup(name: 'Agent'),
  23. type: Ticket::Article::Type.lookup(name: 'email'),
  24. updated_by_id: 1,
  25. created_by_id: 1,
  26. )
  27. follow_up_raw = "From: me@example.com
  28. To: customer@example.com
  29. Subject: #{ticket.subject_build('some new subject')}
  30. Some Text"
  31. users_group.update!('follow_up_possible' => 'new_ticket')
  32. travel 1.second
  33. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, follow_up_raw)
  34. assert_equal(ticket.id, ticket_p.id)
  35. assert_equal('follow up check', ticket_p.title)
  36. assert_match('some new subject', article_p.subject)
  37. # close ticket
  38. ticket.state = Ticket::State.find_by(name: 'closed')
  39. ticket.save!
  40. follow_up_raw = "From: me@example.com
  41. To: customer@example.com
  42. Subject: #{ticket.subject_build('some new subject2')}
  43. Some Text"
  44. travel 1.second
  45. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, follow_up_raw)
  46. assert_not_equal(ticket.id, ticket_p.id)
  47. assert_equal('some new subject2', ticket_p.title)
  48. assert_equal('some new subject2', article_p.subject)
  49. users_group.update!('follow_up_possible' => 'yes')
  50. travel 1.second
  51. ticket_p, article_p, user_p = Channel::EmailParser.new.process({}, follow_up_raw)
  52. assert_equal(ticket.id, ticket_p.id)
  53. assert_equal('follow up check', ticket_p.title)
  54. assert_match('some new subject', article_p.subject)
  55. travel_back
  56. end
  57. end