Merge master
This commit is contained in:
commit
7586112f72
217 changed files with 2853 additions and 3035 deletions
|
|
@ -1,86 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
feature Conference do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
|
||||
shared_examples 'add and update cfp' do
|
||||
scenario 'adds a new cfp', feature: true, js: true do
|
||||
expected_count = Cfp.count + 1
|
||||
|
||||
sign_in organizer
|
||||
|
||||
visit new_admin_conference_program_cfp_path(conference.short_title)
|
||||
|
||||
click_button 'Create Cfp'
|
||||
|
||||
page.find('#flash')
|
||||
expect(flash)
|
||||
.to eq('Creating the call for papers failed. ' +
|
||||
"Start date can't be blank. End date can't be blank.")
|
||||
|
||||
today = Date.today - 1
|
||||
page.execute_script(
|
||||
"$('#registration-period-start-datepicker').val('#{today.strftime('%d/%m/%Y')}')")
|
||||
page.execute_script(
|
||||
"$('#registration-period-end-datepicker').val('#{(today + 6).strftime('%d/%m/%Y')}')")
|
||||
|
||||
click_button 'Create Cfp'
|
||||
|
||||
# Validations
|
||||
expect(flash)
|
||||
.to eq('Call for papers successfully created.')
|
||||
|
||||
visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
|
||||
expect(find('#start-date').text).to eq(today.strftime('%A, %B %-d. %Y'))
|
||||
expect(find('#end-date').text).to eq((today + 6).strftime('%A, %B %-d. %Y'))
|
||||
|
||||
expect(Cfp.count).to eq(expected_count)
|
||||
end
|
||||
|
||||
scenario 'update cfp', feature: true, js: true do
|
||||
create(:cfp, program: conference.program)
|
||||
expected_count = Cfp.count
|
||||
|
||||
sign_in organizer
|
||||
visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
|
||||
click_link 'Edit'
|
||||
|
||||
# Validate update with empty start date will not saved
|
||||
page.execute_script(
|
||||
"$('#registration-period-start-datepicker').val('')")
|
||||
click_button 'Update Cfp'
|
||||
page.find('#flash')
|
||||
expect(flash)
|
||||
.to eq('Updating call for papers failed. ' +
|
||||
"Start date can't be blank.")
|
||||
|
||||
# Fill in date
|
||||
today = Date.today - 9
|
||||
page.execute_script(
|
||||
"$('#registration-period-start-datepicker').val('#{today.strftime('%d/%m/%Y')}')")
|
||||
page.execute_script(
|
||||
"$('#registration-period-end-datepicker').val('#{(today + 14).strftime('%d/%m/%Y')}')")
|
||||
|
||||
click_button 'Update Cfp'
|
||||
|
||||
# Validations
|
||||
page.find('#flash')
|
||||
expect(flash)
|
||||
.to eq('Call for papers successfully updated.')
|
||||
|
||||
visit admin_conference_program_cfp_path(conference.short_title, conference.program.cfp)
|
||||
expect(find('#start-date').text).to eq(today.strftime('%A, %B %-d. %Y'))
|
||||
expect(find('#end-date').text).to eq((today + 14).strftime('%A, %B %-d. %Y'))
|
||||
expect(Cfp.count).to eq(expected_count)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'organizer' do
|
||||
it_behaves_like 'add and update cfp'
|
||||
end
|
||||
end
|
||||
|
|
@ -6,8 +6,7 @@ feature Commercial do
|
|||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program: conference.program) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user) }
|
||||
|
||||
context 'in admin area' do
|
||||
|
|
|
|||
|
|
@ -39,8 +39,7 @@ feature Conference do
|
|||
|
||||
scenario 'update conference', feature: true, js: true do
|
||||
conference = create(:conference)
|
||||
organizer_role = Role.find_by(name: 'organizer', resource: conference)
|
||||
organizer = create(:user, role_ids: [organizer_role.id])
|
||||
organizer = create(:organizer, resource: conference)
|
||||
|
||||
expected_count = Conference.count
|
||||
|
||||
|
|
@ -50,6 +49,14 @@ feature Conference do
|
|||
fill_in 'conference_title', with: 'New Con'
|
||||
fill_in 'conference_short_title', with: ''
|
||||
|
||||
day = Time.zone.today + 10
|
||||
page
|
||||
.execute_script("$('#conference-start-datepicker').val('" +
|
||||
"#{day.strftime('%d/%m/%Y')}')")
|
||||
page
|
||||
.execute_script("$('#conference-end-datepicker').val('" +
|
||||
"#{(day + 7).strftime('%d/%m/%Y')}')")
|
||||
|
||||
page.accept_alert do
|
||||
click_button 'Update Conference'
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature Contact do
|
||||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'contact field' do |field_name, field_value|
|
||||
it 'updates a contact' do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature DifficultyLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'difficulty levels' do
|
||||
scenario 'adds difficulty level', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature EmailSettings do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'email settings' do
|
||||
scenario 'updates email settings',
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature EventType do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'event types' do
|
||||
scenario 'adds and updates event type', feature: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Lodging do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
scenario 'Add a lodging', feature: true, js: true do
|
||||
path = "#{Rails.root}/app/assets/images/rails.png"
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Program do
|
|||
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:program) { conference.program }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
describe 'edit program' do
|
||||
before :each do
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Event do
|
|||
let!(:conference) { create(:conference) }
|
||||
let!(:registration_period) { create(:registration_period, conference: conference, start_date: Date.current) }
|
||||
let!(:cfp) { create(:cfp, program_id: conference.program.id) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user) }
|
||||
let!(:participant_without_bio) { create(:user, biography: '') }
|
||||
|
||||
|
|
@ -119,10 +118,11 @@ feature Event do
|
|||
fill_in 'event_title', with: 'Example Proposal'
|
||||
select('Example Event Type', from: 'event[event_type_id]')
|
||||
fill_in 'event_abstract', with: 'Lorem ipsum abstract'
|
||||
click_link 'Do you require something special?'
|
||||
expect(page).to have_text('You have used 3 words')
|
||||
|
||||
page.find('#event_description')
|
||||
click_link 'Do you require something special?'
|
||||
fill_in 'event_description', with: 'Lorem ipsum description'
|
||||
|
||||
click_button 'Create Proposal'
|
||||
|
||||
page.find('#flash')
|
||||
|
|
|
|||
|
|
@ -3,19 +3,21 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature RegistrationPeriod do
|
||||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:registration_ticket) { create(:registration_ticket, conference: conference) }
|
||||
let!(:organizer) { create(:organizer, email: 'admin@example.com', resource: conference) }
|
||||
let(:start_date) { Date.today }
|
||||
let(:end_date) { Date.today + 5 }
|
||||
|
||||
shared_examples 'successfully' do
|
||||
scenario 'create and update registration period', js: true do
|
||||
context 'as organizer' do
|
||||
before do
|
||||
sign_in organizer
|
||||
visit admin_conference_registration_period_path(
|
||||
conference_id: conference.short_title)
|
||||
visit admin_conference_registration_period_path(conference_id: conference)
|
||||
click_link 'New Registration Period'
|
||||
end
|
||||
|
||||
scenario 'requires start date and end date', feature: true do
|
||||
visit admin_conference_registration_period_path(conference_id: conference)
|
||||
click_link 'New Registration Period'
|
||||
|
||||
click_button 'Save Registration Period'
|
||||
|
|
@ -23,27 +25,54 @@ feature RegistrationPeriod do
|
|||
expect(flash)
|
||||
.to eq('An error prohibited the Registration Period from being saved: ' \
|
||||
"Start date can't be blank. End date can't be blank.")
|
||||
page.find('#flash .close').click
|
||||
page
|
||||
.execute_script("$('#registration-period-start-datepicker').val('" +
|
||||
"#{Date.today.strftime('%d/%m/%Y')}')")
|
||||
page
|
||||
.execute_script("$('#registration-period-end-datepicker').val('" +
|
||||
"#{(Date.today + 5).strftime('%d/%m/%Y')}')")
|
||||
end
|
||||
|
||||
click_button 'Save Registration Period'
|
||||
page.find('#flash')
|
||||
expect(flash).to eq('Registration Period successfully updated.')
|
||||
expect(current_path).to eq(admin_conference_registration_period_path(conference.short_title))
|
||||
context 'with tickets' do
|
||||
let!(:registration_ticket) do
|
||||
create(:registration_ticket, conference: conference)
|
||||
end
|
||||
|
||||
registration_period = RegistrationPeriod.where(conference_id: conference.id).first
|
||||
registration_period.reload
|
||||
expect(registration_period.start_date).to eq(Date.today)
|
||||
expect(registration_period.end_date).to eq(Date.today + 5)
|
||||
it 'creates registration period', feature: true, js: true do
|
||||
page
|
||||
.execute_script("$('#registration-period-start-datepicker').val('" +
|
||||
"#{start_date.strftime('%d/%m/%Y')}')")
|
||||
page
|
||||
.execute_script("$('#registration-period-end-datepicker').val('" +
|
||||
"#{end_date.strftime('%d/%m/%Y')}')")
|
||||
|
||||
click_button 'Save Registration Period'
|
||||
page.find('#flash')
|
||||
expect(flash).to eq('Registration Period successfully updated.')
|
||||
expect(current_path).to eq(admin_conference_registration_period_path(conference.short_title))
|
||||
expect(page).to have_text("Ticket required?\nYes")
|
||||
|
||||
registration_period = RegistrationPeriod.where(conference_id: conference.id).first
|
||||
registration_period.reload
|
||||
expect(registration_period.start_date).to eq(start_date)
|
||||
expect(registration_period.end_date).to eq(end_date)
|
||||
end
|
||||
end
|
||||
|
||||
context 'without tickets' do
|
||||
it 'creates registration period', feature: true, js: true do
|
||||
page
|
||||
.execute_script("$('#registration-period-start-datepicker').val('" +
|
||||
"#{start_date.strftime('%d/%m/%Y')}')")
|
||||
page
|
||||
.execute_script("$('#registration-period-end-datepicker').val('" +
|
||||
"#{end_date.strftime('%d/%m/%Y')}')")
|
||||
|
||||
click_button 'Save Registration Period'
|
||||
page.find('#flash')
|
||||
expect(flash).to eq('Registration Period successfully updated.')
|
||||
expect(current_path).to eq(admin_conference_registration_period_path(conference.short_title))
|
||||
expect(page).to have_text("Ticket required?\nNo")
|
||||
|
||||
registration_period = RegistrationPeriod.where(conference_id: conference.id).first
|
||||
registration_period.reload
|
||||
expect(registration_period.start_date).to eq(start_date)
|
||||
expect(registration_period.end_date).to eq(end_date)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'organizer' do
|
||||
it_behaves_like 'successfully'
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature Room do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:venue) { create(:venue, conference: conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'rooms' do
|
||||
scenario 'adds a room', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -6,8 +6,7 @@ feature Splashpage do
|
|||
|
||||
# It is necessary to use bang version of let to build roles before user
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let!(:participant) { create(:user, biography: '', is_admin: false) }
|
||||
|
||||
scenario 'create a valid splashpage', js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Sponsor do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'sponsors' do
|
||||
scenario 'adds and updates sponsors', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature SponsorshipLevel do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'sponsorship_levels' do
|
||||
scenario 'adds a sponsorship level', feature: true, js: true do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Ticket do
|
||||
let!(:conference) { create(:conference, title: 'ExampleCon') }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, email: 'admin@example.com', role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
context 'as a organizer' do
|
||||
before(:each) do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Track do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
shared_examples 'admin tracks' do
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'venue' do
|
||||
scenario 'adds and updates venue' do
|
||||
|
|
|
|||
|
|
@ -5,8 +5,7 @@ require 'spec_helper'
|
|||
feature 'Version' do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:cfp) { create(:cfp, program: conference.program) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
let(:event_with_commercial) { create(:event, program: conference.program) }
|
||||
let(:event_commercial) { create(:event_commercial, commercialable: event_with_commercial, url: 'https://www.youtube.com/watch?v=M9bq_alk-sw') }
|
||||
|
||||
|
|
@ -212,7 +211,7 @@ feature 'Version' do
|
|||
|
||||
visit admin_revision_history_path
|
||||
expect(page).to have_text("#{organizer.name} submitted new event ABC in conference #{conference.short_title}")
|
||||
expect(page).to have_text("#{organizer.name} updated difficulty level and subtitle of event ABC in conference #{conference.short_title}")
|
||||
expect(page).to have_text("#{organizer.name} updated subtitle and difficulty level of event ABC in conference #{conference.short_title}")
|
||||
expect(page).to have_text("#{organizer.name} rejected event ABC in conference #{conference.short_title}")
|
||||
expect(page).to have_text("#{organizer.name} resubmitted event ABC in conference #{conference.short_title}")
|
||||
expect(page).to have_text("#{organizer.name} accepted event ABC in conference #{conference.short_title}")
|
||||
|
|
|
|||
|
|
@ -4,8 +4,7 @@ require 'spec_helper'
|
|||
|
||||
feature Conference do
|
||||
let!(:conference) { create(:conference) }
|
||||
let!(:organizer_role) { Role.find_by(name: 'organizer', resource: conference) }
|
||||
let!(:organizer) { create(:user, role_ids: [organizer_role.id]) }
|
||||
let!(:organizer) { create(:organizer, resource: conference) }
|
||||
|
||||
shared_examples 'volunteer' do
|
||||
scenario 'adds and updates vdays', feature: true, js: true do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue