agent_ticket_auto_assignment_test.rb 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. require 'browser_test_helper'
  2. class AgentTicketAutoAssignmentTest < TestCase
  3. def test_ticket
  4. @browser = browser_instance
  5. login(
  6. username: 'agent1@example.com',
  7. password: 'test',
  8. url: browser_url,
  9. )
  10. tasks_close_all()
  11. #
  12. # attachment checks - new ticket
  13. #
  14. # create new ticket with no attachment, attachment check should pop up
  15. ticket1 = ticket_create(
  16. data: {
  17. customer: 'nico',
  18. group: 'Users',
  19. title: 'test_auto_assignment_1 - ticket 1',
  20. body: 'test_auto_assignment_1 - ticket 1 - no auto assignment',
  21. },
  22. )
  23. ticket2 = ticket_create(
  24. data: {
  25. customer: 'nico',
  26. group: 'Users',
  27. title: 'test_auto_assignment_2 - ticket 2',
  28. body: 'test_auto_assignment_2 - ticket 2 - no auto assignment',
  29. },
  30. )
  31. ticket3 = ticket_create(
  32. data: {
  33. customer: 'nico',
  34. group: 'Users',
  35. title: 'test_auto_assignment_3 - ticket 3',
  36. body: 'test_auto_assignment_3 - ticket 3 - no auto assignment',
  37. },
  38. )
  39. tasks_close_all()
  40. logout()
  41. login(
  42. username: 'master@example.com',
  43. password: 'test',
  44. url: browser_url,
  45. )
  46. tasks_close_all()
  47. # open ticket#1
  48. ticket_open_by_search(
  49. number: ticket1[:number],
  50. )
  51. # verify if owner is set
  52. match(
  53. css: '.content.active .sidebar select[name="owner_id"]',
  54. value: '-',
  55. )
  56. # open ticket#2
  57. ticket_open_by_search(
  58. number: ticket2[:number],
  59. )
  60. # verify if owner is set
  61. match(
  62. css: '.content.active .sidebar select[name="owner_id"]',
  63. value: '-',
  64. )
  65. tasks_close_all()
  66. # enable auto assignment
  67. click(css: 'a[href="#manage"]')
  68. click(css: '.content.active a[href="#settings/ticket"]')
  69. click(css: '.content.active a[href="#auto_assignment"]')
  70. switch(
  71. css: '.content.active .js-ticketAutoAssignment',
  72. type: 'on',
  73. )
  74. # open ticket#1
  75. ticket_open_by_search(
  76. number: ticket1[:number],
  77. )
  78. # verify if owner is set
  79. watch_for(
  80. css: '.content.active .sidebar select[name="owner_id"]',
  81. value: 'Test Master',
  82. timeout: 2,
  83. )
  84. # open ticket#2
  85. ticket_open_by_search(
  86. number: ticket2[:number],
  87. )
  88. # verify if owner is set
  89. watch_for(
  90. css: '.content.active .sidebar select[name="owner_id"]',
  91. value: 'Test Master',
  92. timeout: 2,
  93. )
  94. # define auto assignment exception
  95. click(css: 'a[href="#manage"]')
  96. click(css: '.content.active a[href="#settings/ticket"]')
  97. click(css: '.content.active a[href="#auto_assignment"]')
  98. click(css: '.content.active .js-select.js-option[title="master@example.com"]')
  99. click(css: '.content.active .js-timeAccountingFilter')
  100. watch_for_disappear(
  101. css: '.content.active .sidebar select[name="owner_id"]',
  102. value: 'Test Master',
  103. timeout: 10,
  104. )
  105. # open ticket#3
  106. ticket_open_by_search(
  107. number: ticket3[:number],
  108. )
  109. # verify if owner is not set
  110. sleep 6
  111. match(
  112. css: '.content.active .sidebar select[name="owner_id"]',
  113. value: '-',
  114. )
  115. tasks_close_all()
  116. # disable auto assignment
  117. click(css: 'a[href="#manage"]')
  118. click(css: '.content.active a[href="#settings/ticket"]')
  119. click(css: '.content.active a[href="#auto_assignment"]')
  120. switch(
  121. css: '.content.active .js-ticketAutoAssignment',
  122. type: 'off',
  123. )
  124. end
  125. end