overviews_spec.rb 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe 'Profile > Overviews', type: :system do
  4. before do
  5. visit 'profile/overviews'
  6. end
  7. it 'does provide drag and drop and reorder functionality' do
  8. # move "My Assigned Tickets" after "Escalated Tickets"
  9. move_assigned_tickets_overview
  10. # go to ticket overviews and verify
  11. expect_user_ticket_overview
  12. # go back and reset order
  13. reset_overview_order
  14. # go to ticket overviews and verify
  15. expect_default_ticket_overview
  16. end
  17. it 'shows the out of office replacement overview (#5458)' do
  18. visit 'profile/overviews'
  19. expect(page).to have_content('My Replacement Tickets Only when out of office replacement')
  20. end
  21. def overview_names
  22. page.all('.overview-header .js-tabsHolder span.tab-name', visible: :all).map { |e| e.text(:all) }
  23. end
  24. def move_assigned_tickets_overview
  25. overview_from = page.find('tr.item', text: 'My Assigned Tickets')
  26. overview_to = page.find('tr.item', text: 'Escalated Tickets')
  27. overview_from.drag_to overview_to
  28. await_empty_ajax_queue
  29. wait.until { User::OverviewSorting.where(user: current_user)&.last&.overview_id == Overview.find_by(name: 'My Replacement Tickets').id }
  30. end
  31. def expect_user_ticket_overview
  32. visit 'ticket/view'
  33. wait.until { overview_names.index('My Assigned Tickets') > overview_names.index('Escalated Tickets') }
  34. end
  35. def expect_default_ticket_overview
  36. visit 'ticket/view'
  37. wait.until { overview_names.index('My Assigned Tickets') < overview_names.index('Escalated Tickets') }
  38. end
  39. def reset_overview_order
  40. visit 'profile/overviews'
  41. page.find('a[data-type=reset]').click
  42. wait.until { User::OverviewSorting.where(user: current_user).count.zero? }
  43. end
  44. end