osem-fcy/spec/controllers/conferences_controller_spec.rb

74 lines
2.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require 'spec_helper'
describe ConferencesController do
let(:conference) { create(:conference, splashpage: create(:splashpage, public: true), venue: create(:venue)) }
let!(:cfp) { create(:cfp, program: conference.program) }
let(:room) { create(:room, venue: conference.venue) }
2014-08-12 11:51:59 +03:00
2014-11-14 17:24:24 +01:00
describe 'GET #index' do
it 'Response code is 200' do
get :index
expect(response.response_code).to eq(200)
end
end
2014-05-19 21:25:42 +05:30
describe 'GET #show' do
context 'conference made public' do
it 'assigns the requested conference to conference' do
get :show, params: { id: conference.short_title }
expect(assigns(:conference)).to eq conference
end
it 'renders the show template' do
get :show, params: { id: conference.short_title }
expect(response).to render_template :show
end
end
2017-07-26 09:04:07 +05:30
context 'accessing conference via custom domain' do
before do
2017-07-26 09:04:07 +05:30
conference.update_attribute(:custom_domain, 'lvh.me')
@request.host = 'lvh.me'
end
2017-07-26 09:04:07 +05:30
it 'assigns correct conference' do
2017-07-26 09:04:07 +05:30
get :show
2017-07-26 09:04:07 +05:30
expect(response).to render_template :show
expect(assigns(:conference)).to eq conference
end
end
2014-05-28 15:06:08 +05:30
end
2014-11-14 17:24:24 +01:00
describe 'OPTIONS #index' do
it 'Response code is 200' do
process :index
2014-11-14 17:24:24 +01:00
expect(response.response_code).to eq(200)
end
end
describe 'GET #calendar' do
it 'returns iCalendar data for all conferences' do
get :calendar, params: { format: :ics }
expect(response).to be_successful
expect(response.content_type).to start_with('text/calendar')
expect(response.body).to start_with('BEGIN:VCALENDAR')
end
it 'returns iCalendar data with full schedule when full=true' do
conference.program.update!(schedule_public: true)
create(:event_scheduled, program: conference.program)
get :calendar, params: { full: true, format: :ics }
expect(response).to be_successful
expect(response.content_type).to start_with('text/calendar')
expect(response.body).to start_with('BEGIN:VCALENDAR')
end
end
end