overview_assets_test.rb 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. require 'test_helper'
  2. class OverviewAssetsTest < ActiveSupport::TestCase
  3. test 'assets' do
  4. UserInfo.current_user_id = 1
  5. roles = Role.where(name: %w[Customer])
  6. user1 = User.create_or_update(
  7. login: 'assets_overview1@example.org',
  8. firstname: 'assets_overview1',
  9. lastname: 'assets_overview1',
  10. email: 'assets_overview1@example.org',
  11. password: 'some_pass',
  12. active: true,
  13. roles: roles,
  14. )
  15. user2 = User.create_or_update(
  16. login: 'assets_overview2@example.org',
  17. firstname: 'assets_overview2',
  18. lastname: 'assets_overview2',
  19. email: 'assets_overview2@example.org',
  20. password: 'some_pass',
  21. active: true,
  22. roles: roles,
  23. )
  24. user3 = User.create_or_update(
  25. login: 'assets_overview3@example.org',
  26. firstname: 'assets_overview3',
  27. lastname: 'assets_overview3',
  28. email: 'assets_overview3@example.org',
  29. password: 'some_pass',
  30. active: true,
  31. roles: roles,
  32. )
  33. user4 = User.create_or_update(
  34. login: 'assets_overview4@example.org',
  35. firstname: 'assets_overview4',
  36. lastname: 'assets_overview4',
  37. email: 'assets_overview4@example.org',
  38. password: 'some_pass',
  39. active: true,
  40. roles: roles,
  41. )
  42. user5 = User.create_or_update(
  43. login: 'assets_overview5@example.org',
  44. firstname: 'assets_overview5',
  45. lastname: 'assets_overview5',
  46. email: 'assets_overview5@example.org',
  47. password: 'some_pass',
  48. active: true,
  49. roles: roles,
  50. )
  51. ticket_state1 = Ticket::State.find_by(name: 'new')
  52. ticket_state2 = Ticket::State.find_by(name: 'open')
  53. overview_role = Role.find_by(name: 'Agent')
  54. overview = Overview.create_or_update(
  55. name: 'my asset test',
  56. link: 'my_asset_test',
  57. prio: 1000,
  58. role_ids: [overview_role.id],
  59. user_ids: [user4.id, user5.id],
  60. condition: {
  61. 'ticket.state_id' => {
  62. operator: 'is',
  63. value: [ ticket_state1.id, ticket_state2.id ],
  64. },
  65. 'ticket.owner_id' => {
  66. operator: 'is',
  67. pre_condition: 'specific',
  68. value: user1.id,
  69. value_completion: 'John Smith <john.smith@example.com>'
  70. },
  71. },
  72. order: {
  73. by: 'created_at',
  74. direction: 'ASC',
  75. },
  76. view: {
  77. d: %w[title customer group created_at],
  78. s: %w[title customer group created_at],
  79. m: %w[number title customer group created_at],
  80. view_mode_default: 's',
  81. },
  82. )
  83. assets = overview.assets({})
  84. assert(assets[:User][user1.id])
  85. assert_not(assets[:User][user2.id])
  86. assert_not(assets[:User][user3.id])
  87. assert(assets[:User][user4.id])
  88. assert(assets[:User][user5.id])
  89. assert(assets[:TicketState][ticket_state1.id])
  90. assert(assets[:TicketState][ticket_state2.id])
  91. overview = Overview.create_or_update(
  92. name: 'my asset test',
  93. link: 'my_asset_test',
  94. prio: 1000,
  95. role_ids: [overview_role.id],
  96. user_ids: [user4.id],
  97. condition: {
  98. 'ticket.state_id' => {
  99. operator: 'is',
  100. value: ticket_state1.id,
  101. },
  102. 'ticket.owner_id' => {
  103. operator: 'is',
  104. pre_condition: 'specific',
  105. value: [user1.id, user2.id],
  106. },
  107. },
  108. order: {
  109. by: 'created_at',
  110. direction: 'ASC',
  111. },
  112. view: {
  113. d: %w[title customer group created_at],
  114. s: %w[title customer group created_at],
  115. m: %w[number title customer group created_at],
  116. view_mode_default: 's',
  117. },
  118. )
  119. assets = overview.assets({})
  120. assert(assets[:User][user1.id])
  121. assert(assets[:User][user2.id])
  122. assert_not(assets[:User][user3.id])
  123. assert(assets[:User][user4.id])
  124. assert_not(assets[:User][user5.id])
  125. assert(assets[:TicketState][ticket_state1.id])
  126. assert_not(assets[:TicketState][ticket_state2.id])
  127. overview.destroy!
  128. end
  129. end