Merge pull request #76 from CactusPuppy/176894996-vertical-schedule

Vertical schedule
This commit is contained in:
CactusPuppy 2021-05-01 11:00:44 -07:00 committed by GitHub
commit f60b07eb32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 245 additions and 3 deletions

View file

@ -72,4 +72,20 @@ describe SchedulesController do
end
end
end
describe 'GET #vertical_schedule' do
let!(:program) { conference.program }
context 'as a conference participant' do
context 'who visits the schedule page' do
before(:each) do
get :vertical_schedule, params: { conference_id: conference.short_title }
end
it 'returns a successful response' do
expect(response.status).to eq(200)
end
end
end
end
end

View file

@ -0,0 +1,72 @@
# frozen_string_literal: true
require 'spec_helper'
describe FullCalendarFormatter do
let!(:room1) { create(:room) }
let!(:room2) { create(:room) }
let!(:rooms) { [room1, room2] }
let!(:conference) { create(:full_conference) }
let!(:program) { conference.program }
let!(:selected_schedule) { create(:schedule, program: program) }
let!(:event_type1) { create(:event_type, color: '#ffffff') }
let!(:event1) do
program.update_attributes!(selected_schedule: selected_schedule)
create(:event, program: program, event_type: event_type1)
end
let!(:event_schedule1) { create(:event_schedule, event: event1, schedule: selected_schedule, room: room1) }
let!(:event_type2) { create(:event_type, color: '#000000') }
let!(:event2) do
program.update_attributes!(selected_schedule: selected_schedule)
create(:event, program: program, room: room2, event_type: event_type2)
end
let!(:event_schedule2) { create(:event_schedule, event: event2, schedule: selected_schedule, room: room2) }
let!(:event_schedules) { [event_schedule1, event_schedule2] }
describe 'JSON formatting for FullCalendar' do
it 'translates rooms to resources' do
resources = described_class.rooms_to_resources(rooms)
expected_json = [
{
id: room1.guid,
title: room1.name
},
{
id: room2.guid,
title: room2.name
}
].to_json
expect(resources).to eq(expected_json)
end
it 'translates event schedules to resources' do
resources = described_class.event_schedules_to_resources(event_schedules)
expected_json = [
{
id: event_schedule1.event.guid,
title: event_schedule1.event.title,
start: event_schedule1.start_time_in_conference_timezone,
end: event_schedule1.end_time_in_conference_timezone,
resourceId: room1.guid,
url: Rails.application.routes.url_helpers.conference_program_proposal_path(conference.short_title, event1.id),
borderColor: event1.event_type.color,
backgroundColor: event1.event_type.color,
textColor: 'black'
},
{
id: event_schedule2.event.guid,
title: event_schedule2.event.title,
start: event_schedule2.start_time_in_conference_timezone,
end: event_schedule2.end_time_in_conference_timezone,
resourceId: room2.guid,
url: Rails.application.routes.url_helpers.conference_program_proposal_path(conference.short_title, event2.id),
borderColor: event2.event_type.color,
backgroundColor: event2.event_type.color,
textColor: 'white'
}
].to_json
expect(resources).to eq(expected_json)
end
end
end