Fix rspec tests because of the changes to the cfp

Remove redundant association
Note: a conference created with :full_conference already has a cfp
This commit is contained in:
AEtherC0r3 2017-06-01 01:11:28 +03:00 committed by Stella Rouzi
parent 2bff918556
commit a1124546f1
16 changed files with 78 additions and 74 deletions

View file

@ -81,12 +81,12 @@ class Cfp < ActiveRecord::Base
private private
def before_end_of_conference def before_end_of_conference
if program.conference && program.conference.end_date && end_date && (end_date > program.conference.end_date) if program && program.conference && program.conference.end_date && end_date && (end_date > program.conference.end_date)
errors errors
.add(:end_date, "can't be after the conference end date (#{program.conference.end_date})") .add(:end_date, "can't be after the conference end date (#{program.conference.end_date})")
end end
if program.conference && program.conference.end_date && start_date && (start_date > program.conference.end_date) if program && program.conference && program.conference.end_date && start_date && (start_date > program.conference.end_date)
errors errors
.add(:start_date, "can't be after the conference end date (#{program.conference.end_date})") .add(:start_date, "can't be after the conference end date (#{program.conference.end_date})")
end end

View file

@ -135,7 +135,7 @@ class Program < ActiveRecord::Base
# * +false+ -> If the CFP is not set or today isn't in the CFP period. # * +false+ -> If the CFP is not set or today isn't in the CFP period.
# * +true+ -> If today is in the CFP period. # * +true+ -> If today is in the CFP period.
def cfp_open? def cfp_open?
cfp = cfps.events cfp = self.cfp
cfp.present? && (cfp.start_date..cfp.end_date).cover?(Date.current) cfp.present? && (cfp.start_date..cfp.end_date).cover?(Date.current)
end end

View file

@ -2,7 +2,6 @@ class Registration < ActiveRecord::Base
belongs_to :user belongs_to :user
belongs_to :conference belongs_to :conference
has_and_belongs_to_many :events
has_and_belongs_to_many :qanswers has_and_belongs_to_many :qanswers
has_and_belongs_to_many :vchoices has_and_belongs_to_many :vchoices

View file

@ -85,7 +85,7 @@
admin_conference_program_path(conference_id: Conference.find(version.conference_id).short_title) admin_conference_program_path(conference_id: Conference.find(version.conference_id).short_title)
- when 'Cfp' - when 'Cfp'
= 'cfp' = 'cfp for'
- cfp = current_or_last_object_state(version.item_type, version.item_id) - cfp = current_or_last_object_state(version.item_type, version.item_id)
= link_if_alive version, cfp.cfp_type, = link_if_alive version, cfp.cfp_type,
admin_conference_program_cfp_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id) admin_conference_program_cfp_path(conference_id: Conference.find(version.conference_id).short_title, id: version.item_id)

View file

@ -177,10 +177,10 @@ describe Admin::ConferencesController do
it 'assigns cfp_max an array with maximum weeks' do it 'assigns cfp_max an array with maximum weeks' do
conference conference
date = Date.new(2014, 05, 26) date = Date.new(2014, 05, 26)
conference.program.cfp = create(:cfp, create(:cfp,
program: conference.program, program: conference.program,
start_date: date, start_date: date,
end_date: date + 14) end_date: date + 14)
get :index get :index
expect(assigns(:cfp_weeks)).to match_array([1, 2, 3]) expect(assigns(:cfp_weeks)).to match_array([1, 2, 3])
end end

View file

@ -10,7 +10,7 @@ describe ProposalsController do
describe 'GET #new' do describe 'GET #new' do
before do before do
# We allow new proposal only if program has open cfp # We allow new proposal only if program has open cfp
conference.program.update_attributes(cfp: create(:cfp)) create(:cfp, program: conference.program)
get :new, conference_id: conference.short_title get :new, conference_id: conference.short_title
end end
@ -26,7 +26,7 @@ describe ProposalsController do
describe 'POST #create' do describe 'POST #create' do
# We allow proposal create only if program has open cfp # We allow proposal create only if program has open cfp
before { conference.program.update_attributes(cfp: create(:cfp)) } before { create(:cfp, program: conference.program) }
it 'assigns url variables' do it 'assigns url variables' do
post :create, event: attributes_for(:event, event_type_id: event_type.id), post :create, event: attributes_for(:event, event_type_id: event_type.id),
@ -192,7 +192,7 @@ describe ProposalsController do
describe 'GET #new' do describe 'GET #new' do
before do before do
# We allow new proposal only if program has open cfp # We allow new proposal only if program has open cfp
conference.program.update_attributes(cfp: create(:cfp)) create(:cfp, program: conference.program)
get :new, conference_id: conference.short_title get :new, conference_id: conference.short_title
end end
@ -223,7 +223,7 @@ describe ProposalsController do
describe 'POST #create' do describe 'POST #create' do
# We allow proposal create only if program has open cfp # We allow proposal create only if program has open cfp
before { conference.program.update_attributes(cfp: create(:cfp)) } before { create(:cfp, program: conference.program) }
it 'assigns url variables' do it 'assigns url variables' do
post :create, event: attributes_for(:event, event_type_id: event_type.id), post :create, event: attributes_for(:event, event_type_id: event_type.id),

View file

@ -4,6 +4,7 @@ FactoryGirl.define do
factory :cfp do factory :cfp do
start_date { 1.day.ago } start_date { 1.day.ago }
end_date { 6.days.from_now } end_date { 6.days.from_now }
cfp_type 'events'
program program
end end

View file

@ -5,5 +5,9 @@ FactoryGirl.define do
schedule_public false schedule_public false
schedule_fluid false schedule_fluid false
conference conference
trait :with_cfp do
after(:create) { |program| create(:cfp, program: program) }
end
end end
end end

View file

