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
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
.add(:end_date, "can't be after the conference end date (#{program.conference.end_date})")
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
.add(:start_date, "can't be after the conference end date (#{program.conference.end_date})")
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.
# * +true+ -> If today is in the CFP period.
def cfp_open?
cfp = cfps.events
cfp = self.cfp
cfp.present? && (cfp.start_date..cfp.end_date).cover?(Date.current)
end

View file

@ -2,7 +2,6 @@ class Registration < ActiveRecord::Base
belongs_to :user
belongs_to :conference
has_and_belongs_to_many :events
has_and_belongs_to_many :qanswers
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)
- when 'Cfp'
= 'cfp'
= 'cfp for'
- cfp = current_or_last_object_state(version.item_type, version.item_id)
= 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)

View file

@ -177,7 +177,7 @@ describe Admin::ConferencesController do
it 'assigns cfp_max an array with maximum weeks' do
conference
date = Date.new(2014, 05, 26)
conference.program.cfp = create(:cfp,
create(:cfp,
program: conference.program,
start_date: date,
end_date: date + 14)

View file

@ -10,7 +10,7 @@ describe ProposalsController do
describe 'GET #new' do
before do
# 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
end
@ -26,7 +26,7 @@ describe ProposalsController do
describe 'POST #create' do
# 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
post :create, event: attributes_for(:event, event_type_id: event_type.id),
@ -192,7 +192,7 @@ describe ProposalsController do
describe 'GET #new' do
before do
# 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
end
@ -223,7 +223,7 @@ describe ProposalsController do
describe 'POST #create' do
# 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
post :create, event: attributes_for(:event, event_type_id: event_type.id),

View file

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

View file

@ -5,5 +5,9 @@ FactoryGirl.define do
schedule_public false
schedule_fluid false
conference
trait :with_cfp do
after(:create) { |program| create(:cfp, program: program) }
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('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('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('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")
@ -112,8 +112,8 @@ feature 'Has correct abilities' do
visit 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)
expect(current_path).to eq(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, conference1.program.cfp))
visit 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_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('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('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")
@ -324,8 +324,8 @@ feature 'Has correct abilities' do
visit 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)
expect(current_path).to eq(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, conference2.program.cfp))
visit 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)
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)
visit admin_conference_program_events_path(conference3.short_title)

View file

@ -31,6 +31,8 @@ feature Conference do
# Validations
expect(flash)
.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('#end_date').text).to eq((today + 6).strftime('%A, %B %-d. %Y'))
@ -38,11 +40,11 @@ feature Conference do
end
scenario 'update cfp', feature: true, js: true do
conference.program.cfp = create(:cfp)
create(:cfp, program: conference.program)
expected_count = Cfp.count
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'
# Validate update with empty start date will not saved
@ -65,6 +67,8 @@ feature Conference do
# Validations
expect(flash)
.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('#end_date').text).to eq((today + 14).strftime('%A, %B %-d. %Y'))
expect(Cfp.count).to eq(expected_count)

View file

