implement manual event management and support for multiple speakers per event
This commit is contained in:
parent
46a6a59622
commit
790e2fd3a2
24 changed files with 180 additions and 89 deletions
|
|
@ -10,8 +10,8 @@ describe Api::V1::SpeakersController do
|
|||
|
||||
describe 'GET #index' do
|
||||
before do
|
||||
event.event_users << create(:speaker, user: speaker)
|
||||
conference_event.event_users << create(:speaker, user: conference_speaker)
|
||||
event.speakers = [speaker]
|
||||
conference_event.speakers = [conference_speaker]
|
||||
end
|
||||
|
||||
context 'without conference scope' do
|
||||
|
|
@ -20,7 +20,6 @@ describe Api::V1::SpeakersController do
|
|||
get :index, format: :json
|
||||
json = JSON.parse(response.body)['speakers']
|
||||
expect(response).to be_success
|
||||
|
||||
expect(json.length).to eq(2)
|
||||
expect(json[0]['name']).to eq('Speaker')
|
||||
expect(json[1]['name']).to eq('Conf_Speaker')
|
||||
|
|
|
|||
|
|
@ -180,9 +180,8 @@ describe ProposalsController do
|
|||
get :show, conference_id: conference.short_title, id: event.id
|
||||
end
|
||||
|
||||
it 'assigns event and speaker variables' do
|
||||
it 'assigns event variable' do
|
||||
expect(assigns(:event)).to eq event
|
||||
expect(assigns(:speaker)).to eq event.submitter
|
||||
end
|
||||
|
||||
it 'renders show template' do
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@ FactoryGirl.define do
|
|||
program
|
||||
|
||||
after(:build) do |event|
|
||||
event.event_users << build(:submitter) unless event.submitter # so that we don't have two submitters
|
||||
event.submitter = build(:submitter).user unless event.submitter # so that we don't have two submitters
|
||||
event.speakers << build(:speaker).user unless event.speakers.any?
|
||||
# set an event_type if none is passed to the factory.
|
||||
# needs to be created here because otherwise it doesn't belong to the
|
||||
# same conference as the event
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@ describe Mailbot do
|
|||
before { conference.contact.update_attributes(email: 'conf@domain.com') }
|
||||
|
||||
context 'onboarding and proposal' do
|
||||
let(:event_user) { create(:submitter, user: user) }
|
||||
let(:event) { create(:event, program: conference.program, event_users: [event_user]) }
|
||||
let(:event) { create(:event, program: conference.program, submitter: user) }
|
||||
|
||||
shared_examples 'mailer actions' do
|
||||
it 'assigns the email subject' do
|
||||
|
|
|
|||
|
|
@ -3,8 +3,7 @@ require 'spec_helper'
|
|||
describe EmailSettings do
|
||||
let(:conference) { create(:conference, short_title: 'goto', start_date: Date.new(2014, 05, 01), end_date: Date.new(2014, 05, 06)) }
|
||||
let(:user) { create(:user, username: 'johnd', email: 'john@doe.com', name: 'John Doe') }
|
||||
let(:event_user) { create(:submitter, user: user) }
|
||||
let(:event) { create(:event, program: conference.program, title: 'Talk about talks', event_users: [event_user]) }
|
||||
let(:event) { create(:event, program: conference.program, title: 'Talk about talks', submitter: user) }
|
||||
let(:expected_hash) do
|
||||
{
|
||||
'email' => 'john@doe.com',
|
||||
|
|
|
|||
|
|
@ -236,9 +236,7 @@ describe Event do
|
|||
describe '#submitter' do
|
||||
it 'returns the user that submitted the event' do
|
||||
submitter = create(:user)
|
||||
submitted_event = create(:event)
|
||||
submitted_event.event_users = [create(:event_user, user: submitter, event_role: 'submitter')]
|
||||
|
||||
submitted_event = create(:event, submitter: submitter)
|
||||
expect(submitted_event.submitter).to eq submitter
|
||||
end
|
||||
end
|
||||
|
|
@ -288,9 +286,10 @@ describe Event do
|
|||
describe '#speaker_names' do
|
||||
context 'returns the speakers of the event' do
|
||||
it 'when submitter is a speaker too' do
|
||||
speaker1 = create(:user, name: 'user speaker 1')
|
||||
new_event.event_users = [create(:event_user, user: speaker1, event_role: 'submitter')]
|
||||
new_event.event_users << [create(:event_user, user: speaker1, event_role: 'speaker')]
|
||||
submitter = create(:user, name: 'user speaker 1')
|
||||
|
||||
new_event.submitter = submitter
|
||||
new_event.speakers = [submitter]
|
||||
|
||||
expect(new_event.speaker_names).to eq 'user speaker 1'
|
||||
end
|
||||
|
|
@ -299,10 +298,10 @@ describe Event do
|
|||
submitter = create(:user, name: 'user submitter 1')
|
||||
speaker1 = create(:user, name: 'user speaker 1')
|
||||
|
||||
new_event.event_users = [create(:event_user, user: submitter, event_role: 'submitter')]
|
||||
new_event.event_users << [create(:event_user, user: speaker1, event_role: 'speaker')]
|
||||
new_event.submitter = submitter
|
||||
new_event.speakers = [speaker1]
|
||||
|
||||
expect(new_event.speaker_names).to eq 'user submitter 1 and user speaker 1'
|
||||
expect(new_event.speaker_names).to eq 'user speaker 1'
|
||||
end
|
||||
|
||||
it 'when there are multiple speakers' do
|
||||
|
|
@ -310,11 +309,10 @@ describe Event do
|
|||
speaker1 = create(:user, name: 'user speaker 1')
|
||||
speaker2 = create(:user, name: 'user speaker 2')
|
||||
|
||||
new_event.event_users = [create(:event_user, user: submitter, event_role: 'submitter')]
|
||||
new_event.event_users << [create(:event_user, user: speaker1, event_role: 'speaker')]
|
||||
new_event.event_users << [create(:event_user, user: speaker2, event_role: 'speaker')]
|
||||
new_event.submitter = submitter
|
||||
new_event.speakers = [speaker1, speaker2]
|
||||
|
||||
expect(new_event.speaker_names).to eq 'user submitter 1, user speaker 1, and user speaker 2'
|
||||
expect(new_event.speaker_names).to eq 'user speaker 1 and user speaker 2'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ describe EventSerializer, type: :serializer do
|
|||
let(:event) { create(:event, title: 'Some Talk', abstract: 'Lorem ipsum dolor sit amet') }
|
||||
let(:serializer) { EventSerializer.new(event) }
|
||||
|
||||
context 'event does not have date, speakers, room and tracks assigned' do
|
||||
context 'event does not have date, room and tracks assigned' do
|
||||
it 'sets guid, title, length, abstract and type' do
|
||||
expected_json = {
|
||||
event: {
|
||||
|
|
@ -13,7 +13,7 @@ describe EventSerializer, type: :serializer do
|
|||
scheduled_date: '',
|
||||
language: nil,
|
||||
abstract: 'Lorem ipsum dolor sit amet',
|
||||
speaker_ids: [],
|
||||
speaker_ids: event.speaker_ids,
|
||||
type: 'Example Event Type',
|
||||
room: nil,
|
||||
track: nil
|
||||
|
|
@ -25,13 +25,13 @@ describe EventSerializer, type: :serializer do
|
|||
end
|
||||
|
||||
context 'event has date, speakers, room and tracks assigned' do
|
||||
let(:speaker) { create(:speaker) }
|
||||
let(:speaker) { create(:user) }
|
||||
let(:room) { create(:room) }
|
||||
let(:track) { create(:track) }
|
||||
|
||||
before do
|
||||
event.language = 'English'
|
||||
event.event_users << speaker
|
||||
event.language = 'English'
|
||||
event.speakers = [speaker]
|
||||
create(:event_schedule, event: event, room: room, start_time: Date.new(2014, 03, 04))
|
||||
event.track = track
|
||||
end
|
||||
|
|
@ -45,7 +45,7 @@ describe EventSerializer, type: :serializer do
|
|||
scheduled_date: ' 2014-03-04T00:00:00+0000 ',
|
||||
language: 'English',
|
||||
abstract: 'Lorem ipsum dolor sit amet',
|
||||
speaker_ids: [speaker.user.id],
|
||||
speaker_ids: [speaker.id],
|
||||
type: 'Example Event Type',
|
||||
room: room.guid,
|
||||
track: track.guid
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue