mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-15 12:44:03 +00:00
Tests for the new associations and models
Tests for the schedule versioning new associations and models
This commit is contained in:
parent
c047ffd699
commit
e7a30302ff
9 changed files with 66 additions and 17 deletions
22
spec/factories/event_schedule.rb
Normal file
22
spec/factories/event_schedule.rb
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :event_schedule do
|
||||
event
|
||||
after(:build) do |event_schedule|
|
||||
program = event_schedule.event.program
|
||||
unless (venue = program.conference.venue)
|
||||
venue = create(:venue, conference: program.conference)
|
||||
end
|
||||
(event_schedule.room = create(:room, venue: venue)) unless event_schedule.room.present?
|
||||
(event_schedule.start_time = program.conference.start_date.to_time) unless event_schedule.start_time.present?
|
||||
unless program.selected_schedule.present?
|
||||
schedule = create(:schedule, program: program)
|
||||
program.schedules << schedule
|
||||
program.selected_schedule = schedule.id
|
||||
program.save!
|
||||
end
|
||||
event_schedule.schedule_id = program.selected_schedule
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -18,22 +18,20 @@ FactoryGirl.define do
|
|||
factory :event_full do
|
||||
difficulty_level
|
||||
track
|
||||
room
|
||||
after(:build) do |event|
|
||||
event.commercials << build(:event_commercial, commercialable: event)
|
||||
event.difficulty_level = build(:difficulty_level, program: event.program)
|
||||
event.track = build(:track, program: event.program)
|
||||
unless (venue = event.program.conference.venue)
|
||||
venue = create(:venue, conference: event.program.conference)
|
||||
unless event.program.conference.venue
|
||||
create(:venue, conference: event.program.conference)
|
||||
end
|
||||
event.room = build(:room, venue: venue)
|
||||
event.comment_threads << build(:comment, commentable: event)
|
||||
end
|
||||
|
||||
factory :event_scheduled do
|
||||
after(:build) do |event|
|
||||
event.state = 'confirmed'
|
||||
event.start_time = event.program.conference.start_date.to_time
|
||||
event.event_schedules << build(:event_schedule, event: event)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
7
spec/factories/schedule.rb
Normal file
7
spec/factories/schedule.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :schedule do
|
||||
program
|
||||
end
|
||||
end
|
||||
10
spec/models/event_schedule_spec.rb
Normal file
10
spec/models/event_schedule_spec.rb
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe EventSchedule do
|
||||
|
||||
describe 'association' do
|
||||
it { should belong_to(:schedule) }
|
||||
it { should belong_to(:event) }
|
||||
it { should belong_to(:room) }
|
||||
end
|
||||
end
|
||||
|
|
@ -27,7 +27,10 @@ describe Event do
|
|||
|
||||
describe 'max_attendees_no_more_than_room_size' do
|
||||
before :each do
|
||||
event.room = create(:room, size: 3)
|
||||
unless (venue = event.program.conference.venue)
|
||||
venue = create(:venue, conference: event.program.conference)
|
||||
end
|
||||
create(:event_schedule, event: event, room: create(:room, venue: venue, size: 3))
|
||||
event.require_registration = true
|
||||
end
|
||||
|
||||
|
|
@ -116,8 +119,7 @@ describe Event do
|
|||
describe '#scheduled?' do
|
||||
it { expect(event.scheduled?).to eq false }
|
||||
it 'returns true if the event is scheduled' do
|
||||
event.room = create(:room)
|
||||
event.start_time = conference.start_date.to_time
|
||||
create(:event_schedule, event: event)
|
||||
expect(event.scheduled?).to eq true
|
||||
end
|
||||
end
|
||||
|
|
@ -259,11 +261,11 @@ describe Event do
|
|||
|
||||
describe '#as_json' do
|
||||
it 'adds the event\'s room_guid, track_color and length' do
|
||||
event.room = create(:room)
|
||||
create(:event_schedule, event: event)
|
||||
event.track = create(:track, color: '#efefef')
|
||||
json_hash = event.as_json(nil)
|
||||
|
||||
expect(json_hash[:room_guid]).to eq(event.room.guid)
|
||||
expect(json_hash[:room_guid]).to eq(event.scheduled_room.guid)
|
||||
expect(json_hash[:track_color]).to eq('#EFEFEF')
|
||||
expect(json_hash[:length]).to eq(30)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ describe Program do
|
|||
describe 'association' do
|
||||
it { is_expected.to belong_to :conference }
|
||||
it { is_expected.to have_one(:cfp).dependent(:destroy) }
|
||||
it { is_expected.to have_many(:schedules).dependent(:destroy) }
|
||||
it { is_expected.to have_many(:event_types).dependent(:destroy) }
|
||||
it { is_expected.to have_many(:tracks).dependent(:destroy) }
|
||||
it { is_expected.to have_many(:difficulty_levels).dependent(:destroy) }
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ describe Room do
|
|||
|
||||
describe 'association' do
|
||||
it { should belong_to(:venue) }
|
||||
it { should have_many(:events).dependent(:nullify) }
|
||||
it { should have_many(:event_schedules).dependent(:nullify) }
|
||||
end
|
||||
|
||||
describe 'callback' do
|
||||
|
|
|
|||
9
spec/models/schedule_spec.rb
Normal file
9
spec/models/schedule_spec.rb
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Schedule do
|
||||
|
||||
describe 'association' do
|
||||
it { should belong_to(:program) }
|
||||
it { should have_many(:event_schedules).dependent(:destroy) }
|
||||
end
|
||||
end
|
||||
|
|
@ -10,12 +10,12 @@ describe EventSerializer, type: :serializer do
|
|||
guid: event.guid,
|
||||
title: 'Some Talk',
|
||||
length: 30,
|
||||
date: '',
|
||||
scheduled_date: '',
|
||||
language: nil,
|
||||
abstract: '<p>Lorem ipsum dolor sit amet</p>',
|
||||
speaker_ids: [],
|
||||
type: 'Example Event Type',
|
||||
room: nil,
|
||||
scheduled_room: nil,
|
||||
track: nil
|
||||
}
|
||||
}.to_json
|
||||
|
|
@ -30,9 +30,9 @@ describe EventSerializer, type: :serializer do
|
|||
let(:track) { create(:track) }
|
||||
|
||||
before do
|
||||
event.update_attributes(start_time: Date.new(2014, 03, 04), language: 'English')
|
||||
event.language = 'English'
|
||||
event.event_users << speaker
|
||||
event.room = room
|
||||
create(:event_schedule, event: event, room: room, start_time: Date.new(2014, 03, 04))
|
||||
event.track = track
|
||||
end
|
||||
|
||||
|
|
@ -42,12 +42,12 @@ describe EventSerializer, type: :serializer do
|
|||
guid: event.guid,
|
||||
title: 'Some Talk',
|
||||
length: 30,
|
||||
date: ' 2014-03-04T00:00:00+0000 ',
|
||||
scheduled_date: ' 2014-03-04T00:00:00+0000 ',
|
||||
language: 'English',
|
||||
abstract: '<p>Lorem ipsum dolor sit amet</p>',
|
||||
speaker_ids: [speaker.user.id],
|
||||
type: 'Example Event Type',
|
||||
room: room.guid,
|
||||
scheduled_room: room.guid,
|
||||
track: track.guid
|
||||
}
|
||||
}.to_json
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue