report_spec.rb 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. require 'rails_helper'
  2. RSpec.describe 'Report', type: :request, searchindex: true do
  3. let!(:admin_user) do
  4. create(:admin_user)
  5. end
  6. let!(:agent_user) do
  7. create(:agent_user)
  8. end
  9. let!(:customer_user) do
  10. create(:customer_user)
  11. end
  12. let!(:year) do
  13. DateTime.now.utc.year
  14. end
  15. let!(:month) do
  16. DateTime.now.utc.month
  17. end
  18. let!(:week) do
  19. DateTime.now.utc.strftime('%U').to_i
  20. end
  21. let!(:day) do
  22. DateTime.now.utc.day
  23. end
  24. let!(:ticket) do
  25. create(:ticket, title: 'ticket for report', customer: customer_user)
  26. end
  27. let!(:article) do
  28. create(:ticket_article, ticket_id: ticket.id, type: Ticket::Article::Type.lookup(name: 'note') )
  29. end
  30. before(:each) do
  31. configure_elasticsearch do
  32. travel 1.minute
  33. rebuild_searchindex
  34. # execute background jobs
  35. Scheduler.worker(true)
  36. sleep 6
  37. end
  38. end
  39. describe 'request handling' do
  40. it 'does report example - admin access' do
  41. authenticated_as(admin_user)
  42. get "/api/v1/reports/sets?sheet=true;metric=count;year=#{year};month=#{month};week=#{week};day=#{day};timeRange=year;profile_id=1;downloadBackendSelected=count::created", params: {}, as: :json
  43. expect(response).to have_http_status(200)
  44. assert(@response['Content-Disposition'])
  45. expect(@response['Content-Disposition']).to eq('attachment; filename="tickets--all--Created.xls"')
  46. expect(@response['Content-Type']).to eq('application/vnd.ms-excel')
  47. end
  48. end
  49. end