calendar_spec.rb 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. require 'rails_helper'
  2. RSpec.describe 'Calendars', type: :request do
  3. let(:admin_user) do
  4. create(:admin_user)
  5. end
  6. describe 'request handling' do
  7. it 'does calendar index with nobody' do
  8. get '/api/v1/calendars', as: :json
  9. expect(response).to have_http_status(401)
  10. expect(json_response).to be_a_kind_of(Hash)
  11. expect(json_response['error']).to eq('authentication failed')
  12. get '/api/v1/calendars_init', as: :json
  13. expect(response).to have_http_status(401)
  14. expect(json_response).to be_a_kind_of(Hash)
  15. expect(json_response['error']).to eq('authentication failed')
  16. end
  17. it 'does calendar index with admin' do
  18. authenticated_as(admin_user)
  19. get '/api/v1/calendars', as: :json
  20. expect(response).to have_http_status(200)
  21. expect(json_response).to be_a_kind_of(Array)
  22. expect(json_response).to be_truthy
  23. expect(json_response.count).to eq(1)
  24. get '/api/v1/calendars?expand=true', as: :json
  25. expect(response).to have_http_status(200)
  26. expect(json_response).to be_a_kind_of(Array)
  27. expect(json_response).to be_truthy
  28. expect(json_response.count).to eq(1)
  29. get '/api/v1/calendars?full=true', as: :json
  30. expect(response).to have_http_status(200)
  31. expect(json_response).to be_a_kind_of(Hash)
  32. expect(json_response).to be_truthy
  33. expect(json_response['record_ids']).to be_truthy
  34. expect(json_response['record_ids'].count).to eq(1)
  35. expect(json_response['assets']).to be_truthy
  36. expect(json_response['assets']).to be_present
  37. # index
  38. get '/api/v1/calendars_init', as: :json
  39. expect(response).to have_http_status(200)
  40. expect(json_response).to be_a_kind_of(Hash)
  41. expect(json_response['record_ids']).to be_truthy
  42. expect(json_response['ical_feeds']).to be_truthy
  43. expect(json_response['ical_feeds']['http://www.google.com/calendar/ical/da.danish%23holiday%40group.v.calendar.google.com/public/basic.ics']).to eq('Denmark')
  44. expect(json_response['ical_feeds']['http://www.google.com/calendar/ical/de.austrian%23holiday%40group.v.calendar.google.com/public/basic.ics']).to eq('Austria')
  45. expect(json_response['timezones']).to be_truthy
  46. expect(json_response['timezones']['Africa/Johannesburg']).to eq(2)
  47. expect(json_response['timezones']['America/Sitka']).to be_between(-9, -8)
  48. expect(json_response['timezones']['Europe/Berlin']).to be_between(1, 2)
  49. expect(json_response['assets']).to be_truthy
  50. end
  51. end
  52. end