email_process_follow_up_possible_test.rb 2.2 KB

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