users_spec.rb 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. require 'rails_helper'
  2. RSpec.describe 'Manage > Users', type: :system do
  3. describe 'switching to an alternative user', authenticated_as: -> { original_user } do
  4. let(:original_user) { create(:admin) }
  5. let(:alternative_one_user) { create(:admin) }
  6. let(:alternative_two_user) { create(:admin) }
  7. before do
  8. alternative_one_user
  9. alternative_two_user
  10. end
  11. it 'starts as original user' do
  12. expect(current_user).to eq original_user
  13. end
  14. it 'switches to alternative user' do
  15. switch_to(alternative_one_user)
  16. expect(current_user).to eq alternative_one_user
  17. end
  18. it 'switches to another alternative user' do
  19. switch_to(alternative_one_user)
  20. switch_to(alternative_two_user)
  21. expect(current_user).to eq alternative_two_user
  22. end
  23. it 'switches back to original user' do
  24. switch_to(alternative_one_user)
  25. switch_to(alternative_two_user)
  26. click '.switchBackToUser-close'
  27. expect(current_user).to eq original_user
  28. end
  29. def switch_to(user)
  30. visit 'manage/users'
  31. within(:active_content) do
  32. row = find("tr[data-id=\"#{user.id}\"]")
  33. row.find('.js-action').click
  34. row.find('.js-switchTo').click
  35. end
  36. await_empty_ajax_queue
  37. end
  38. end
  39. end