osem-fcy/spec/controllers/conference_controller_spec.rb
Ana 354e15a76d Public schedule adapted to the new relations
Public schedule and all events adapted to the new relations and models to allow having several schedules in the admin shcedule.
2016-08-11 15:11:27 +02:00

59 lines
1.8 KiB
Ruby

require 'spec_helper'
describe ConferenceController 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) }
describe 'GET #index' do
it 'Response code is 200' do
get :index
expect(response.response_code).to eq(200)
end
end
describe 'GET #show' do
context 'conference made public' do
it 'assigns the requested conference to conference' do
get :show, id: conference.short_title
expect(assigns(:conference)).to eq conference
end
it 'renders the show template' do
get :show, id: conference.short_title
expect(response).to render_template :show
end
end
end
describe 'GET #schedule' do
context 'XML' do
before :each do
conference.program.schedule_public = true
conference.program.save!
create(:event_scheduled, program: conference.program)
create(:event_scheduled, program: conference.program)
get :schedule, id: conference.short_title, format: :xml
end
it 'assigns variables' do
expect(assigns(:conference)).to eq conference
expect(assigns(:events_xml)).to eq conference.program.schedules.find(conference.program.selected_schedule).event_schedules.where('start_time IS NOT NULL AND room_id IS NOT NULL')
.order(start_time: :asc).map(&:event).group_by{ |event| event.scheduled_start_time.to_date }
end
it 'renders successfully' do
expect(response).to be_success
end
end
end
describe 'OPTIONS #index' do
it 'Response code is 200' do
process :index, 'OPTIONS'
expect(response.response_code).to eq(200)
end
end
end