mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
Refactor organizer user creation in tests Fixes https://github.com/openSUSE/osem/issues/2398
78 lines
3.1 KiB
Ruby
78 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) { create(:organizer, email: 'admin@example.com', resource: conference) }
|
|
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
|