session_basic_ticket_test.rb 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. require 'test_helper'
  2. class SessionBasicTicketTest < ActiveSupport::TestCase
  3. setup do
  4. UserInfo.current_user_id = 1
  5. roles = Role.where(name: ['Agent'])
  6. groups = Group.all
  7. @agent1 = User.create_or_update(
  8. login: 'session-basic-ticket-agent-1',
  9. firstname: 'Session',
  10. lastname: 'session basic ' + rand(99_999).to_s,
  11. email: 'session-basic-ticket-agent-1@example.com',
  12. password: 'agentpw',
  13. active: true,
  14. roles: roles,
  15. groups: groups,
  16. )
  17. @agent2 = User.create_or_update(
  18. login: 'session-basic-ticket-agent-2',
  19. firstname: 'Session',
  20. lastname: 'session basic ' + rand(99_999).to_s,
  21. email: 'session-basic-ticket-agent-2@example.com',
  22. password: 'agentpw',
  23. active: true,
  24. roles: roles,
  25. groups: groups,
  26. )
  27. Overview.destroy_all
  28. load Rails.root.join('db', 'seeds', 'overviews.rb')
  29. end
  30. test 'asset needed' do
  31. client1 = Sessions::Backend::TicketOverviewList.new(@agent1, {}, false, '123-1', 2)
  32. client2 = Sessions::Backend::TicketOverviewList.new(@agent2, {}, false, '123-2', 2)
  33. ticket = Ticket.create!(title: 'default overview test', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
  34. assert(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  35. client1.asset_push(ticket, {})
  36. assert_not(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  37. assert(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  38. client2.asset_push(ticket, {})
  39. assert_not(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  40. travel 30.minutes
  41. assert_not(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  42. assert_not(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  43. travel 120.minutes
  44. assert(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  45. client1.asset_push(ticket, {})
  46. assert(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  47. client2.asset_push(ticket, {})
  48. assert_not(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  49. client1.asset_push(ticket, {})
  50. assert_not(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  51. client2.asset_push(ticket, {})
  52. ticket.touch
  53. assert(client1.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  54. client1.asset_push(ticket, {})
  55. assert(client2.asset_needed_by_updated_at?(ticket.class.to_s, ticket.id, ticket.updated_at))
  56. client2.asset_push(ticket, {})
  57. assert_not(client1.asset_needed?(ticket))
  58. assert_not(client2.asset_needed?(ticket))
  59. travel 125.minutes
  60. assert(client1.asset_needed?(ticket))
  61. client1.asset_push(ticket, {})
  62. assert(client2.asset_needed?(ticket))
  63. client2.asset_push(ticket, {})
  64. assert_not(client1.asset_needed?(ticket))
  65. assert_not(client2.asset_needed?(ticket))
  66. travel_back
  67. end
  68. test 'ticket_overview_List' do
  69. ticket1 = Ticket.create!(title: 'default overview test 1', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
  70. ticket2 = Ticket.create!(title: 'default overview test 2', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
  71. client1 = Sessions::Backend::TicketOverviewList.new(@agent1, {}, false, '123-1', 2)
  72. result1 = client1.push
  73. assert(result1, 'check ticket_overview_List')
  74. assert(result1[1][:data][:assets])
  75. assert(result1[1][:data][:assets][:Overview])
  76. assert(result1[1][:data][:assets][:User])
  77. assert_equal(result1[1][:data][:assets][:Ticket][ticket1.id]['title'], ticket1.title)
  78. assert_equal(result1[1][:data][:assets][:Ticket][ticket2.id]['title'], ticket2.title)
  79. # next check should be empty / no changes
  80. result1 = client1.push
  81. assert(!result1, 'check ticket_overview_index - recall')
  82. # next check should be empty / no changes
  83. travel 3.seconds
  84. result1 = client1.push
  85. assert(!result1, 'check ticket_overview_index - recall 2')
  86. # create ticket
  87. ticket3 = Ticket.create!(title: '12323', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
  88. travel 3.seconds
  89. result1 = client1.push
  90. assert(result1, 'check ticket_overview_index - recall 3')
  91. assert(result1[1][:data][:assets])
  92. assert_not(result1[1][:data][:assets][:Ticket][ticket1.id])
  93. assert_not(result1[1][:data][:assets][:Ticket][ticket2.id])
  94. assert_equal(result1[1][:data][:assets][:Ticket][ticket3.id]['title'], ticket3.title)
  95. travel 3.seconds
  96. # chnage overview
  97. overviews = Ticket::Overviews.all(
  98. current_user: @agent1,
  99. )
  100. overviews.first.touch
  101. result1 = client1.push
  102. assert(result1, 'check ticket_overview_index - recall 4')
  103. assert(result1[1][:data][:assets])
  104. assert_not(result1[1][:data][:assets][:Ticket])
  105. result1 = client1.push
  106. assert(!result1, 'check ticket_overview_index - recall 5')
  107. Sessions::Backend::TicketOverviewList.reset(@agent1.id)
  108. result1 = client1.push
  109. assert(!result1, 'check ticket_overview_index - recall 6')
  110. ticket4 = Ticket.create!(title: '12323 - 2', group_id: 1, priority_id: 1, state_id: 1, customer_id: 1)
  111. Sessions::Backend::TicketOverviewList.reset(@agent1.id)
  112. result1 = client1.push
  113. assert(result1, 'check ticket_overview_index - recall 7')
  114. assert(result1[1][:data][:assets])
  115. assert_not(result1[1][:data][:assets][:Ticket][ticket1.id])
  116. assert_not(result1[1][:data][:assets][:Ticket][ticket2.id])
  117. assert_not(result1[1][:data][:assets][:Ticket][ticket3.id])
  118. assert_equal(result1[1][:data][:assets][:Ticket][ticket4.id]['title'], ticket4.title)
  119. travel 125.minutes
  120. ticket1.touch
  121. result1 = client1.push
  122. assert(result1, 'check ticket_overview_index - recall 8')
  123. assert(result1[1][:data][:assets])
  124. assert_equal(result1[1][:data][:assets][:Ticket][ticket1.id]['title'], ticket1.title)
  125. assert_equal(result1[1][:data][:assets][:Ticket][ticket2.id]['title'], ticket2.title)
  126. assert_equal(result1[1][:data][:assets][:Ticket][ticket3.id]['title'], ticket3.title)
  127. assert_equal(result1[1][:data][:assets][:Ticket][ticket4.id]['title'], ticket4.title)
  128. travel 10.seconds
  129. Sessions.destroy_idle_sessions(3)
  130. travel_back
  131. end
  132. end