@ -40,7 +40,7 @@ feature 'Has correct abilities' do
expect(page).to have_link('Rooms', href: "/admin/conferences/#{conference1.short_title}/venue/rooms") expect(page).to have_link('Rooms', href: "/admin/conferences/#{conference1.short_title}/venue/rooms")
expect(page).to have_link('Lodgings', href: "/admin/conferences/#{conference1.short_title}/lodgings") expect(page).to have_link('Lodgings', href: "/admin/conferences/#{conference1.short_title}/lodgings")
expect(page).to have_link('Program', href: "/admin/conferences/#{conference1.short_title}/program") expect(page).to have_link('Program', href: "/admin/conferences/#{conference1.short_title}/program")
expect(page).to have_link('Call for Papers', href: "/admin/conferences/#{conference1.short_title}/program/cfp") expect(page).to have_link('Call for Papers', href: "/admin/conferences/#{conference1.short_title}/program/cfps")
expect(page).to have_link('Events', href: "/admin/conferences/#{conference1.short_title}/program/events") expect(page).to have_link('Events', href: "/admin/conferences/#{conference1.short_title}/program/events")
expect(page).to have_link('Tracks', href: "/admin/conferences/#{conference1.short_title}/program/tracks") expect(page).to have_link('Tracks', href: "/admin/conferences/#{conference1.short_title}/program/tracks")
expect(page).to have_link('Event Types', href: "/admin/conferences/#{conference1.short_title}/program/event_types") expect(page).to have_link('Event Types', href: "/admin/conferences/#{conference1.short_title}/program/event_types")
@ -112,8 +112,8 @@ feature 'Has correct abilities' do
visit new_admin_conference_program_cfp_path(conference1.short_title) visit new_admin_conference_program_cfp_path(conference1.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference1.short_title)) expect(current_path).to eq(new_admin_conference_program_cfp_path(conference1.short_title))
visit edit_admin_conference_program_cfp_path(conference1.short_title) visit edit_admin_conference_program_cfp_path(conference1.short_title, conference1.program.cfp)
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference1.short_title)) expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference1.short_title, conference1.program.cfp))
visit admin_conference_program_events_path(conference1.short_title) visit admin_conference_program_events_path(conference1.short_title)
expect(current_path).to eq(admin_conference_program_events_path(conference1.short_title)) expect(current_path).to eq(admin_conference_program_events_path(conference1.short_title))
@ -256,7 +256,7 @@ feature 'Has correct abilities' do
expect(page).to have_link('Rooms', href: "/admin/conferences/#{conference2.short_title}/venue/rooms") expect(page).to have_link('Rooms', href: "/admin/conferences/#{conference2.short_title}/venue/rooms")
expect(page).to_not have_link('Lodgings', href: "/admin/conferences/#{conference2.short_title}/lodgings") expect(page).to_not have_link('Lodgings', href: "/admin/conferences/#{conference2.short_title}/lodgings")
expect(page).to have_link('Program', href: "/admin/conferences/#{conference2.short_title}/program") expect(page).to have_link('Program', href: "/admin/conferences/#{conference2.short_title}/program")
expect(page).to have_link('Call for Papers', href: "/admin/conferences/#{conference2.short_title}/program/cfp") expect(page).to have_link('Call for Papers', href: "/admin/conferences/#{conference2.short_title}/program/cfps")
expect(page).to have_link('Events', href: "/admin/conferences/#{conference2.short_title}/program/events") expect(page).to have_link('Events', href: "/admin/conferences/#{conference2.short_title}/program/events")
expect(page).to have_link('Tracks', href: "/admin/conferences/#{conference2.short_title}/program/tracks") expect(page).to have_link('Tracks', href: "/admin/conferences/#{conference2.short_title}/program/tracks")
expect(page).to have_link('Event Types', href: "/admin/conferences/#{conference2.short_title}/program/event_types") expect(page).to have_link('Event Types', href: "/admin/conferences/#{conference2.short_title}/program/event_types")
@ -324,8 +324,8 @@ feature 'Has correct abilities' do
visit new_admin_conference_program_cfp_path(conference2.short_title) visit new_admin_conference_program_cfp_path(conference2.short_title)
expect(current_path).to eq(new_admin_conference_program_cfp_path(conference2.short_title)) expect(current_path).to eq(new_admin_conference_program_cfp_path(conference2.short_title))
visit edit_admin_conference_program_cfp_path(conference2.short_title) visit edit_admin_conference_program_cfp_path(conference2.short_title, conference2.program.cfp)
expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference2.short_title)) expect(current_path).to eq(edit_admin_conference_program_cfp_path(conference2.short_title, conference2.program.cfp))
visit admin_conference_program_events_path(conference2.short_title) visit admin_conference_program_events_path(conference2.short_title)
expect(current_path).to eq(admin_conference_program_events_path(conference2.short_title)) expect(current_path).to eq(admin_conference_program_events_path(conference2.short_title))
@ -537,7 +537,7 @@ feature 'Has correct abilities' do
visit new_admin_conference_program_cfp_path(conference3.short_title) visit new_admin_conference_program_cfp_path(conference3.short_title)
expect(current_path).to eq(root_path) expect(current_path).to eq(root_path)
visit edit_admin_conference_program_cfp_path(conference3.short_title) visit edit_admin_conference_program_cfp_path(conference3.short_title, conference3.program.cfp)
expect(current_path).to eq(root_path) expect(current_path).to eq(root_path)
visit admin_conference_program_events_path(conference3.short_title) visit admin_conference_program_events_path(conference3.short_title)

View file

@ -31,6 +31,8 @@ feature Conference do
# Validations # Validations
expect(flash) expect(flash)
.to eq('Call for papers successfully created.') .to eq('Call for papers successfully created.')
visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
expect(find('#start_date').text).to eq(today.strftime('%A, %B %-d. %Y')) expect(find('#start_date').text).to eq(today.strftime('%A, %B %-d. %Y'))
expect(find('#end_date').text).to eq((today + 6).strftime('%A, %B %-d. %Y')) expect(find('#end_date').text).to eq((today + 6).strftime('%A, %B %-d. %Y'))
@ -38,11 +40,11 @@ feature Conference do
end end
scenario 'update cfp', feature: true, js: true do scenario 'update cfp', feature: true, js: true do
conference.program.cfp = create(:cfp) create(:cfp, program: conference.program)
expected_count = Cfp.count expected_count = Cfp.count
sign_in organizer sign_in organizer
visit admin_conference_program_cfp_path(conference.short_title) visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
click_link 'Edit' click_link 'Edit'
# Validate update with empty start date will not saved # Validate update with empty start date will not saved
@ -65,6 +67,8 @@ feature Conference do
# Validations # Validations
expect(flash) expect(flash)
.to eq('Call for papers successfully updated.') .to eq('Call for papers successfully updated.')
visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
expect(find('#start_date').text).to eq(today.strftime('%A, %B %-d. %Y')) expect(find('#start_date').text).to eq(today.strftime('%A, %B %-d. %Y'))
expect(find('#end_date').text).to eq((today + 14).strftime('%A, %B %-d. %Y')) expect(find('#end_date').text).to eq((today + 14).strftime('%A, %B %-d. %Y'))
expect(Cfp.count).to eq(expected_count) expect(Cfp.count).to eq(expected_count)

View file

@ -38,9 +38,9 @@ feature 'Version' do
cfp.destroy cfp.destroy
visit admin_revision_history_path visit admin_revision_history_path
expect(page).to have_text("Someone (probably via the console) created new cfp in conference #{conference.short_title}") expect(page).to have_text("Someone (probably via the console) created new cfp for events in conference #{conference.short_title}")
expect(page).to have_text("Someone (probably via the console) updated start date and end date of cfp in conference #{conference.short_title}") expect(page).to have_text("Someone (probably via the console) updated start date and end date of cfp for events in conference #{conference.short_title}")
expect(page).to have_text("Someone (probably via the console) deleted cfp in conference #{conference.short_title}") expect(page).to have_text("Someone (probably via the console) deleted cfp for events in conference #{conference.short_title}")
end end
scenario 'display changes in registration_period', feature: true, versioning: true, js: true do scenario 'display changes in registration_period', feature: true, versioning: true, js: true do

View file

@ -10,7 +10,6 @@ describe 'User' do
let(:user){ nil } let(:user){ nil }
let!(:my_conference) { create(:full_conference) } let!(:my_conference) { create(:full_conference) }
let!(:my_cfp) { create(:cfp, program: my_conference.program) }
let(:my_venue) { my_conference.venue || create(:venue, conference: my_conference) } let(:my_venue) { my_conference.venue || create(:venue, conference: my_conference) }
let(:my_registration) { create(:registration, conference: my_conference, user: admin) } let(:my_registration) { create(:registration, conference: my_conference, user: admin) }
@ -22,7 +21,6 @@ describe 'User' do
let(:conference_not_public) { create(:conference, splashpage: create(:splashpage, public: false)) } let(:conference_not_public) { create(:conference, splashpage: create(:splashpage, public: false)) }
let(:conference_public) { create(:full_conference, splashpage: create(:splashpage, public: true)) } let(:conference_public) { create(:full_conference, splashpage: create(:splashpage, public: true)) }
let!(:conference_public_cfp) { create(:cfp, program: conference_public.program) }
let(:event_confirmed) { create(:event, state: 'confirmed') } let(:event_confirmed) { create(:event, state: 'confirmed') }
let(:event_unconfirmed) { create(:event) } let(:event_unconfirmed) { create(:event) }
@ -32,7 +30,7 @@ describe 'User' do
let(:resource) { create(:resource, conference: my_conference)} let(:resource) { create(:resource, conference: my_conference)}
let(:registration) { create(:registration) } let(:registration) { create(:registration) }
let(:program_with_cfp) { create(:program, cfp: create(:cfp)) } let(:program_with_cfp) { create(:program, :with_cfp) }
let(:program_without_cfp) { create(:program) } let(:program_without_cfp) { create(:program) }
let(:conference_with_open_registration) { create(:conference) } let(:conference_with_open_registration) { create(:conference) }
let!(:open_registration_period) { create(:registration_period, conference: conference_with_open_registration, start_date: Date.current - 6.days) } let!(:open_registration_period) { create(:registration_period, conference: conference_with_open_registration, start_date: Date.current - 6.days) }

View file

@ -48,7 +48,7 @@ describe Conference do
subject.start_date = Date.today + 6.weeks subject.start_date = Date.today + 6.weeks
subject.end_date = Date.today + 7.weeks subject.end_date = Date.today + 7.weeks
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks) create(:cfp, start_date: Date.today - 3.weeks, program: subject.program)
create(:event, program: subject.program, created_at: Date.today) create(:event, program: subject.program, created_at: Date.today)
options = {} options = {}
@ -115,7 +115,7 @@ describe Conference do
} }
subject.events_per_week = db_data subject.events_per_week = db_data
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks) create(:cfp, start_date: Date.today - 3.weeks, program: subject.program)
create(:event, program: subject.program, created_at: Date.today) create(:event, program: subject.program, created_at: Date.today)
unconfirmed = create(:event, program: subject.program) unconfirmed = create(:event, program: subject.program)
@ -186,7 +186,7 @@ describe Conference do
subject.events_per_week = db_data subject.events_per_week = db_data
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today - 2.weeks) create(:cfp, start_date: Date.today - 2.weeks, program: subject.program)
create(:event, program: subject.program, created_at: Date.today - 2.weeks) create(:event, program: subject.program, created_at: Date.today - 2.weeks)
@ -203,7 +203,7 @@ describe Conference do
subject.start_date = Date.today + 6.weeks subject.start_date = Date.today + 6.weeks
subject.end_date = Date.today + 7.weeks subject.end_date = Date.today + 7.weeks
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today) create(:cfp, start_date: Date.today, program: subject.program)
create(:event, program: subject.program) create(:event, program: subject.program)
result = { result = {
@ -220,7 +220,7 @@ describe Conference do
subject.start_date = Date.today + 6.weeks subject.start_date = Date.today + 6.weeks
subject.end_date = Date.today + 7.weeks subject.end_date = Date.today + 7.weeks
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks) create(:cfp, start_date: Date.today - 3.weeks, program: subject.program)
create(:event, program: subject.program, created_at: Date.today) create(:event, program: subject.program, created_at: Date.today)
unconfirmed = create(:event, program: subject.program) unconfirmed = create(:event, program: subject.program)
@ -258,7 +258,7 @@ describe Conference do
subject.events_per_week = db_data subject.events_per_week = db_data
subject.save subject.save
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks) create(:cfp, start_date: Date.today - 3.weeks, program: subject.program)
create(:event, program: subject.program, created_at: Date.today - 3.weeks) create(:event, program: subject.program, created_at: Date.today - 3.weeks)
@ -992,7 +992,6 @@ describe Conference do
end end
it 'calculates correct for new conference' do it 'calculates correct for new conference' do
subject.program.cfp = nil
subject.venue = nil subject.venue = nil
subject.program.tracks = [] subject.program.tracks = []
subject.program.event_types = [] subject.program.event_types = []
@ -1006,7 +1005,6 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14, start_date: subject.end_date - 14,
end_date: subject.end_date, conference: subject) end_date: subject.end_date, conference: subject)
subject.program.cfp = nil
subject.venue = nil subject.venue = nil
subject.program.event_types = [] subject.program.event_types = []
subject.program.tracks = [] subject.program.tracks = []
@ -1024,7 +1022,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14, start_date: subject.end_date - 14,
end_date: subject.end_date, conference: subject) end_date: subject.end_date, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.venue = nil subject.venue = nil
subject.program.tracks = [] subject.program.tracks = []
subject.program.event_types = [] subject.program.event_types = []
@ -1043,7 +1041,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14, start_date: subject.end_date - 14,
end_date: subject.end_date, conference: subject) end_date: subject.end_date, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.venue = create(:venue, conference: subject) subject.venue = create(:venue, conference: subject)
subject.venue.rooms = [] subject.venue.rooms = []
subject.program.tracks = [] subject.program.tracks = []
@ -1063,7 +1061,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: Date.today, start_date: Date.today,
end_date: Date.today + 14, conference: subject) end_date: Date.today + 14, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.venue = create(:venue, conference: subject) subject.venue = create(:venue, conference: subject)
subject.venue.rooms = [create(:room, venue: subject.venue)] subject.venue.rooms = [create(:room, venue: subject.venue)]
subject.program.tracks = [] subject.program.tracks = []
@ -1087,7 +1085,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: Date.today, start_date: Date.today,
end_date: Date.today + 14, conference: subject) end_date: Date.today + 14, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.program.event_types = [] subject.program.event_types = []
subject.program.difficulty_levels = [] subject.program.difficulty_levels = []
subject.splashpage = create(:splashpage, public: false) subject.splashpage = create(:splashpage, public: false)
@ -1109,7 +1107,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: Date.today, start_date: Date.today,
end_date: Date.today + 14, conference: subject) end_date: Date.today + 14, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.venue = create(:venue, conference: subject) subject.venue = create(:venue, conference: subject)
subject.venue.rooms = [create(:room, venue: subject.venue)] subject.venue.rooms = [create(:room, venue: subject.venue)]
subject.program.difficulty_levels = [] subject.program.difficulty_levels = []
@ -1133,7 +1131,7 @@ describe Conference do
subject.registration_period = create(:registration_period, subject.registration_period = create(:registration_period,
start_date: Date.today, start_date: Date.today,
end_date: Date.today + 14, conference: subject) end_date: Date.today + 14, conference: subject)
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
subject.venue = create(:venue, conference: subject) subject.venue = create(:venue, conference: subject)
subject.venue.rooms = [create(:room, venue: subject.venue)] subject.venue.rooms = [create(:room, venue: subject.venue)]
subject.splashpage = create(:splashpage, public: true) subject.splashpage = create(:splashpage, public: true)
@ -1176,34 +1174,34 @@ describe Conference do
describe '#cfp_weeks' do describe '#cfp_weeks' do
it 'calculates new year' do it 'calculates new year' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2013, 12, 30) cfp.start_date = Date.new(2013, 12, 30)
cfp.end_date = Date.new(2013, 12, 30) + 6 cfp.end_date = Date.new(2013, 12, 30) + 6
subject.program.cfp = cfp cfp.save!
expect(subject.cfp_weeks).to eq(1) expect(subject.cfp_weeks).to eq(1)
end end
it 'is one if start and end are 6 days apart' do it 'is one if start and end are 6 days apart' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 6 cfp.end_date = Date.new(2014, 05, 26) + 6
subject.program.cfp = cfp cfp.save!
expect(subject.cfp_weeks).to eq(1) expect(subject.cfp_weeks).to eq(1)
end end
it 'is one if start and end are the same date' do it 'is one if start and end are the same date' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) cfp.end_date = Date.new(2014, 05, 26)
subject.program.cfp = cfp cfp.save!
expect(subject.cfp_weeks).to eq(1) expect(subject.cfp_weeks).to eq(1)
end end
it 'is two if start and end are 10 days apart' do it 'is two if start and end are 10 days apart' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 10 cfp.end_date = Date.new(2014, 05, 26) + 10
subject.program.cfp = cfp cfp.save!
expect(subject.cfp_weeks).to eq(2) expect(subject.cfp_weeks).to eq(2)
end end
end end
@ -1211,36 +1209,36 @@ describe Conference do
describe '#get_submissions_per_week' do describe '#get_submissions_per_week' do
it 'does calculate correct if cfp start date is altered' do it 'does calculate correct if cfp start date is altered' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) - 7)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) - 7)]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1, 1]) expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1, 1])
end end
it 'does calculate correct if cfp end date is altered' do it 'does calculate correct if cfp end date is altered' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0, 1]) expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0, 1])
end end
it 'pads with zeros if there are no submissions' do it 'pads with zeros if there are no submissions' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0]) expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0])
end end
it 'summarized correct if there are no submissions in one week' do it 'summarized correct if there are no submissions in one week' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 28 cfp.end_date = Date.new(2014, 05, 26) + 28
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
@ -1248,20 +1246,20 @@ describe Conference do
end end
it 'summarized correct if there are submissions every week except the first' do it 'summarized correct if there are submissions every week except the first' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
expect(subject.get_submissions_per_week).to eq([0, 1, 2, 2]) expect(subject.get_submissions_per_week).to eq([0, 1, 2, 2])
end end
it 'summarized correct if there are submissions every week' do it 'summarized correct if there are submissions every week' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
@ -1269,29 +1267,29 @@ describe Conference do
end end
it 'pads left' do it 'pads left' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)]
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 1]) expect(subject.get_submissions_per_week).to eq([0, 0, 0, 1])
end end
it 'pads middle' do it 'pads middle' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 2]) expect(subject.get_submissions_per_week).to eq([1, 1, 1, 2])
end end
it 'pads right' do it 'pads right' do
cfp = create(:cfp) cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26) cfp.start_date = Date.new(2014, 05, 26)
cfp.end_date = Date.new(2014, 05, 26) + 21 cfp.end_date = Date.new(2014, 05, 26) + 21
subject.program.cfp = cfp cfp.save!
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))] subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26))]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1]) expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1])
end end
@ -1460,7 +1458,7 @@ describe Conference do
context 'open cfp' do context 'open cfp' do
before do before do
subject.program.cfp = create(:cfp) create(:cfp, program: subject.program)
end end
it '#registration_open? is true' do it '#registration_open? is true' do

