mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-15 12:44:03 +00:00
Requiring a ticket after registration is convoluted; while it may be neccesary for some workflows, it definitely isn't for others, and the core of osem doesn't need it... so let's make it optional.
79 lines
3.1 KiB
Ruby
79 lines
3.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
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(:start_date) { Date.today }
|
|
let(:end_date) { Date.today + 5 }
|
|
|
|
context 'as organizer' do
|
|
before do
|
|
sign_in organizer
|
|
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'
|
|
page.find('#flash')
|
|
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.")
|
|
end
|
|
|
|
context 'with tickets' do
|
|
let!(:registration_ticket) do
|
|
create(:registration_ticket, conference: conference)
|
|
end
|
|
|
|
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
|
|
end
|