Introduce Program to include cfp/rooms/tracks/events/event_types/difficulty_levels
This commit is contained in:
parent
028b82fda8
commit
444356fbc7
117 changed files with 1812 additions and 905 deletions
|
|
@ -8,7 +8,7 @@ describe Admin::CommentsController, type: :controller do
|
|||
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id, last_sign_in_at: Time.now - 1.day) }
|
||||
let(:participant) { create(:user) }
|
||||
let(:event) { create(:event, conference: conference) }
|
||||
let(:event) { create(:event, program: conference.program) }
|
||||
let(:comment) { create(:comment, commentable_type: 'Event', commentable_id: event.id) }
|
||||
|
||||
context 'not logged in user' do
|
||||
|
|
@ -32,7 +32,7 @@ describe Admin::CommentsController, type: :controller do
|
|||
expect(assigns(:comments)).to be_a(Hash)
|
||||
# assigns(:comments).first returns an array of first pair key-value from hash.
|
||||
# Calling again 'first' returns the key, meaning the Conference object.
|
||||
expect(assigns(:comments).first.first.title).to eq(comment.commentable.conference.title)
|
||||
expect(assigns(:comments).first.first.title).to eq(comment.commentable.program.conference.title)
|
||||
end
|
||||
it 'has status 200: OK' do
|
||||
get :index
|
||||
|
|
|
|||
|
|
@ -165,9 +165,10 @@ describe Admin::ConferenceController do
|
|||
it 'assigns cfp_max an array with maximum weeks' do
|
||||
conference
|
||||
date = Date.new(2014, 05, 26)
|
||||
conference.call_for_paper = create(:call_for_paper,
|
||||
start_date: date,
|
||||
end_date: date + 14)
|
||||
conference.program.cfp = create(:cfp,
|
||||
program: conference.program,
|
||||
start_date: date,
|
||||
end_date: date + 14)
|
||||
get :index
|
||||
expect(assigns(:cfp_weeks)).to match_array([1, 2, 3])
|
||||
end
|
||||
|
|
|
|||
33
spec/controllers/admin/programs_controller_spec.rb
Normal file
33
spec/controllers/admin/programs_controller_spec.rb
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Admin::ProgramsController, type: :controller do
|
||||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let(:conference) { create(:conference) }
|
||||
let!(:first_user) { create(:user) }
|
||||
let!(:organizer_role) { create(:role, name: 'organizer', resource: conference) }
|
||||
let(:organizer) { create(:user, role_ids: organizer_role.id, last_sign_in_at: Time.now - 1.day) }
|
||||
|
||||
context 'not logged in user' do
|
||||
describe 'GET #show' do
|
||||
it 'does not render admin/programs#show' do
|
||||
get :show, conference_id: conference.short_title
|
||||
expect(response).to redirect_to(user_session_path)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'logged in as admin, organizer or cfp' do
|
||||
before :each do
|
||||
sign_in(organizer)
|
||||
end
|
||||
|
||||
describe 'PATCH #update' do
|
||||
it 'redirects to admin/programs#index' do
|
||||
patch :update, conference_id: conference.short_title, program: attributes_for(:program)
|
||||
conference.program.reload
|
||||
expect(response).to redirect_to admin_conference_program_path(conference.short_title)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :call_for_paper do
|
||||
factory :cfp do
|
||||
program
|
||||
start_date { 1.day.ago }
|
||||
end_date { 6.days.from_now }
|
||||
end
|
||||
|
|
@ -7,11 +7,12 @@ FactoryGirl.define do
|
|||
timezone 'Amsterdam'
|
||||
start_date { Date.today }
|
||||
end_date { 6.days.from_now }
|
||||
program
|
||||
|
||||
factory :full_conference do
|
||||
venue
|
||||
splashpage
|
||||
registration_period
|
||||
call_for_paper
|
||||
|
||||
after(:build) do |conference|
|
||||
conference.commercials << build(:conference_commercial, commercialable: conference)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ FactoryGirl.define do
|
|||
title 'Example Difficulty Level'
|
||||
description 'Lorem Ipsum dolsum'
|
||||
color '#ffffff'
|
||||
conference
|
||||
program
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ FactoryGirl.define do
|
|||
send_on_confirmed_without_registration false
|
||||
send_on_conference_dates_updated true
|
||||
send_on_conference_registration_dates_updated true
|
||||
send_on_call_for_papers_schedule_public true
|
||||
send_on_call_for_papers_dates_updated true
|
||||
send_on_program_schedule_public true
|
||||
send_on_cfp_dates_updated true
|
||||
conference_dates_updated_body 'Sample Conference\n New Dates: January 17 - 21 2014'
|
||||
conference_dates_updated_subject 'Conference dates have been updated'
|
||||
conference_registration_dates_updated_subject 'Conference registration dates have been updated'
|
||||
|
|
@ -19,9 +19,9 @@ FactoryGirl.define do
|
|||
venue_updated_body 'Venue has been Updated to Sample Location'
|
||||
registration_subject 'Lorem Ipsum Dolsum'
|
||||
registration_body 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit'
|
||||
call_for_papers_dates_updated_subject 'Call for Papers dates have been updated'
|
||||
call_for_papers_dates_updated_body 'Please checkout the new updates to submit your proposal for Sample Conference'
|
||||
call_for_papers_schedule_public_subject 'Sample Conference Cfp schedule is Public'
|
||||
call_for_papers_schedule_public_body 'Call for Papers schedule is Public.Checkout the link'
|
||||
cfp_dates_updated_subject 'Call for Papers dates have been updated'
|
||||
cfp_dates_updated_body 'Please checkout the new updates to submit your proposal for Sample Conference'
|
||||
program_schedule_public_subject 'Sample Conference Cfp schedule is Public'
|
||||
program_schedule_public_body 'Call for Papers schedule is Public.Checkout the link'
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ FactoryGirl.define do
|
|||
length 30
|
||||
minimum_abstract_length 0
|
||||
maximum_abstract_length 500
|
||||
conference
|
||||
program
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
FactoryGirl.define do
|
||||
factory :event do
|
||||
sequence(:title) { |n| "The ##{n} talk you'll ever attend." }
|
||||
conference
|
||||
program
|
||||
abstract <<-EOS
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ante
|
||||
lacus, mollis non urna vitae, varius semper leo. Nulla ac nibh dui. Mauris
|
||||
|
|
@ -35,7 +35,7 @@ FactoryGirl.define do
|
|||
# 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
|
||||
event.event_type ||= build(:event_type, conference: event.conference)
|
||||
event.event_type ||= build(:event_type, program: event.program)
|
||||
end
|
||||
|
||||
factory :event_full do
|
||||
|
|
@ -44,9 +44,9 @@ FactoryGirl.define do
|
|||
room
|
||||
after(:build) do |event|
|
||||
event.commercials << build(:event_commercial, commercialable: event)
|
||||
event.difficulty_level = build(:difficulty_level, conference: event.conference)
|
||||
event.track = build(:track, conference: event.conference)
|
||||
event.room = build(:room, conference: event.conference)
|
||||
event.difficulty_level = build(:difficulty_level, program: event.program)
|
||||
event.track = build(:track, program: event.program)
|
||||
event.room = build(:room, program: event.program)
|
||||
event.comment_threads << build(:comment, commentable: event)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
9
spec/factories/program.rb
Normal file
9
spec/factories/program.rb
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Read about factories at https://github.com/thoughtbot/factory_girl
|
||||
|
||||
FactoryGirl.define do
|
||||
factory :program do
|
||||
schedule_public false
|
||||
schedule_fluid false
|
||||
# conference
|
||||
end
|
||||
end
|
||||
|
|
@ -3,7 +3,7 @@ FactoryGirl.define do
|
|||
factory :room do
|
||||
name 'Example Room'
|
||||
size 4
|
||||
conference
|
||||
program
|
||||
|
||||
factory :room_for_100 do
|
||||
name 'Room for 100'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ FactoryGirl.define do
|
|||
name 'Example Track'
|
||||
description 'Lorem Ipsum dolsum'
|
||||
color '#ffffff'
|
||||
conference
|
||||
program
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -37,22 +37,23 @@ feature 'Has correct abilities' do
|
|||
expect(page).to have_link('Basics', href: "/admin/conference/#{conference1.short_title}/edit")
|
||||
expect(page).to have_link('Contact', href: "/admin/conference/#{conference1.short_title}/contact/edit")
|
||||
expect(page).to have_link('Commercials', href: "/admin/conference/#{conference1.short_title}/commercials")
|
||||
expect(page).to have_link('Events', href: "/admin/conference/#{conference1.short_title}/events")
|
||||
expect(page).to have_link('Events', href: "/admin/conference/#{conference1.short_title}/program/events")
|
||||
expect(page).to have_link('Registrations', href: "/admin/conference/#{conference1.short_title}/registrations")
|
||||
expect(page).to have_link('Schedule', href: "/admin/conference/#{conference1.short_title}/schedule")
|
||||
expect(page).to have_link('Campaigns', href: "/admin/conference/#{conference1.short_title}/campaigns")
|
||||
expect(page).to have_link('Goals', href: "/admin/conference/#{conference1.short_title}/targets")
|
||||
expect(page).to have_link('Venue', href: "/admin/conference/#{conference1.short_title}/venue")
|
||||
expect(page).to have_link('Rooms', href: "/admin/conference/#{conference1.short_title}/rooms")
|
||||
expect(page).to have_link('Rooms', href: "/admin/conference/#{conference1.short_title}/program/rooms")
|
||||
expect(page).to have_link('Lodgings', href: "/admin/conference/#{conference1.short_title}/lodgings")
|
||||
expect(page).to have_link('Sponsorship', href: "/admin/conference/#{conference1.short_title}/sponsorship_levels")
|
||||
expect(page).to have_link('Sponsors', href: "/admin/conference/#{conference1.short_title}/sponsors")
|
||||
expect(page).to have_link('Tickets', href: "/admin/conference/#{conference1.short_title}/tickets")
|
||||
expect(page).to have_link('E-Mails', href: "/admin/conference/#{conference1.short_title}/emails")
|
||||
expect(page).to have_link('Call for Papers', href: "/admin/conference/#{conference1.short_title}/call_for_paper")
|
||||
expect(page).to have_link('Tracks', href: "/admin/conference/#{conference1.short_title}/tracks")
|
||||
expect(page).to have_link('Event Types', href: "/admin/conference/#{conference1.short_title}/event_types")
|
||||
expect(page).to have_link('Difficulty Levels', href: "/admin/conference/#{conference1.short_title}/difficulty_levels")
|
||||
expect(page).to have_link('Program', href: "/admin/conference/#{conference1.short_title}/program")
|
||||
expect(page).to have_link('Call for Papers', href: "/admin/conference/#{conference1.short_title}/program/cfp")
|
||||
expect(page).to have_link('Tracks', href: "/admin/conference/#{conference1.short_title}/program/tracks")
|
||||
expect(page).to have_link('Event Types', href: "/admin/conference/#{conference1.short_title}/program/event_types")
|
||||
expect(page).to have_link('Difficulty Levels', href: "/admin/conference/#{conference1.short_title}/program/difficulty_levels")
|
||||
expect(page).to have_link('Questions', href: "/admin/conference/#{conference1.short_title}/questions")
|
||||
expect(page).to have_link('Roles', href: "/admin/conference/#{conference1.short_title}/roles")
|
||||
|
||||
|
|
@ -65,8 +66,8 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_registrations_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_registrations_path(conference1.short_title))
|
||||
|
||||
visit admin_conference_events_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_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))
|
||||
|
||||
visit admin_conference_schedule_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_schedule_path(conference1.short_title))
|
||||
|
|
@ -93,8 +94,8 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_emails_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_emails_path(conference1.short_title))
|
||||
|
||||
visit new_admin_conference_call_for_paper_path(conference1.short_title)
|
||||
expect(current_path).to eq(new_admin_conference_call_for_paper_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))
|
||||
|
||||
visit admin_conference_questions_path(conference1.short_title)
|
||||
expect(current_path).to eq(admin_conference_questions_path(conference1.short_title))
|
||||
|
|
@ -113,22 +114,23 @@ feature 'Has correct abilities' do
|
|||
expect(page).to have_text('Basics')
|
||||
expect(page).to_not have_link('Contact', href: "/admin/conference/#{conference2.short_title}/contact/edit")
|
||||
expect(page).to have_link('Commercials', href: "/admin/conference/#{conference2.short_title}/commercials")
|
||||
expect(page).to have_link('Events', href: "/admin/conference/#{conference2.short_title}/events")
|
||||
expect(page).to have_link('Events', href: "/admin/conference/#{conference2.short_title}/program/events")
|
||||
expect(page).to_not have_link('Registrations', href: "/admin/conference/#{conference2.short_title}/registrations")
|
||||
expect(page).to have_link('Schedule', href: "/admin/conference/#{conference2.short_title}/schedule")
|
||||
expect(page).to_not have_link('Campaigns', href: "/admin/conference/#{conference2.short_title}/campaigns")
|
||||
expect(page).to_not have_link('Goals', href: "/admin/conference/#{conference2.short_title}/targets")
|
||||
expect(page).to have_link('Venue', href: "/admin/conference/#{conference2.short_title}/venue")
|
||||
expect(page).to have_link('Rooms', href: "/admin/conference/#{conference2.short_title}/rooms")
|
||||
expect(page).to have_link('Rooms', href: "/admin/conference/#{conference2.short_title}/program/rooms")
|
||||
expect(page).to_not have_link('Lodgings', href: "/admin/conference/#{conference2.short_title}/lodgings")
|
||||
expect(page).to_not have_link('Sponsorship', href: "/admin/conference/#{conference2.short_title}/sponsorship_levels")
|
||||
expect(page).to_not have_link('Sponsors', href: "/admin/conference/#{conference2.short_title}/sponsors")
|
||||
expect(page).to_not have_link('Supporter Levels', href: "/admin/conference/#{conference2.short_title}/supporter_levels")
|
||||
expect(page).to have_link('E-Mails', href: "/admin/conference/#{conference2.short_title}/emails")
|
||||
expect(page).to have_link('Call for Papers', href: "/admin/conference/#{conference2.short_title}/call_for_paper")
|
||||
expect(page).to have_link('Tracks', href: "/admin/conference/#{conference2.short_title}/tracks")
|
||||
expect(page).to have_link('Event Types', href: "/admin/conference/#{conference2.short_title}/event_types")
|
||||
expect(page).to have_link('Difficulty Levels', href: "/admin/conference/#{conference2.short_title}/difficulty_levels")
|
||||
expect(page).to have_link('Program', href: "/admin/conference/#{conference2.short_title}/program")
|
||||
expect(page).to have_link('Call for Papers', href: "/admin/conference/#{conference2.short_title}/program/cfp")
|
||||
expect(page).to have_link('Tracks', href: "/admin/conference/#{conference2.short_title}/program/tracks")
|
||||
expect(page).to have_link('Event Types', href: "/admin/conference/#{conference2.short_title}/program/event_types")
|
||||
expect(page).to have_link('Difficulty Levels', href: "/admin/conference/#{conference2.short_title}/program/difficulty_levels")
|
||||
expect(page).to_not have_link('Questions', href: "/admin/conference/#{conference2.short_title}/questions")
|
||||
expect(page).to_not have_link('Roles', href: "/admin/conference/#{conference2.short_title}/roles")
|
||||
|
||||
|
|
@ -141,8 +143,8 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_registrations_path(conference2.short_title)
|
||||
expect(current_path).to eq(admin_conference_registrations_path(conference2.short_title))
|
||||
|
||||
visit admin_conference_events_path(conference2.short_title)
|
||||
expect(current_path).to eq(admin_conference_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))
|
||||
|
||||
visit admin_conference_schedule_path(conference2.short_title)
|
||||
expect(current_path).to eq(admin_conference_schedule_path(conference2.short_title))
|
||||
|
|
@ -165,8 +167,8 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_emails_path(conference2.short_title)
|
||||
expect(current_path).to eq(admin_conference_emails_path(conference2.short_title))
|
||||
|
||||
visit new_admin_conference_call_for_paper_path(conference2.short_title)
|
||||
expect(current_path).to eq(new_admin_conference_call_for_paper_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))
|
||||
|
||||
visit admin_conference_questions_path(conference2.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
|
@ -185,22 +187,23 @@ feature 'Has correct abilities' do
|
|||
expect(page).to have_text('Basics')
|
||||
expect(page).to_not have_link('Contact', href: "/admin/conference/#{conference3.short_title}/contact/edit")
|
||||
expect(page).to have_link('Commercials', href: "/admin/conference/#{conference3.short_title}/commercials")
|
||||
expect(page).to_not have_link('Events', href: "/admin/conference/#{conference3.short_title}/events")
|
||||
expect(page).to_not have_link('Events', href: "/admin/conference/#{conference3.short_title}/program/events")
|
||||
expect(page).to have_link('Registrations', href: "/admin/conference/#{conference3.short_title}/registrations")
|
||||
expect(page).to_not have_link('Schedule', href: "/admin/conference/#{conference3.short_title}/schedule")
|
||||
expect(page).to_not have_link('Campaigns', href: "/admin/conference/#{conference3.short_title}/campaigns")
|
||||
expect(page).to_not have_link('Targets', href: "/admin/conference/#{conference3.short_title}/targets")
|
||||
expect(page).to_not have_link('Venue', href: "/admin/conference/#{conference3.short_title}/venue")
|
||||
expect(page).to_not have_link('Rooms', href: "/admin/conference/#{conference3.short_title}/rooms")
|
||||
expect(page).to_not have_link('Rooms', href: "/admin/conference/#{conference3.short_title}/program/rooms")
|
||||
expect(page).to_not have_link('Lodgings', href: "/admin/conference/#{conference3.short_title}/lodgings")
|
||||
expect(page).to_not have_link('Sponsorship', href: "/admin/conference/#{conference3.short_title}/sponsorship_levels")
|
||||
expect(page).to_not have_link('Sponsors', href: "/admin/conference/#{conference3.short_title}/sponsors")
|
||||
expect(page).to_not have_link('Supporter Levels', href: "/admin/conference/#{conference3.short_title}/supporter_levels")
|
||||
expect(page).to_not have_link('E-Mails', href: "/admin/conference/#{conference3.short_title}/emails")
|
||||
expect(page).to_not have_link('Call for papers', href: "/admin/conference/#{conference3.short_title}/call_for_paper")
|
||||
expect(page).to_not have_link('Tracks', href: "/admin/conference/#{conference3.short_title}/tracks")
|
||||
expect(page).to_not have_link('Event types', href: "/admin/conference/#{conference3.short_title}/event_types")
|
||||
expect(page).to_not have_link('Difficulty levels', href: "/admin/conference/#{conference3.short_title}/difficulty_levels")
|
||||
expect(page).to_not have_link('Program', href: "/admin/conference/#{conference3.short_title}/program")
|
||||
expect(page).to_not have_link('Call for papers', href: "/admin/conference/#{conference3.short_title}/program/cfp")
|
||||
expect(page).to_not have_link('Tracks', href: "/admin/conference/#{conference3.short_title}/program/tracks")
|
||||
expect(page).to_not have_link('Event types', href: "/admin/conference/#{conference3.short_title}/program/event_types")
|
||||
expect(page).to_not have_link('Difficulty levels', href: "/admin/conference/#{conference3.short_title}/program/difficulty_levels")
|
||||
expect(page).to have_link('Questions', href: "/admin/conference/#{conference3.short_title}/questions")
|
||||
expect(page).to_not have_link('Roles', href: "/admin/conference/#{conference3.short_title}/roles")
|
||||
|
||||
|
|
@ -213,7 +216,7 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_registrations_path(conference3.short_title)
|
||||
expect(current_path).to eq(admin_conference_registrations_path(conference3.short_title))
|
||||
|
||||
visit admin_conference_events_path(conference3.short_title)
|
||||
visit admin_conference_program_events_path(conference3.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
||||
visit admin_conference_schedule_path(conference3.short_title)
|
||||
|
|
@ -237,7 +240,7 @@ feature 'Has correct abilities' do
|
|||
visit admin_conference_emails_path(conference3.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
||||
visit new_admin_conference_call_for_paper_path(conference3.short_title)
|
||||
visit new_admin_conference_program_cfp_path(conference3.short_title)
|
||||
expect(current_path).to eq(root_path)
|
||||
|
||||
visit admin_conference_questions_path(conference3.short_title)
|
||||
|
|
|
|||
|
|
@ -8,13 +8,13 @@ feature Conference do
|
|||
|
||||
shared_examples 'add and update cfp' do
|
||||
scenario 'adds a new cfp', feature: true, js: true do
|
||||
expected_count = CallForPaper.count + 1
|
||||
expected_count = Cfp.count + 1
|
||||
|
||||
sign_in organizer
|
||||
|
||||
visit new_admin_conference_call_for_paper_path(conference.short_title)
|
||||
visit new_admin_conference_program_cfp_path(conference.short_title)
|
||||
|
||||
click_button 'Create Call for paper'
|
||||
click_button 'Create Cfp'
|
||||
|
||||
expect(flash).
|
||||
to eq('Creating the call for papers failed. ' +
|
||||
|
|
@ -26,32 +26,29 @@ feature Conference do
|
|||
page.execute_script(
|
||||
"$('#conference-end-datepicker').val('#{(today + 6).strftime('%d/%m/%Y')}')")
|
||||
|
||||
fill_in 'call_for_paper_rating', with: '4'
|
||||
|
||||
click_button 'Create Call for paper'
|
||||
click_button 'Create Cfp'
|
||||
|
||||
# Validations
|
||||
expect(flash).
|
||||
to eq('Call for papers successfully created.')
|
||||
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('#rating').text).to eq('4')
|
||||
|
||||
expect(CallForPaper.count).to eq(expected_count)
|
||||
expect(Cfp.count).to eq(expected_count)
|
||||
end
|
||||
|
||||
scenario 'update cfp', feature: true, js: true do
|
||||
conference.call_for_paper = create(:call_for_paper)
|
||||
expected_count = CallForPaper.count
|
||||
conference.program.cfp = create(:cfp)
|
||||
expected_count = Cfp.count
|
||||
|
||||
sign_in organizer
|
||||
visit admin_conference_call_for_paper_path(conference.short_title)
|
||||
visit admin_conference_program_cfp_path(conference.short_title)
|
||||
click_link 'Edit'
|
||||
|
||||
# Validate update with empty start date will not saved
|
||||
page.execute_script(
|
||||
"$('#conference-start-datepicker').val('')")
|
||||
click_button 'Update Call for paper'
|
||||
click_button 'Update Cfp'
|
||||
expect(flash).
|
||||
to eq('Updating call for papers failed. ' +
|
||||
"Start date can't be blank.")
|
||||
|
|
@ -63,16 +60,14 @@ feature Conference do
|
|||
page.execute_script(
|
||||
"$('#conference-end-datepicker').val('#{(today + 14).strftime('%d/%m/%Y')}')")
|
||||
|
||||
fill_in 'call_for_paper_rating', with: '0'
|
||||
click_button 'Update Call for paper'
|
||||
click_button 'Update Cfp'
|
||||
|
||||
# Validations
|
||||
expect(flash).
|
||||
to eq('Call for papers successfully updated.')
|
||||
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('#rating').text).to eq('0')
|
||||
expect(CallForPaper.count).to eq(expected_count)
|
||||
expect(Cfp.count).to eq(expected_count)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ feature Commercial do
|
|||
end
|
||||
|
||||
context 'in public area' do
|
||||
let!(:event) { create(:event, conference: conference, title: 'Example Proposal') }
|
||||
let!(:event) { create(:event, program: conference.program, title: 'Example Proposal') }
|
||||
|
||||
before(:each) do
|
||||
event.event_users = [create(:event_user,
|
||||
|
|
@ -58,8 +58,8 @@ feature Commercial do
|
|||
sign_out
|
||||
end
|
||||
|
||||
scenario 'adds a commercial of an event', feature: true, js: true do
|
||||
visit edit_conference_proposal_path(conference.short_title, event.id)
|
||||
scenario 'adds a valid commercial of an event', feature: true, js: true do
|
||||
visit edit_conference_program_proposal_path(conference.short_title, event.id)
|
||||
click_link 'Commercials'
|
||||
fill_in 'commercial_url', with: 'https://www.youtube.com/watch?v=M9bq_alk-sw'
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ feature Commercial do
|
|||
commercial = create(:commercial,
|
||||
commercialable_id: event.id,
|
||||
commercialable_type: 'Event')
|
||||
visit edit_conference_proposal_path(conference.short_title, event.id)
|
||||
visit edit_conference_program_proposal_path(conference.short_title, event.id)
|
||||
click_link 'Commercials'
|
||||
fill_in "commercial_url_#{commercial.id}", with: 'https://www.youtube.com/watch?v=M9bq_alk-sw'
|
||||
click_button 'Update'
|
||||
|
|
@ -89,7 +89,7 @@ feature Commercial do
|
|||
create(:commercial,
|
||||
commercialable_id: event.id,
|
||||
commercialable_type: 'Event')
|
||||
visit edit_conference_proposal_path(conference.short_title, event.id)
|
||||
visit edit_conference_program_proposal_path(conference.short_title, event.id)
|
||||
click_link 'Commercials'
|
||||
click_link 'Delete'
|
||||
page.driver.network_traffic
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ feature DifficultyLevel do
|
|||
scenario 'adds difficulty level', feature: true, js: true do
|
||||
|
||||
sign_in organizer
|
||||
visit admin_conference_difficulty_levels_path(
|
||||
visit admin_conference_program_difficulty_levels_path(
|
||||
conference_id: conference.short_title)
|
||||
|
||||
# Add difficulty level
|
||||
|
|
@ -32,9 +32,9 @@ feature DifficultyLevel do
|
|||
|
||||
scenario 'updates difficulty level', feature: true, js: true do
|
||||
|
||||
conference.difficulty_levels << create(:difficulty_level)
|
||||
conference.program.difficulty_levels << create(:difficulty_level)
|
||||
sign_in organizer
|
||||
visit admin_conference_difficulty_levels_path(
|
||||
visit admin_conference_program_difficulty_levels_path(
|
||||
conference_id: conference.short_title)
|
||||
|
||||
# Remove difficulty level
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ feature EventType do
|
|||
scenario 'adds and updates event type', feature: true, js: true do
|
||||
|
||||
sign_in organizer
|
||||
visit admin_conference_event_types_path(
|
||||
visit admin_conference_program_event_types_path(
|
||||
conference_id: conference.short_title)
|
||||
|
||||
within('table#event_types') do
|
||||
|
|
|
|||
30
spec/features/program_spec.rb
Normal file
30
spec/features/program_spec.rb
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature Program do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:program) { conference.program }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
describe 'edit program' do
|
||||
before :each do
|
||||
sign_in organizer
|
||||
end
|
||||
|
||||
scenario 'changes rating', feature: true, js: true do
|
||||
visit admin_conference_program_path(conference.short_title)
|
||||
|
||||
click_link 'Edit'
|
||||
|
||||
fill_in 'program_rating', with: '4'
|
||||
|
||||
click_button 'Update Program'
|
||||
|
||||
# Validations
|
||||
expect(flash).
|
||||
to eq('The program was successfully updated.')
|
||||
expect(find('#rating').text).to eq('4')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature Event do
|
||||
let!(:conference) { create(:conference, call_for_paper: create(:call_for_paper)) }
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program_id: conference.program.id) }
|
||||
let!(:organizer_role) { create(:organizer_role, resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:participant) { create(:user) }
|
||||
|
|
@ -10,7 +11,7 @@ feature Event do
|
|||
before(:each) do
|
||||
@options = {}
|
||||
@options[:send_mail] = 'false'
|
||||
@event = create(:event, conference: conference, title: 'Example Proposal')
|
||||
@event = create(:event, program: conference.program, title: 'Example Proposal')
|
||||
end
|
||||
|
||||
after(:each) do
|
||||
|
|
@ -23,7 +24,7 @@ feature Event do
|
|||
end
|
||||
|
||||
scenario 'rejects a proposal', feature: true, js: true do
|
||||
visit admin_conference_events_path(conference.short_title)
|
||||
visit admin_conference_program_events_path(conference.short_title)
|
||||
expect(page.has_content?('Example Proposal')).to be true
|
||||
|
||||
click_button 'New'
|
||||
|
|
@ -34,7 +35,7 @@ feature Event do
|
|||
end
|
||||
|
||||
scenario 'accepts a proposal', feature: true, js: true do
|
||||
visit admin_conference_events_path(conference.short_title)
|
||||
visit admin_conference_program_events_path(conference.short_title)
|
||||
expect(page.has_content?('Example Proposal')).to be true
|
||||
|
||||
click_button 'New'
|
||||
|
|
@ -47,7 +48,7 @@ feature Event do
|
|||
|
||||
scenario 'restarts review of a proposal', feature: true, js: true do
|
||||
@event.reject!(@options)
|
||||
visit admin_conference_events_path(conference.short_title)
|
||||
visit admin_conference_program_events_path(conference.short_title)
|
||||
expect(page.has_content?('Example Proposal')).to be true
|
||||
|
||||
click_button 'Rejected'
|
||||
|
|
@ -71,7 +72,7 @@ feature Event do
|
|||
expected_count_event = Event.count + 1
|
||||
expected_count_user = User.count + 1
|
||||
|
||||
visit new_conference_proposal_path(conference.short_title)
|
||||
visit new_conference_program_proposal_path(conference.short_title)
|
||||
|
||||
fill_in 'user_username', with: 'Test User'
|
||||
fill_in 'user_email', with: 'testuser@osem.io'
|
||||
|
|
@ -90,11 +91,12 @@ feature Event do
|
|||
end
|
||||
|
||||
scenario 'update a proposal' do
|
||||
proposal = create(:event)
|
||||
conference = create(:conference)
|
||||
proposal = create(:event, program: conference.program)
|
||||
|
||||
sign_in proposal.submitter
|
||||
|
||||
visit edit_conference_proposal_path(proposal.conference.short_title, proposal)
|
||||
visit edit_conference_program_proposal_path(proposal.program.conference.short_title, proposal)
|
||||
|
||||
fill_in 'event_subtitle', with: 'My event subtitle'
|
||||
select('Easy', from: 'event[difficulty_level_id]')
|
||||
|
|
@ -106,7 +108,7 @@ feature Event do
|
|||
scenario 'signed_in user submits a valid proposal', feature: true, js: true do
|
||||
sign_in participant_without_bio
|
||||
expected_count = Event.count + 1
|
||||
visit conference_proposal_index_path(conference.short_title)
|
||||
visit conference_program_proposal_index_path(conference.short_title)
|
||||
click_link 'New Proposal'
|
||||
|
||||
fill_in 'event_title', with: 'Example Proposal'
|
||||
|
|
@ -120,13 +122,13 @@ feature Event do
|
|||
click_button 'Create Proposal'
|
||||
expect(flash).to eq('Proposal was successfully submitted.')
|
||||
|
||||
expect(current_path).to eq(conference_proposal_index_path(conference.short_title))
|
||||
expect(current_path).to eq(conference_program_proposal_index_path(conference.short_title))
|
||||
expect(Event.count).to eq(expected_count)
|
||||
end
|
||||
|
||||
scenario 'confirms a proposal', feature: true, js: true do
|
||||
sign_in participant
|
||||
visit conference_proposal_index_path(conference.short_title)
|
||||
visit conference_program_proposal_index_path(conference.short_title)
|
||||
expect(page.has_content?('Example Proposal')).to be true
|
||||
expect(@event.state).to eq('unconfirmed')
|
||||
click_link "confirm_proposal_#{@event.id}"
|
||||
|
|
@ -139,7 +141,7 @@ feature Event do
|
|||
scenario 'withdraw a proposal', feature: true, js: true do
|
||||
sign_in participant
|
||||
@event.confirm!
|
||||
visit conference_proposal_index_path(conference.short_title)
|
||||
visit conference_program_proposal_index_path(conference.short_title)
|
||||
expect(page.has_content?('Example Proposal')).to be true
|
||||
click_link "delete_proposal_#{@event.id}"
|
||||
expect(flash).to eq('Proposal was successfully withdrawn.')
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ feature Room do
|
|||
shared_examples 'rooms' do
|
||||
scenario 'adds a room', feature: true, js: true do
|
||||
sign_in organizer
|
||||
visit admin_conference_rooms_path(
|
||||
visit admin_conference_program_rooms_path(
|
||||
conference_id: conference.short_title)
|
||||
|
||||
expect(page.has_no_table?('#rooms')).to be true
|
||||
|
|
@ -30,9 +30,9 @@ feature Room do
|
|||
end
|
||||
|
||||
scenario 'updates a room', feature: true, js: true do
|
||||
room = create(:room, conference_id: conference.id)
|
||||
room = create(:room, program_id: conference.program.id)
|
||||
sign_in organizer
|
||||
visit edit_admin_conference_room_path(
|
||||
visit edit_admin_conference_program_room_path(
|
||||
conference_id: conference.short_title, id: room.id)
|
||||
|
||||
fill_in 'room_name', with: 'Auditorium'
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ feature Track do
|
|||
|
||||
sign_in organizer
|
||||
|
||||
visit admin_conference_tracks_path(conference_id: conference.short_title)
|
||||
visit admin_conference_program_tracks_path(conference_id: conference.short_title)
|
||||
click_link 'New Track'
|
||||
|
||||
fill_in 'track_name', with: 'Distribution'
|
||||
|
|
@ -27,10 +27,10 @@ feature Track do
|
|||
end
|
||||
|
||||
scenario 'deletes a track', feature: true, js: true do
|
||||
track = create(:track, conference_id: conference.id)
|
||||
track = create(:track, program_id: conference.program.id)
|
||||
sign_in organizer
|
||||
|
||||
visit admin_conference_tracks_path(conference_id: conference.short_title)
|
||||
visit admin_conference_program_tracks_path(conference_id: conference.short_title)
|
||||
|
||||
click_link 'Delete'
|
||||
|
||||
|
|
@ -43,10 +43,10 @@ feature Track do
|
|||
end
|
||||
|
||||
scenario 'updates a track', feature: true, js: true do
|
||||
create(:track, conference_id: conference.id)
|
||||
create(:track, program_id: conference.program.id)
|
||||
sign_in organizer
|
||||
|
||||
visit admin_conference_tracks_path(conference_id: conference.short_title)
|
||||
visit admin_conference_program_tracks_path(conference_id: conference.short_title)
|
||||
click_link 'Edit'
|
||||
|
||||
fill_in 'track_name', with: 'Distribution'
|
||||
|
|
|
|||
|
|
@ -11,7 +11,8 @@ describe 'User' do
|
|||
let(:user){ nil }
|
||||
|
||||
let(:conference_not_public) { create(:conference, splashpage: create(:splashpage, public: false)) }
|
||||
let(:conference_public) { create(:full_conference, splashpage: create(:splashpage, public: true), call_for_paper: create(:call_for_paper, schedule_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_unconfirmed) { create(:event) }
|
||||
|
|
@ -28,7 +29,11 @@ describe 'User' do
|
|||
it{ should be_able_to(:show, conference_public)}
|
||||
it{ should_not be_able_to(:show, conference_not_public)}
|
||||
|
||||
it{ should be_able_to(:schedule, conference_public)}
|
||||
it do
|
||||
conference_public.program.schedule_public = true
|
||||
conference_public.program.save
|
||||
should be_able_to(:schedule, conference_public)
|
||||
end
|
||||
it{ should_not be_able_to(:schedule, conference_not_public)}
|
||||
|
||||
it{ should be_able_to(:show, event_confirmed)}
|
||||
|
|
@ -89,12 +94,13 @@ describe 'User' do
|
|||
|
||||
context 'when user has the role organizer' do
|
||||
let!(:my_conference) { create(:full_conference) }
|
||||
let!(:my_cfp) { create(:cfp, program: my_conference.program) }
|
||||
let(:role) { create(:organizer_role, resource: my_conference) }
|
||||
let(:user) { create(:user, role_ids: [role.id], is_admin: false) }
|
||||
let(:registration) { create(:registration, conference: my_conference) }
|
||||
let(:other_registration) { create(:registration, conference: conference_public) }
|
||||
let(:event) { create(:event_full, conference: my_conference) }
|
||||
let(:other_event) { create(:event_full, conference: conference_public) }
|
||||
let(:event) { create(:event_full, program: my_conference.program) }
|
||||
let(:other_event) { create(:event_full, program: conference_public.program) }
|
||||
|
||||
it{ should be_able_to([:create, :new], Conference) }
|
||||
it{ should be_able_to(:manage, my_conference) }
|
||||
|
|
@ -115,8 +121,8 @@ describe 'User' do
|
|||
it{ should_not be_able_to(:manage, conference_public.registration_period) }
|
||||
it{ should be_able_to(:manage, my_conference.questions.first) }
|
||||
it{ should_not be_able_to(:manage, conference_public.questions.first) }
|
||||
it{ should be_able_to(:manage, my_conference.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, conference_public.call_for_paper) }
|
||||
it{ should be_able_to(:manage, my_conference.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, conference_public.program.cfp) }
|
||||
it{ should be_able_to(:manage, my_conference.venue) }
|
||||
it{ should_not be_able_to(:manage, conference_public.venue) }
|
||||
it{ should be_able_to(:manage, my_conference.lodgings.first) }
|
||||
|
|
@ -147,12 +153,13 @@ describe 'User' do
|
|||
|
||||
context 'when user has the role cfp' do
|
||||
let!(:my_conference) { create(:full_conference) }
|
||||
let!(:my_cfp) { create(:cfp, program: my_conference.program) }
|
||||
let(:role) { create(:cfp_role, resource: my_conference) }
|
||||
let(:user) { create(:user, role_ids: [role.id], is_admin: false) }
|
||||
let(:registration) { create(:registration, conference: my_conference) }
|
||||
let(:other_registration) { create(:registration, conference: conference_public) }
|
||||
let(:event) { create(:event_full, conference: my_conference) }
|
||||
let(:other_event) { create(:event_full, conference: conference_public) }
|
||||
let(:event) { create(:event_full, program: my_conference.program) }
|
||||
let(:other_event) { create(:event_full, program: conference_public.program) }
|
||||
|
||||
it{ should_not be_able_to([:create, :new], Conference.new) }
|
||||
it{ should_not be_able_to(:manage, my_conference) }
|
||||
|
|
@ -173,8 +180,8 @@ describe 'User' do
|
|||
it{ should_not be_able_to(:manage, conference_public.registration_period) }
|
||||
it{ should_not be_able_to(:manage, my_conference.questions.first) }
|
||||
it{ should_not be_able_to(:manage, conference_public.questions.first) }
|
||||
it{ should be_able_to(:manage, my_conference.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, conference_public.call_for_paper) }
|
||||
it{ should be_able_to(:manage, my_conference.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, conference_public.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, my_conference.venue) }
|
||||
it{ should be_able_to(:show, my_conference.venue) }
|
||||
it{ should_not be_able_to(:manage, conference_public.venue) }
|
||||
|
|
@ -206,12 +213,13 @@ describe 'User' do
|
|||
|
||||
context 'when user has the role info_desk' do
|
||||
let!(:my_conference) { create(:full_conference) }
|
||||
let!(:my_cfp) { create(:cfp, program: my_conference.program) }
|
||||
let(:role) { create(:info_desk_role, resource: my_conference) }
|
||||
let(:user) { create(:user, role_ids: [role.id], is_admin: false) }
|
||||
let(:registration) { create(:registration, conference: my_conference) }
|
||||
let(:other_registration) { create(:registration, conference: conference_public) }
|
||||
let(:event) { create(:event_full, conference: my_conference) }
|
||||
let(:other_event) { create(:event_full, conference: conference_public) }
|
||||
let(:event) { create(:event_full, program: my_conference.program) }
|
||||
let(:other_event) { create(:event_full, program: conference_public.program) }
|
||||
|
||||
it{ should_not be_able_to([:create, :new], Conference.new) }
|
||||
it{ should_not be_able_to(:manage, my_conference) }
|
||||
|
|
@ -232,8 +240,8 @@ describe 'User' do
|
|||
it{ should_not be_able_to(:manage, conference_public.registration_period) }
|
||||
it{ should be_able_to(:manage, my_conference.questions.first) }
|
||||
it{ should_not be_able_to(:manage, conference_public.questions.first) }
|
||||
it{ should_not be_able_to(:manage, my_conference.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, conference_public.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, my_conference.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, conference_public.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, my_conference.venue) }
|
||||
it{ should_not be_able_to(:show, my_conference.venue) }
|
||||
it{ should_not be_able_to(:manage, conference_public.venue) }
|
||||
|
|
@ -265,12 +273,13 @@ describe 'User' do
|
|||
|
||||
context 'when user has the role volunteers_coordinator' do
|
||||
let!(:my_conference) { create(:full_conference) }
|
||||
let!(:my_cfp) { create(:cfp, program: my_conference.program) }
|
||||
let(:role) { create(:volunteers_coordinator_role, resource: my_conference) }
|
||||
let(:user) { create(:user, role_ids: [role.id], is_admin: false) }
|
||||
let(:registration) { create(:registration, conference: my_conference) }
|
||||
let(:other_registration) { create(:registration, conference: conference_public) }
|
||||
let(:event) { create(:event_full, conference: my_conference) }
|
||||
let(:other_event) { create(:event_full, conference: conference_public) }
|
||||
let(:event) { create(:event_full, program: my_conference.program) }
|
||||
let(:other_event) { create(:event_full, program: conference_public.program) }
|
||||
|
||||
it{ should_not be_able_to([:create, :new], Conference.new) }
|
||||
it{ should_not be_able_to(:manage, my_conference) }
|
||||
|
|
@ -291,8 +300,8 @@ describe 'User' do
|
|||
it{ should_not be_able_to(:manage, conference_public.registration_period) }
|
||||
it{ should_not be_able_to(:manage, my_conference.questions.first) }
|
||||
it{ should_not be_able_to(:manage, conference_public.questions.first) }
|
||||
it{ should_not be_able_to(:manage, my_conference.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, conference_public.call_for_paper) }
|
||||
it{ should_not be_able_to(:manage, my_conference.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, conference_public.program.cfp) }
|
||||
it{ should_not be_able_to(:manage, my_conference.venue) }
|
||||
it{ should_not be_able_to(:show, my_conference.venue) }
|
||||
it{ should_not be_able_to(:manage, conference_public.venue) }
|
||||
|
|
|
|||
|
|
@ -1,38 +1,100 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe CallForPaper do
|
||||
describe Cfp do
|
||||
let!(:conference) { create(:conference, end_date: Date.today) }
|
||||
let!(:cfp) { build(:cfp, start_date: Date.today - 2, end_date: Date.today - 1, program_id: conference.program.id) }
|
||||
|
||||
describe '#before_end_of_conference' do
|
||||
describe 'fails to save cfp' do
|
||||
it 'when cfp end_date is after conference end_date' do
|
||||
cfp = build(:call_for_paper, end_date: Date.today + 1, conference_id: conference.id)
|
||||
expect(cfp.valid?).to be false
|
||||
cfp.end_date = Date.today + 1
|
||||
expect(cfp.valid?).to be false
|
||||
end
|
||||
|
||||
it 'when cfp start_date is after conference end_date' do
|
||||
cfp = build(:call_for_paper, end_date: Date.today + 1, conference_id: conference.id)
|
||||
expect(cfp.valid?).to be false
|
||||
cfp.start_date = Date.today + 1
|
||||
expect(cfp.valid?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
describe 'successfully saves cfp' do
|
||||
it 'when cfp end_date and start_date are not after conference end_date' do
|
||||
cfp = build(:call_for_paper, start_date: Date.today - 2, end_date: Date.today - 1, conference_id: conference.id)
|
||||
expect(cfp.valid?).to be true
|
||||
it 'when cfp end_date and start_date are before the conference end_date' do
|
||||
expect(cfp.valid?).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#start_after_end_date' do
|
||||
it 'fails when cfp start_date is after cfp end_date' do
|
||||
cfp = build(:call_for_paper, start_date: Date.today - 1, end_date: Date.today - 2, conference_id: conference.id)
|
||||
expect(cfp.valid?).to be false
|
||||
it 'succeeds when cfp start_date is after cfp end_date' do
|
||||
expect(cfp.valid?).to be true
|
||||
end
|
||||
|
||||
it 'succeeds when cfp start_date is after cfp end_date' do
|
||||
cfp = build(:call_for_paper, start_date: Date.today - 2, end_date: Date.today - 1, conference_id: conference.id)
|
||||
expect(cfp.valid?).to be true
|
||||
it 'fails when cfp start_date is after cfp end_date' do
|
||||
cfp.start_date = Date.today
|
||||
expect(cfp.valid?).to be false
|
||||
end
|
||||
end
|
||||
|
||||
describe '#notify_on_cfp_date_update?' do
|
||||
before :each do
|
||||
email_settings = conference.email_settings
|
||||
email_settings.send_on_cfp_dates_updates = true
|
||||
email_settings.cfp_dates_updates_subject = 'subject'
|
||||
email_settings.cfp_dates_updates_template = 'body text'
|
||||
email_settings.save!
|
||||
|
||||
cfp.save!
|
||||
end
|
||||
|
||||
describe 'returns true' do
|
||||
it 'when end_date changed' do
|
||||
cfp.end_date = Date.today
|
||||
expect(cfp.start_date_changed?).to eq false
|
||||
expect(cfp.end_date_changed?).to eq true
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq true
|
||||
end
|
||||
|
||||
it 'when start_date changed' do
|
||||
cfp.start_date = Date.today
|
||||
expect(cfp.end_date_changed?).to eq false
|
||||
expect(cfp.start_date_changed?).to eq true
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq true
|
||||
end
|
||||
end
|
||||
|
||||
describe 'returns false' do
|
||||
it 'when there is no change in cfp dates' do
|
||||
expect(cfp.start_date_changed?).to eq false
|
||||
expect(cfp.end_date_changed?).to eq false
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq false
|
||||
end
|
||||
|
||||
it 'when send_on_cfp_dates_updates is not set' do
|
||||
conference.email_settings.send_on_cfp_dates_updates = false
|
||||
conference.email_settings.save!
|
||||
cfp.end_date = Date.today
|
||||
|
||||
expect(cfp.end_date_changed?).to eq true
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq false
|
||||
end
|
||||
|
||||
it 'when cfp_dates_updates_subject is not set' do
|
||||
conference.email_settings.cfp_dates_updates_subject = ''
|
||||
conference.email_settings.save!
|
||||
cfp.end_date = Date.today
|
||||
|
||||
expect(cfp.end_date_changed?).to eq true
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq false
|
||||
end
|
||||
|
||||
it 'when cfp_dates_updates_template is not set' do
|
||||
conference.email_settings.cfp_dates_updates_template = ''
|
||||
conference.email_settings.save!
|
||||
cfp.end_date = Date.today
|
||||
|
||||
expect(cfp.end_date_changed?).to eq true
|
||||
expect(cfp.notify_on_cfp_date_update?).to eq false
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -48,26 +48,26 @@ describe Conference do
|
|||
subject.start_date = Date.today + 6.weeks
|
||||
subject.end_date = Date.today + 7.weeks
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today - 3.weeks)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks)
|
||||
|
||||
create(:event, conference: subject, created_at: Date.today)
|
||||
create(:event, program: subject.program, created_at: Date.today)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
|
||||
withdrawn = create(:event, conference: subject)
|
||||
withdrawn = create(:event, program: subject.program)
|
||||
withdrawn.withdraw!
|
||||
|
||||
unconfirmed = create(:event, conference: subject)
|
||||
unconfirmed = create(:event, program: subject.program)
|
||||
unconfirmed.accept!(options)
|
||||
|
||||
rejected = create(:event, conference: subject)
|
||||
rejected = create(:event, program: subject.program)
|
||||
rejected.reject!(options)
|
||||
|
||||
confirmed = create(:event, conference: subject)
|
||||
confirmed = create(:event, program: subject.program)
|
||||
confirmed.accept!(options)
|
||||
confirmed.confirm!
|
||||
|
||||
canceled = create(:event, conference: subject)
|
||||
canceled = create(:event, program: subject.program)
|
||||
canceled.accept!(options)
|
||||
canceled.cancel!
|
||||
|
||||
|
|
@ -115,11 +115,11 @@ describe Conference do
|
|||
}
|
||||
subject.events_per_week = db_data
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today - 3.weeks)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks)
|
||||
|
||||
create(:event, conference: subject, created_at: Date.today)
|
||||
unconfirmed = create(:event, conference: subject)
|
||||
confirmed = create(:event, conference: subject)
|
||||
create(:event, program: subject.program, created_at: Date.today)
|
||||
unconfirmed = create(:event, program: subject.program)
|
||||
confirmed = create(:event, program: subject.program)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
unconfirmed.accept!(options)
|
||||
|
|
@ -186,9 +186,9 @@ describe Conference do
|
|||
subject.events_per_week = db_data
|
||||
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today - 2.weeks)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today - 2.weeks)
|
||||
|
||||
create(:event, conference: subject, created_at: Date.today - 2.weeks)
|
||||
create(:event, program: subject.program, created_at: Date.today - 2.weeks)
|
||||
|
||||
result = {
|
||||
'Submitted' => [1, 1, 1],
|
||||
|
|
@ -203,8 +203,8 @@ describe Conference do
|
|||
subject.start_date = Date.today + 6.weeks
|
||||
subject.end_date = Date.today + 7.weeks
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today)
|
||||
create(:event, conference: subject)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today)
|
||||
create(:event, program: subject.program)
|
||||
|
||||
result = {
|
||||
'Submitted' => [1],
|
||||
|
|
@ -220,11 +220,11 @@ describe Conference do
|
|||
subject.start_date = Date.today + 6.weeks
|
||||
subject.end_date = Date.today + 7.weeks
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today - 3.weeks)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks)
|
||||
|
||||
create(:event, conference: subject, created_at: Date.today)
|
||||
unconfirmed = create(:event, conference: subject)
|
||||
confirmed = create(:event, conference: subject)
|
||||
create(:event, program: subject.program, created_at: Date.today)
|
||||
unconfirmed = create(:event, program: subject.program)
|
||||
confirmed = create(:event, program: subject.program)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
unconfirmed.accept!(options)
|
||||
|
|
@ -258,9 +258,9 @@ describe Conference do
|
|||
subject.events_per_week = db_data
|
||||
|
||||
subject.save
|
||||
subject.call_for_paper = create(:call_for_paper, start_date: Date.today - 3.weeks)
|
||||
subject.program.cfp = create(:cfp, start_date: Date.today - 3.weeks)
|
||||
|
||||
create(:event, conference: subject, created_at: Date.today - 3.weeks)
|
||||
create(:event, program: subject.program, created_at: Date.today - 3.weeks)
|
||||
|
||||
result = {
|
||||
'Submitted' => [1, 1, 1, 1],
|
||||
|
|
@ -278,7 +278,7 @@ describe Conference do
|
|||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
it 'calculates correct hash with top submitters' do
|
||||
event = create(:event, conference: subject)
|
||||
event = create(:event, program: subject.program)
|
||||
result = {
|
||||
event.submitter => 1
|
||||
}
|
||||
|
|
@ -286,11 +286,11 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'returns the submitter ordered by submissions' do
|
||||
e1 = create(:event, conference: subject)
|
||||
e1 = create(:event, program: subject.program)
|
||||
|
||||
e2 = create(:event, conference: subject)
|
||||
e3 = create(:event, conference: subject)
|
||||
e4 = create(:event, conference: subject)
|
||||
e2 = create(:event, program: subject.program)
|
||||
e3 = create(:event, program: subject.program)
|
||||
e4 = create(:event, program: subject.program)
|
||||
|
||||
e3.event_users = [create(:event_user, user: e2.submitter, event_role: 'submitter')]
|
||||
e4.event_users = [create(:event_user, user: e2.submitter, event_role: 'submitter')]
|
||||
|
|
@ -337,7 +337,7 @@ describe Conference do
|
|||
it 'returns 10 if there is 1 submissions of 10' do
|
||||
target = build(:target, target_count: 10, unit: Target.units[:submissions])
|
||||
subject.targets = [target]
|
||||
subject.events = [create(:event)]
|
||||
subject.program.events = [create(:event)]
|
||||
result = {
|
||||
"10 Submissions by #{target.due_date}" => '10'
|
||||
}
|
||||
|
|
@ -356,7 +356,7 @@ describe Conference do
|
|||
it 'returns 10 if there is 30 program minutes of 300' do
|
||||
target = build(:target, target_count: 300, unit: Target.units[:program_minutes])
|
||||
subject.targets = [target]
|
||||
subject.events = [create(:event)]
|
||||
subject.program.events = [create(:event)]
|
||||
result = {
|
||||
"300 Program minutes by #{target.due_date}" => '10'
|
||||
}
|
||||
|
|
@ -372,10 +372,10 @@ describe Conference do
|
|||
|
||||
describe '#actual_program_minutes' do
|
||||
it 'calculates correct values with events' do
|
||||
create(:event, conference: subject, event_type: @long)
|
||||
create(:event, conference: subject, event_type: @long)
|
||||
create(:event, conference: subject, event_type: @short)
|
||||
create(:event, conference: subject, event_type: @short)
|
||||
create(:event, program: subject.program, event_type: @long)
|
||||
create(:event, program: subject.program, event_type: @long)
|
||||
create(:event, program: subject.program, event_type: @short)
|
||||
create(:event, program: subject.program, event_type: @short)
|
||||
result_in_hours = 4
|
||||
result_in_minutes = 220
|
||||
expect(subject.current_program_hours).to eq(result_in_hours)
|
||||
|
|
@ -392,10 +392,10 @@ describe Conference do
|
|||
describe '#new_program_minutes' do
|
||||
it 'calculates correct values with events' do
|
||||
|
||||
create(:event, conference: subject, event_type: @long, created_at: Time.now - 3.days)
|
||||
create(:event, conference: subject, event_type: @long)
|
||||
create(:event, conference: subject, event_type: @short, created_at: Time.now - 3.days)
|
||||
create(:event, conference: subject, event_type: @short)
|
||||
create(:event, program: subject.program, event_type: @long, created_at: Time.now - 3.days)
|
||||
create(:event, program: subject.program, event_type: @long)
|
||||
create(:event, program: subject.program, event_type: @short, created_at: Time.now - 3.days)
|
||||
create(:event, program: subject.program, event_type: @short)
|
||||
result_in_hours = 2
|
||||
result_in_minutes = 110
|
||||
expect(subject.new_program_hours(Time.now - 5.minutes)).to eq(result_in_hours)
|
||||
|
|
@ -420,9 +420,9 @@ describe Conference do
|
|||
describe '#difficulty_levels_distribution' do
|
||||
|
||||
it 'calculates correct for different difficulty levels' do
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, conference: subject, difficulty_level: @hard)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @hard)
|
||||
result = {}
|
||||
result['Hard'] = {
|
||||
'value' => 1,
|
||||
|
|
@ -436,7 +436,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one difficulty levels' do
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
result = {}
|
||||
result['Easy'] = {
|
||||
'value' => 1,
|
||||
|
|
@ -453,18 +453,18 @@ describe Conference do
|
|||
|
||||
describe '#difficulty_levels_distribution_confirmed' do
|
||||
it 'calculates correct for different difficulty levels without confirmed' do
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, conference: subject, difficulty_level: @hard)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @hard)
|
||||
result = {}
|
||||
|
||||
expect(subject.difficulty_levels_distribution(:confirmed)).to eq(result)
|
||||
end
|
||||
|
||||
it 'calculates correct for different difficulty levels with confirmed' do
|
||||
confirmed_easy = create(:event, conference: subject, difficulty_level: @easy)
|
||||
create(:event, conference: subject, difficulty_level: @easy)
|
||||
confirmed_hard = create(:event, conference: subject, difficulty_level: @hard)
|
||||
confirmed_easy = create(:event, program: subject.program, difficulty_level: @easy)
|
||||
create(:event, program: subject.program, difficulty_level: @easy)
|
||||
confirmed_hard = create(:event, program: subject.program, difficulty_level: @hard)
|
||||
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
|
|
@ -486,7 +486,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one difficulty levels' do
|
||||
confirmed = create(:event, conference: subject, difficulty_level: @easy)
|
||||
confirmed = create(:event, program: subject.program, difficulty_level: @easy)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
confirmed.accept!(options)
|
||||
|
|
@ -510,15 +510,15 @@ describe Conference do
|
|||
describe 'event type distribution' do
|
||||
before do
|
||||
subject.email_settings = create(:email_settings)
|
||||
@workshop = create(:event_type, title: 'Workshop', color: '#000000', conference: subject)
|
||||
@lecture = create(:event_type, title: 'Lecture', color: '#ffffff', conference: subject)
|
||||
@workshop = create(:event_type, title: 'Workshop', color: '#000000', program: subject.program)
|
||||
@lecture = create(:event_type, title: 'Lecture', color: '#ffffff', program: subject.program)
|
||||
end
|
||||
|
||||
describe '#event_type_distribution' do
|
||||
it 'calculates correct for different event types' do
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, conference: subject, event_type: @lecture)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @lecture)
|
||||
result = {}
|
||||
result['Workshop'] = {
|
||||
'value' => 2,
|
||||
|
|
@ -532,7 +532,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one event types' do
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
result = {}
|
||||
result['Workshop'] = {
|
||||
'value' => 1,
|
||||
|
|
@ -549,18 +549,18 @@ describe Conference do
|
|||
|
||||
describe '#event_type_distribution_confirmed' do
|
||||
it 'calculates correct for different event types without confirmed' do
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, conference: subject, event_type: @lecture)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @lecture)
|
||||
result = {}
|
||||
|
||||
expect(subject.event_type_distribution(:confirmed)).to eq(result)
|
||||
end
|
||||
|
||||
it 'calculates correct for different event types with confirmed' do
|
||||
confirmed_ws = create(:event, conference: subject, event_type: @workshop)
|
||||
create(:event, conference: subject, event_type: @workshop)
|
||||
confirmed_lt = create(:event, conference: subject, event_type: @lecture)
|
||||
confirmed_ws = create(:event, program: subject.program, event_type: @workshop)
|
||||
create(:event, program: subject.program, event_type: @workshop)
|
||||
confirmed_lt = create(:event, program: subject.program, event_type: @lecture)
|
||||
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
|
|
@ -582,7 +582,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one event types' do
|
||||
confirmed = create(:event, conference: subject, event_type: @workshop)
|
||||
confirmed = create(:event, program: subject.program, event_type: @workshop)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
confirmed.accept!(options)
|
||||
|
|
@ -612,9 +612,9 @@ describe Conference do
|
|||
|
||||
describe '#tracks_distribution' do
|
||||
it 'calculates correct for different tracks' do
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
create(:event, conference: subject, track: @track_two)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_two)
|
||||
result = {}
|
||||
result['Track One'] = {
|
||||
'value' => 2,
|
||||
|
|
@ -628,7 +628,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one track' do
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
result = {}
|
||||
result['Track One'] = {
|
||||
'value' => 1,
|
||||
|
|
@ -645,18 +645,18 @@ describe Conference do
|
|||
|
||||
describe '#tracks_distribution_confirmed' do
|
||||
it 'calculates correct for different tracks without confirmed' do
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
create(:event, conference: subject, track: @track_two)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_two)
|
||||
result = {}
|
||||
|
||||
expect(subject.tracks_distribution(:confirmed)).to eq(result)
|
||||
end
|
||||
|
||||
it 'calculates correct for different tracks with confirmed' do
|
||||
confirmed_one = create(:event, conference: subject, track: @track_one)
|
||||
create(:event, conference: subject, track: @track_one)
|
||||
confirmed_two = create(:event, conference: subject, track: @track_two)
|
||||
confirmed_one = create(:event, program: subject.program, track: @track_one)
|
||||
create(:event, program: subject.program, track: @track_one)
|
||||
confirmed_two = create(:event, program: subject.program, track: @track_two)
|
||||
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
|
|
@ -678,7 +678,7 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for one track' do
|
||||
confirmed = create(:event, conference: subject, track: @track_one)
|
||||
confirmed = create(:event, program: subject.program, track: @track_one)
|
||||
options = {}
|
||||
options[:send_mail] = 'false'
|
||||
confirmed.accept!(options)
|
||||
|
|
@ -789,22 +789,22 @@ describe Conference do
|
|||
@options = {}
|
||||
@options[:send_mail] = 'false'
|
||||
|
||||
create(:event, conference: @conference)
|
||||
create(:event, program: @conference.program)
|
||||
|
||||
withdrawn = create(:event, conference: @conference)
|
||||
withdrawn = create(:event, program: @conference.program)
|
||||
withdrawn.withdraw!
|
||||
|
||||
unconfirmed = create(:event, conference: @conference)
|
||||
unconfirmed = create(:event, program: @conference.program)
|
||||
unconfirmed.accept!(@options)
|
||||
|
||||
rejected = create(:event, conference: @conference)
|
||||
rejected = create(:event, program: @conference.program)
|
||||
rejected.reject!(@options)
|
||||
|
||||
confirmed = create(:event, conference: @conference)
|
||||
confirmed = create(:event, program: @conference.program)
|
||||
confirmed.accept!(@options)
|
||||
confirmed.confirm!
|
||||
|
||||
canceled = create(:event, conference: @conference)
|
||||
canceled = create(:event, program: @conference.program)
|
||||
canceled.accept!(@options)
|
||||
canceled.cancel!
|
||||
|
||||
|
|
@ -822,20 +822,20 @@ describe Conference do
|
|||
end
|
||||
|
||||
it '#event_distribution does calculate correct values with no events' do
|
||||
@conference.events.clear
|
||||
@conference.program.events.clear
|
||||
expect(@conference.event_distribution).to eq({})
|
||||
end
|
||||
|
||||
it 'event_distribution does calculate correct values with just a new event' do
|
||||
conference = create(:conference)
|
||||
create(:event, conference: conference)
|
||||
create(:event, program: conference.program)
|
||||
result = { 'New' => { 'value' => 1, 'color' => '#0000FF' } }
|
||||
expect(conference.event_distribution).to eq(result)
|
||||
end
|
||||
|
||||
it 'event_distribution does calculate correct values with just an withdrawn event' do
|
||||
conference = create(:conference)
|
||||
event = create(:event, conference: conference)
|
||||
event = create(:event, program: conference.program)
|
||||
event.withdraw!
|
||||
result = { 'Withdrawn' => { 'value' => 1, 'color' => '#FF8000' } }
|
||||
expect(conference.event_distribution).to eq(result)
|
||||
|
|
@ -843,7 +843,7 @@ describe Conference do
|
|||
|
||||
it 'event_distribution does calculate correct values with just an unconfirmed event' do
|
||||
conference = create(:conference)
|
||||
event = create(:event, conference: conference)
|
||||
event = create(:event, program: conference.program)
|
||||
event.accept!(@options)
|
||||
result = { 'Unconfirmed' => { 'value' => 1, 'color' => '#FFFF00' } }
|
||||
expect(conference.event_distribution).to eq(result)
|
||||
|
|
@ -851,7 +851,7 @@ describe Conference do
|
|||
|
||||
it 'event_distribution does calculate correct values with just an rejected event' do
|
||||
conference = create(:conference)
|
||||
event = create(:event, conference: conference)
|
||||
event = create(:event, program: conference.program)
|
||||
event.reject!(@options)
|
||||
result = { 'Rejected' => { 'value' => 1, 'color' => '#FF0000' } }
|
||||
expect(conference.event_distribution).to eq(result)
|
||||
|
|
@ -860,7 +860,7 @@ describe Conference do
|
|||
it 'event_distribution does calculate correct values with just an confirmed event' do
|
||||
conference = create(:conference)
|
||||
conference.email_settings = create(:email_settings)
|
||||
event = create(:event, conference: conference)
|
||||
event = create(:event, program: conference.program)
|
||||
event.accept!(@options)
|
||||
event.confirm!
|
||||
result = { 'Confirmed' => { 'value' => 1, 'color' => '#00FF00' } }
|
||||
|
|
@ -869,7 +869,7 @@ describe Conference do
|
|||
|
||||
it 'event_distribution does calculate correct values with just an canceled event' do
|
||||
conference = create(:conference)
|
||||
event = create(:event, conference: conference)
|
||||
event = create(:event, program: conference.program)
|
||||
event.accept!(@options)
|
||||
event.cancel!
|
||||
result = { 'Canceled' => { 'value' => 1, 'color' => '#848484' } }
|
||||
|
|
@ -881,20 +881,20 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'self#event_distribution does calculate correct values with no events' do
|
||||
@conference.events.clear
|
||||
@conference.program.events.clear
|
||||
expect(Conference.event_distribution).to eq({})
|
||||
end
|
||||
|
||||
it 'self#event_distribution does calculate correct values with just a new event' do
|
||||
@conference.events.clear
|
||||
create(:event, conference: @conference)
|
||||
@conference.program.events.clear
|
||||
create(:event, program: @conference.program)
|
||||
result = { 'New' => { 'value' => 1, 'color' => '#0000FF' } }
|
||||
expect(Conference.event_distribution).to eq(result)
|
||||
end
|
||||
|
||||
it 'self#event_distribution does calculate correct values
|
||||
with just a new events from different conferences' do
|
||||
create(:event, conference: @conference)
|
||||
create(:event, program: @conference.program)
|
||||
@result['New'] = { 'value' => 2, 'color' => '#0000FF' }
|
||||
expect(Conference.event_distribution).to eq(@result)
|
||||
end
|
||||
|
|
@ -970,12 +970,12 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for new conference' do
|
||||
subject.call_for_paper = nil
|
||||
subject.program.cfp = nil
|
||||
subject.venue = nil
|
||||
subject.rooms = []
|
||||
subject.tracks = []
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.rooms = []
|
||||
subject.program.tracks = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
expect(subject.get_status).to eq(@result_false)
|
||||
|
|
@ -985,12 +985,12 @@ describe Conference do
|
|||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = nil
|
||||
subject.program.cfp = nil
|
||||
subject.venue = nil
|
||||
subject.rooms = []
|
||||
subject.tracks = []
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.event_types = []
|
||||
subject.program.tracks = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['registration'] = true
|
||||
|
|
@ -1003,12 +1003,12 @@ describe Conference do
|
|||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = nil
|
||||
subject.rooms = []
|
||||
subject.tracks = []
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.rooms = []
|
||||
subject.program.tracks = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['cfp'] = true
|
||||
|
|
@ -1022,12 +1022,12 @@ describe Conference do
|
|||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = create(:venue)
|
||||
subject.rooms = []
|
||||
subject.tracks = []
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.rooms = []
|
||||
subject.program.tracks = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['cfp'] = true
|
||||
|
|
@ -1039,15 +1039,15 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for conference with registration, cfp, venue, rooms' do
|
||||
subject.rooms = [create(:room)]
|
||||
subject.program.rooms = [create(:room)]
|
||||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = create(:venue)
|
||||
subject.tracks = []
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.tracks = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['cfp'] = true
|
||||
|
|
@ -1060,15 +1060,15 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for conference with registration, cfp, venue, rooms, tracks' do
|
||||
subject.rooms = [create(:room)]
|
||||
subject.tracks = [create(:track)]
|
||||
subject.program.rooms = [create(:room)]
|
||||
subject.program.tracks = [create(:track)]
|
||||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = create(:venue)
|
||||
subject.event_types = []
|
||||
subject.difficulty_levels = []
|
||||
subject.program.event_types = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['cfp'] = true
|
||||
|
|
@ -1083,15 +1083,15 @@ describe Conference do
|
|||
|
||||
it 'calculates correct for conference with registration, cfp,
|
||||
venue, rooms, tracks, event_types' do
|
||||
subject.rooms = [create(:room)]
|
||||
subject.tracks = [create(:track)]
|
||||
subject.event_types = [create(:event_type)]
|
||||
subject.program.rooms = [create(:room)]
|
||||
subject.program.tracks = [create(:track)]
|
||||
subject.program.event_types = [create(:event_type)]
|
||||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = create(:venue)
|
||||
subject.difficulty_levels = []
|
||||
subject.program.difficulty_levels = []
|
||||
subject.splashpage = create(:splashpage, public: false)
|
||||
|
||||
@result_false['cfp'] = true
|
||||
|
|
@ -1106,15 +1106,14 @@ describe Conference do
|
|||
end
|
||||
|
||||
it 'calculates correct for conference with all mandatory options' do
|
||||
subject.rooms = [create(:room)]
|
||||
subject.tracks = [create(:track)]
|
||||
subject.event_types = [create(:event_type)]
|
||||
subject.difficulty_levels = [create(:difficulty_level)]
|
||||
subject.program.rooms = [create(:room)]
|
||||
subject.program.tracks = [create(:track)]
|
||||
subject.program.event_types = [create(:event_type)]
|
||||
subject.program.difficulty_levels = [create(:difficulty_level)]
|
||||
subject.registration_period = create(:registration_period,
|
||||
start_date: Date.today,
|
||||
end_date: Date.today + 14)
|
||||
subject.venue = create(:venue)
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
subject.venue = create(:venue)
|
||||
subject.splashpage = create(:splashpage, public: true)
|
||||
|
||||
|
|
@ -1156,34 +1155,34 @@ describe Conference do
|
|||
describe '#cfp_weeks' do
|
||||
|
||||
it 'calculates new year' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2013, 12, 30)
|
||||
cfp.end_date = Date.new(2013, 12, 30) + 6
|
||||
subject.call_for_paper = cfp
|
||||
subject.program.cfp = cfp
|
||||
expect(subject.cfp_weeks).to eq(1)
|
||||
end
|
||||
|
||||
it 'is one if start and end are 6 days apart' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 6
|
||||
subject.call_for_paper = cfp
|
||||
subject.program.cfp = cfp
|
||||
expect(subject.cfp_weeks).to eq(1)
|
||||
end
|
||||
|
||||
it 'is one if start and end are the same date' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26)
|
||||
subject.call_for_paper = cfp
|
||||
subject.program.cfp = cfp
|
||||
expect(subject.cfp_weeks).to eq(1)
|
||||
end
|
||||
|
||||
it 'is two if start and end are 10 days apart' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 10
|
||||
subject.call_for_paper = cfp
|
||||
subject.program.cfp = cfp
|
||||
expect(subject.cfp_weeks).to eq(2)
|
||||
end
|
||||
end
|
||||
|
|
@ -1191,88 +1190,88 @@ describe Conference do
|
|||
describe '#get_submissions_per_week' do
|
||||
|
||||
it 'does calculate correct if cfp start date is altered' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) - 7)]
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 28
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 28)]
|
||||
subject.program.cfp = cfp
|
||||
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)]
|
||||
expect(subject.get_submissions_per_week).to eq([0, 1, 2, 2, 3])
|
||||
end
|
||||
|
||||
it 'summarized correct if there are submissions every week except the first' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26))]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 7)]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 14)]
|
||||
subject.program.cfp = cfp
|
||||
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)]
|
||||
expect(subject.get_submissions_per_week).to eq([1, 2, 3, 3])
|
||||
end
|
||||
|
||||
it 'pads left' do
|
||||
cfp = create(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)]
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26))]
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26) + 21)]
|
||||
subject.program.cfp = cfp
|
||||
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(:call_for_paper)
|
||||
cfp = create(:cfp)
|
||||
cfp.start_date = Date.new(2014, 05, 26)
|
||||
cfp.end_date = Date.new(2014, 05, 26) + 21
|
||||
subject.call_for_paper = cfp
|
||||
subject.events += [create(:event, created_at: Date.new(2014, 05, 26))]
|
||||
subject.program.cfp = cfp
|
||||
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
|
||||
end
|
||||
|
|
@ -1431,7 +1430,7 @@ describe Conference do
|
|||
context 'closed cfp' do
|
||||
|
||||
it '#cfp_open? is false' do
|
||||
expect(subject.cfp_open?).to be false
|
||||
expect(subject.program.cfp_open?).to be false
|
||||
end
|
||||
|
||||
end
|
||||
|
|
@ -1439,11 +1438,11 @@ describe Conference do
|
|||
context 'open cfp' do
|
||||
|
||||
before do
|
||||
subject.call_for_paper = create(:call_for_paper)
|
||||
subject.program.cfp = create(:cfp)
|
||||
end
|
||||
|
||||
it '#registration_open? is true' do
|
||||
expect(subject.cfp_open?).to be true
|
||||
expect(subject.program.cfp_open?).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
61
spec/models/program_spec.rb
Normal file
61
spec/models/program_spec.rb
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Program do
|
||||
let!(:conference) { create(:conference, end_date: Date.today + 3) }
|
||||
let!(:program) { conference.program }
|
||||
|
||||
describe '#rating_enabled?' do
|
||||
it 'returns true if proposals can be rated (program.rating > 0)' do
|
||||
program.rating = 3
|
||||
expect(program.rating_enabled?).to be true
|
||||
end
|
||||
|
||||
it 'returns false if proposals cannot be rated (program.ratinig == 0) ' do
|
||||
program = conference.program
|
||||
program.rating = 3
|
||||
expect(program.rating_enabled?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe '#cfp_open?' do
|
||||
describe 'returns true' do
|
||||
it 'when there is an open Call for Papers for the conference' do
|
||||
create(:cfp, start_date: Date.today - 2, end_date: Date.today, program_id: program.id)
|
||||
expect(program.cfp_open?).to be true
|
||||
end
|
||||
end
|
||||
|
||||
describe 'returns false' do
|
||||
it 'when there is no Call for Papers for the conference' do
|
||||
expect(program.cfp_open?).to be false
|
||||
end
|
||||
|
||||
it 'when the Call for Papers period is over' do
|
||||
build(:cfp, start_date: Date.today - 2, end_date: Date.today - 1, program_id: program.id)
|
||||
expect(program.cfp_open?).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'excecutes before_create functions' do
|
||||
it 'and creates events_types' do
|
||||
program.destroy!
|
||||
conference.reload
|
||||
expect(conference.program).to eq nil
|
||||
|
||||
create(:program, conference_id: conference.id)
|
||||
conference.reload
|
||||
expect(conference.program.event_types.count).to eq 2
|
||||
end
|
||||
|
||||
it 'and creates difficulty_levels' do
|
||||
program.destroy!
|
||||
conference.reload
|
||||
expect(conference.program).to eq nil
|
||||
|
||||
create(:program, conference_id: conference.id)
|
||||
conference.reload
|
||||
expect(conference.program.difficulty_levels.count).to eq 3
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -53,7 +53,7 @@ describe Target do
|
|||
end
|
||||
|
||||
it 'returns zero if there are no submissions' do
|
||||
conference = build(:conference)
|
||||
conference = create(:conference)
|
||||
target = build(:target, target_count: 10, unit: Target.units[:submissions])
|
||||
conference.targets = [target]
|
||||
|
||||
|
|
@ -66,13 +66,13 @@ describe Target do
|
|||
event = create(:event)
|
||||
|
||||
conference.targets = [target]
|
||||
conference.events = [event]
|
||||
conference.program.events = [event]
|
||||
|
||||
expect(target.get_progress).to eq('10')
|
||||
end
|
||||
|
||||
it 'returns zero if there are no program minutes' do
|
||||
conference = build(:conference)
|
||||
conference = create(:conference)
|
||||
target = build(:target, target_count: 10, unit: Target.units[:program_minutes])
|
||||
conference.targets = [target]
|
||||
|
||||
|
|
@ -85,7 +85,7 @@ describe Target do
|
|||
event = create(:event)
|
||||
|
||||
conference.targets = [target]
|
||||
conference.events = [event]
|
||||
conference.program.events = [event]
|
||||
|
||||
expect(target.get_progress).to eq('10')
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'admin/call_for_papers/show' do
|
||||
describe 'admin/cfps/show' do
|
||||
|
||||
it 'renders call for papers details' do
|
||||
assign :conference, create(:conference)
|
||||
assign :call_for_paper, create(:call_for_paper)
|
||||
conference = create(:conference)
|
||||
assign :conference, conference
|
||||
assign :program, conference.program
|
||||
assign :cfp, create(:cfp, program: conference.program)
|
||||
render
|
||||
expect(rendered).to include('Start Date')
|
||||
expect(rendered).to include('End Date')
|
||||
|
|
@ -5,6 +5,7 @@ describe 'admin/conference/show' do
|
|||
it 'renders conference dashboard' do
|
||||
conference = create(:conference, title: 'openSUSE')
|
||||
assign :conference, conference
|
||||
assign :program, conference.program
|
||||
assign :conference_progress, conference.get_status
|
||||
render
|
||||
expect(rendered).to include("Dashboard for #{conference.title}")
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@ require 'spec_helper'
|
|||
describe 'admin/difficulty_levels/index' do
|
||||
|
||||
it 'renders difficulty levels' do
|
||||
@difficulty_level = create(:difficulty_level)
|
||||
assign :conference, @difficulty_level.conference
|
||||
conference = create(:conference)
|
||||
@difficulty_level = create(:difficulty_level, program: conference.program)
|
||||
assign :conference, conference
|
||||
render
|
||||
expect(rendered).to include('Example Difficulty Level')
|
||||
expect(rendered).to include('Lorem Ipsum dolsum')
|
||||
|
|
|
|||
|
|
@ -3,8 +3,9 @@ require 'spec_helper'
|
|||
describe 'admin/event_types/index' do
|
||||
|
||||
it 'renders event types' do
|
||||
@event_type = create(:event_type)
|
||||
assign :conference, @event_type.conference
|
||||
conference = create(:conference)
|
||||
@event_type = create(:event_type, program: conference.program)
|
||||
assign :conference, @event_type.program.conference
|
||||
render
|
||||
expect(rendered).to include('Example Event Type')
|
||||
expect(rendered).to include('30')
|
||||
|
|
|
|||
|
|
@ -2,15 +2,17 @@ require 'spec_helper'
|
|||
|
||||
describe 'admin/events/index' do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:event1) { create(:event, conference: conference, title: 'event1') }
|
||||
let!(:event2) { create(:event, conference: conference, title: 'event2') }
|
||||
let!(:program) { conference.program }
|
||||
let!(:event1) { create(:event, program: conference.program, title: 'event1') }
|
||||
let!(:event2) { create(:event, program: conference.program, title: 'event2') }
|
||||
|
||||
it 'renders all conference events' do
|
||||
assign(:conference, conference)
|
||||
assign(:program, conference.program)
|
||||
assign(:events, [ event1, event2 ])
|
||||
assign(:event_types, [ create(:event_type, conference: conference), create(:event_type, conference: conference) ])
|
||||
assign(:tracks, [ create(:track, conference: conference), create(:track, conference: conference) ])
|
||||
assign(:difficulty_levels, [ create(:difficulty_level, conference: conference), create(:difficulty_level, conference: conference) ])
|
||||
assign(:event_types, [ create(:event_type, program: conference.program), create(:event_type, program: conference.program) ])
|
||||
assign(:tracks, [ create(:track, program: conference.program), create(:track, program: conference.program) ])
|
||||
assign(:difficulty_levels, [ create(:difficulty_level, program: conference.program), create(:difficulty_level, program: conference.program) ])
|
||||
|
||||
render
|
||||
|
||||
|
|
@ -25,7 +27,7 @@ describe 'admin/events/index' do
|
|||
expect(rendered).to have_selector('table thead th:nth-of-type(9)', text: 'Difficulty')
|
||||
expect(rendered).to have_selector('table thead th:nth-of-type(10)', text: 'State')
|
||||
|
||||
expect(conference.events.count).to eq 2
|
||||
expect(conference.program.events.count).to eq 2
|
||||
expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(1)', text: event1.id)
|
||||
expect(rendered).to have_selector('table tr:nth-of-type(1) td:nth-of-type(2)', text: 'event1')
|
||||
|
||||
|
|
|
|||
16
spec/views/admin/programs/show.html.haml_spec.rb
Normal file
16
spec/views/admin/programs/show.html.haml_spec.rb
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'admin/programs/show' do
|
||||
|
||||
it 'renders call for papers details' do
|
||||
conference = create(:conference)
|
||||
assign :conference, conference
|
||||
assign :program, conference.program
|
||||
render
|
||||
expect(rendered).to have_css('dt', text: 'Event types:')
|
||||
expect(rendered).to have_css('dd', text: 'Talks and Workshops')
|
||||
expect(rendered).to have_css('dt', text: 'Tracks:')
|
||||
expect(rendered).to have_css('dt', text: 'Difficulty Levels:')
|
||||
expect(rendered).to have_css('dd', text: 'Easy, Medium and Hard')
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +1,11 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'admin/rooms/index' do
|
||||
|
||||
it 'renders rooms list' do
|
||||
@room = create(:room)
|
||||
assign :conference, @room.conference
|
||||
conference = create(:conference)
|
||||
create(:room, name: 'Example Room', size: 4, program: conference.program)
|
||||
assign :conference, conference
|
||||
render
|
||||
expect(rendered).to include('Example Room')
|
||||
expect(rendered).to include('4')
|
||||
|
|
|
|||
|
|
@ -3,8 +3,10 @@ require 'spec_helper'
|
|||
describe 'admin/tracks/index' do
|
||||
|
||||
it 'renders tracks' do
|
||||
@track = create(:track)
|
||||
assign :conference, @track.conference
|
||||
conference = create(:conference)
|
||||
create(:track, name: 'Example Track', description: 'Lorem Ipsum dolsum', color: '#ffffff', program: conference.program)
|
||||
assign :tracks, conference.program.tracks
|
||||
assign :conference, conference
|
||||
render
|
||||
expect(rendered).to include('Example Track')
|
||||
expect(rendered).to include('Lorem Ipsum dolsum')
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ describe 'conference/show.html.haml' do
|
|||
before(:each) do
|
||||
allow(view).to receive(:date_string).and_return('January 17 - 21 2014')
|
||||
@conference = create(:conference, description: 'Lorem Ipsum')
|
||||
@program = @conference.program
|
||||
|
||||
@conference.splashpage = create(:splashpage,
|
||||
include_registrations: true,
|
||||
|
|
@ -25,7 +26,7 @@ describe 'conference/show.html.haml' do
|
|||
start_date: Date.yesterday,
|
||||
end_date: Date.tomorrow)
|
||||
|
||||
@conference.call_for_paper = create(:call_for_paper, conference: @conference)
|
||||
@conference.program.cfp = create(:cfp, program: @conference.program)
|
||||
|
||||
@conference.sponsorship_levels << create(:sponsorship_level, conference: @conference)
|
||||
@sponsorship_level = @conference.sponsorship_levels.first
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue