assets_spec.rb 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe 'Assets', type: :system, db_strategy: :reset do
  4. let(:organization) { create(:organization, note: 'hello') }
  5. let(:customer) { create(:customer, organization: organization, note: 'hello', last_login: Time.zone.now, login_failed: 1) }
  6. let(:agent) { create(:agent, groups: [Group.find_by(name: 'Users')], note: 'hello', last_login: Time.zone.now, login_failed: 1) }
  7. let(:admin) { create(:admin, groups: [Group.find_by(name: 'Users')], note: 'hello', last_login: Time.zone.now, login_failed: 1) }
  8. let(:ticket) { create(:ticket, owner: agent, group: Group.find_by(name: 'Users'), customer: customer, created_by: admin) }
  9. context 'groups' do
  10. def group_note
  11. page.execute_script('return App.Group.first().note')
  12. end
  13. describe 'when customer', authenticated_as: :customer do
  14. it 'can not access group details' do
  15. expect(group_note).to be_nil
  16. end
  17. end
  18. describe 'when agent', authenticated_as: :agent do
  19. it 'can access group details' do
  20. expect(group_note).not_to be_nil
  21. end
  22. end
  23. describe 'when admin', authenticated_as: :admin do
  24. it 'can access group details' do
  25. expect(group_note).not_to be_nil
  26. end
  27. end
  28. end
  29. context 'organizations' do
  30. def organization_note
  31. page.execute_script("return App.Organization.find(#{organization.id}).note")
  32. end
  33. before do
  34. visit "#ticket/zoom/#{ticket.id}"
  35. end
  36. describe 'when customer', authenticated_as: :customer do
  37. it 'can not access organization details' do
  38. expect(organization_note).to be_nil
  39. end
  40. end
  41. describe 'when agent', authenticated_as: :agent do
  42. it 'can access organization details' do
  43. expect(organization_note).not_to be_nil
  44. end
  45. end
  46. describe 'when admin', authenticated_as: :admin do
  47. it 'can access organization details' do
  48. expect(organization_note).not_to be_nil
  49. end
  50. end
  51. end
  52. context 'roles' do
  53. def role_name
  54. page.execute_script('return App.Role.first().name')
  55. end
  56. before do
  57. visit "#ticket/zoom/#{ticket.id}"
  58. end
  59. describe 'when customer', authenticated_as: :customer do
  60. it 'can not access role details' do
  61. expect(role_name).to eq('Role_1')
  62. end
  63. end
  64. describe 'when agent', authenticated_as: :agent do
  65. it 'can access role details' do
  66. expect(role_name).not_to eq('Role_1')
  67. end
  68. end
  69. describe 'when admin', authenticated_as: :admin do
  70. it 'can access role details' do
  71. expect(role_name).not_to eq('Role_1')
  72. end
  73. end
  74. end
  75. context 'users' do
  76. def customer_email
  77. page.execute_script("return App.User.find(#{customer.id}).email")
  78. end
  79. def customer_note
  80. page.execute_script("return App.User.find(#{customer.id}).note")
  81. end
  82. def owner_firstname
  83. page.execute_script("return App.User.find(#{agent.id}).firstname")
  84. end
  85. def owner_details
  86. [
  87. page.execute_script("return App.User.find(#{agent.id}).last_login"),
  88. page.execute_script("return App.User.find(#{agent.id}).login_failed"),
  89. page.execute_script("return App.User.find(#{agent.id}).email"),
  90. page.execute_script("return App.User.find(#{agent.id}).note"),
  91. ].compact
  92. end
  93. before do
  94. visit "#ticket/zoom/#{ticket.id}"
  95. end
  96. describe 'when customer', authenticated_as: :customer do
  97. it 'can access customer email' do
  98. expect(customer_email).not_to be_nil
  99. end
  100. it 'can not access customer note' do
  101. expect(customer_note).to be_nil
  102. end
  103. it 'can not access owner details' do
  104. expect(owner_details).to be_empty
  105. end
  106. it 'can access owner firstname' do
  107. expect(owner_firstname).not_to be_nil
  108. end
  109. end
  110. describe 'when agent', authenticated_as: :agent do
  111. it 'can access customer email' do
  112. expect(customer_email).not_to be_nil
  113. end
  114. it 'can access customer note' do
  115. expect(customer_note).not_to be_nil
  116. end
  117. it 'can access owner details' do
  118. expect(owner_details).not_to be_empty
  119. end
  120. it 'can access owner firstname' do
  121. expect(owner_firstname).not_to be_nil
  122. end
  123. end
  124. describe 'when admin', authenticated_as: :admin do
  125. it 'can access customer email' do
  126. expect(customer_email).not_to be_nil
  127. end
  128. it 'can access customer note' do
  129. expect(customer_note).not_to be_nil
  130. end
  131. it 'can access owner details' do
  132. expect(owner_details).not_to be_empty
  133. end
  134. it 'can access owner firstname' do
  135. expect(owner_firstname).not_to be_nil
  136. end
  137. end
  138. end
  139. end