@ -38,9 +38,9 @@ feature 'Version' do
cfp.destroy
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) updated start date and end date of cfp 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) 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 for events 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
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!(: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_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_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_unconfirmed) { create(:event) }
@ -32,7 +30,7 @@ describe 'User' do
let(:resource) { create(:resource, conference: my_conference)}
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(:conference_with_open_registration) { create(:conference) }
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.end_date = Date.today + 7.weeks
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)
options = {}
@ -115,7 +115,7 @@ describe Conference do
}
subject.events_per_week = db_data
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)
unconfirmed = create(:event, program: subject.program)
@ -186,7 +186,7 @@ describe Conference do
subject.events_per_week = db_data
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)
@ -203,7 +203,7 @@ describe Conference do
subject.start_date = Date.today + 6.weeks
subject.end_date = Date.today + 7.weeks
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)
result = {
@ -220,7 +220,7 @@ describe Conference do
subject.start_date = Date.today + 6.weeks
subject.end_date = Date.today + 7.weeks
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)
unconfirmed = create(:event, program: subject.program)
@ -258,7 +258,7 @@ describe Conference do
subject.events_per_week = db_data
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)
@ -992,7 +992,6 @@ describe Conference do
end
it 'calculates correct for new conference' do
subject.program.cfp = nil
subject.venue = nil
subject.program.tracks = []
subject.program.event_types = []
@ -1006,7 +1005,6 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14,
end_date: subject.end_date, conference: subject)
subject.program.cfp = nil
subject.venue = nil
subject.program.event_types = []
subject.program.tracks = []
@ -1024,7 +1022,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14,
end_date: subject.end_date, conference: subject)
subject.program.cfp = create(:cfp)
create(:cfp, program: subject.program)
subject.venue = nil
subject.program.tracks = []
subject.program.event_types = []
@ -1043,7 +1041,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: subject.end_date - 14,
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.rooms = []
subject.program.tracks = []
@ -1063,7 +1061,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: Date.today,
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.rooms = [create(:room, venue: subject.venue)]
subject.program.tracks = []
@ -1087,7 +1085,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: Date.today,
end_date: Date.today + 14, conference: subject)
subject.program.cfp = create(:cfp)
create(:cfp, program: subject.program)
subject.program.event_types = []
subject.program.difficulty_levels = []
subject.splashpage = create(:splashpage, public: false)
@ -1109,7 +1107,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: Date.today,
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.rooms = [create(:room, venue: subject.venue)]
subject.program.difficulty_levels = []
@ -1133,7 +1131,7 @@ describe Conference do
subject.registration_period = create(:registration_period,
start_date: Date.today,
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.rooms = [create(:room, venue: subject.venue)]
subject.splashpage = create(:splashpage, public: true)
@ -1176,34 +1174,34 @@ describe Conference do
describe '#cfp_weeks' do
it 'calculates new year' do
cfp = create(:cfp)
cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2013, 12, 30)
cfp.end_date = Date.new(2013, 12, 30) + 6
subject.program.cfp = cfp
cfp.save!
expect(subject.cfp_weeks).to eq(1)
end
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.end_date = Date.new(2014, 05, 26) + 6
subject.program.cfp = cfp
cfp.save!
expect(subject.cfp_weeks).to eq(1)
end
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.end_date = Date.new(2014, 05, 26)
subject.program.cfp = cfp
cfp.save!
expect(subject.cfp_weeks).to eq(1)
end
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.end_date = Date.new(2014, 05, 26) + 10
subject.program.cfp = cfp
cfp.save!
expect(subject.cfp_weeks).to eq(2)
end
end
@ -1211,36 +1209,36 @@ describe Conference do
describe '#get_submissions_per_week' 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.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)]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1, 1])
end
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.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)]
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 0, 1])
end
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.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])
end
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.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) + 14)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
@ -1248,20 +1246,20 @@ describe Conference do
end
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.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) + 14)]
expect(subject.get_submissions_per_week).to eq([0, 1, 2, 2])
end
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.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) + 7)]
subject.program.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
@ -1269,29 +1267,29 @@ describe Conference do
end
it 'pads left' do
cfp = create(:cfp)
cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26)
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)]
expect(subject.get_submissions_per_week).to eq([0, 0, 0, 1])
end
it 'pads middle' do
cfp = create(:cfp)
cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26)
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) + 21)]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 2])
end
it 'pads right' do
cfp = create(:cfp)
cfp = create(:cfp, program: subject.program)
cfp.start_date = Date.new(2014, 05, 26)
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))]
expect(subject.get_submissions_per_week).to eq([1, 1, 1, 1])
end
@ -1460,7 +1458,7 @@ describe Conference do
context 'open cfp' do
before do
subject.program.cfp = create(:cfp)
create(:cfp, program: subject.program)
end
it '#registration_open? is true' do

View file

@ -46,9 +46,10 @@ describe EmailSettings do
context 'conference has cfp' do
before do
conference.program.update_attributes(cfp: create(:cfp,
create(:cfp,
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) }
expected_hash.merge!(cfp_dates_hash)
end

View file

@ -7,7 +7,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(:cfps).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) }

View file

@ -29,7 +29,6 @@ describe 'Registration' do
describe 'association' do
it { is_expected.to belong_to(:user) }
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(:vchoices) }
it { is_expected.to have_many(:events_registrations) }