macros_examples.rb 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
  2. RSpec.shared_examples 'macros' do |path:|
  3. let!(:group1) { create :group }
  4. let!(:group2) { create :group }
  5. let!(:macro_without_group) { create :macro }
  6. let!(:macro_group1) { create :macro, groups: [group1] }
  7. let!(:macro_group2) { create :macro, groups: [group2] }
  8. it 'supports group-dependent macros' do
  9. # give user access to all groups including those created
  10. # by using FactoryBot outside of the example
  11. group_names_access_map = Group.all.pluck(:name).index_with do |_group_name|
  12. 'full'.freeze
  13. end
  14. current_user do |user|
  15. user.group_names_access_map = group_names_access_map
  16. user.save!
  17. end
  18. # refresh browser to get macro accessable
  19. refresh
  20. visit path
  21. within(:active_content) do
  22. # select group
  23. find('select[name="group_id"]').select(group1.name)
  24. open_macro_list
  25. expect(page).to have_selector(:macro, macro_without_group.id)
  26. expect(page).to have_selector(:macro, macro_group1.id)
  27. expect(page).to have_no_selector(:macro, macro_group2.id)
  28. # select group
  29. find('select[name="group_id"]').select(group2.name)
  30. open_macro_list
  31. expect(page).to have_selector(:macro, macro_without_group.id)
  32. expect(page).to have_no_selector(:macro, macro_group1.id)
  33. expect(page).to have_selector(:macro, macro_group2.id)
  34. end
  35. end
  36. end