View file

@ -46,9 +46,10 @@ describe EmailSettings do
context 'conference has cfp' do context 'conference has cfp' do
before do before do
conference.program.update_attributes(cfp: create(:cfp, create(:cfp,
start_date: Date.new(2014, 04, 29), start_date: Date.new(2014, 04, 29),
end_date: Date.new(2014, 05, 06))) end_date: Date.new(2014, 05, 06),
program: conference.program)
cfp_dates_hash = { 'cfp_start_date' => Date.new(2014, 04, 29), 'cfp_end_date' => Date.new(2014, 05, 06) } cfp_dates_hash = { 'cfp_start_date' => Date.new(2014, 04, 29), 'cfp_end_date' => Date.new(2014, 05, 06) }
expected_hash.merge!(cfp_dates_hash) expected_hash.merge!(cfp_dates_hash)
end end

View file

@ -7,7 +7,7 @@ describe Program do
describe 'association' do describe 'association' do
it { is_expected.to belong_to :conference } it { is_expected.to belong_to :conference }
it { is_expected.to have_one(:cfp).dependent(:destroy) } it { is_expected.to have_many(:cfps).dependent(:destroy) }
it { is_expected.to have_many(:schedules).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(:event_types).dependent(:destroy) }
it { is_expected.to have_many(:tracks).dependent(:destroy) } it { is_expected.to have_many(:tracks).dependent(:destroy) }

View file

@ -29,7 +29,6 @@ describe 'Registration' do
describe 'association' do describe 'association' do
it { is_expected.to belong_to(:user) } it { is_expected.to belong_to(:user) }
it { is_expected.to belong_to(:conference) } it { is_expected.to belong_to(:conference) }
it { is_expected.to have_and_belong_to_many(:events) }
it { is_expected.to have_and_belong_to_many(:qanswers) } it { is_expected.to have_and_belong_to_many(:qanswers) }
it { is_expected.to have_and_belong_to_many(:vchoices) } it { is_expected.to have_and_belong_to_many(:vchoices) }
it { is_expected.to have_many(:events_registrations) } it { is_expected.to have_many(:events_registrations) }