online_notification_spec.rb 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
  2. require 'rails_helper'
  3. RSpec.describe 'Online notification', type: :system do
  4. let(:session_user) { User.find_by(login: 'admin@example.com') }
  5. describe 'circle after pending reached' do
  6. around do |example|
  7. Ticket.without_callback :save, :before, :ticket_reset_pending_time_seconds do
  8. example.run
  9. end
  10. end
  11. context 'when pending time is reached soon' do
  12. before do
  13. visit "ticket/zoom/#{ticket.id}"
  14. end
  15. let(:ticket) { create(:ticket, owner: session_user, group: Group.first, state_name: 'pending reminder', pending_time: 4.seconds.from_now) }
  16. it 'loads as pending ticket' do
  17. expect(page).to have_css('.icon.pending')
  18. end
  19. it 'switches to open ticket' do
  20. expect(page).to have_css('.icon.open')
  21. end
  22. context 'when time is reached in non-active tab' do
  23. before { visit 'dashboard' }
  24. it 'loads as pending ticket' do
  25. expect(page).to have_css('.icon.pending')
  26. end
  27. it 'switches to open ticket' do
  28. expect(page).to have_css('.icon.open')
  29. end
  30. end
  31. end
  32. context 'when pending time is set to reached soon to an open ticket' do
  33. before do
  34. ensure_websocket do
  35. visit "ticket/zoom/#{ticket.id}"
  36. end
  37. ticket.update! state: Ticket::State.lookup(name: 'pending reminder'), pending_time: 5.seconds.from_now
  38. end
  39. let(:ticket) { create(:ticket, owner: session_user, group: Group.first) }
  40. it 'loads as pending ticket' do
  41. expect(page).to have_css('.icon.pending')
  42. end
  43. it 'switches to open ticket' do
  44. expect(page).to have_css('.icon.open')
  45. end
  46. end
  47. end
  48. end