Skip to content
This repository has been archived by the owner on Jan 3, 2025. It is now read-only.

Commit

Permalink
handle case where no competitor limit is set
Browse files Browse the repository at this point in the history
  • Loading branch information
dunkOnIT committed Oct 29, 2024
1 parent bff0ec7 commit 8072e31
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/services/registration_checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,8 @@ def validate_update_status!

raise RegistrationError.new(:unprocessable_entity, ErrorCodes::INVALID_REQUEST_DATA) unless Registration::REGISTRATION_STATES.include?(new_status)
raise RegistrationError.new(:forbidden, ErrorCodes::COMPETITOR_LIMIT_REACHED) if
new_status == 'accepted' && Registration.accepted_competitors_count(@competition_info.competition_id) == @competition_info.competitor_limit
new_status == 'accepted' && Registration.accepted_competitors_count(@competition_info.competition_id) == @competition_info.competitor_limit &&
@competition_info.competitor_limit != 0
raise RegistrationError.new(:forbidden, ErrorCodes::ALREADY_REGISTERED_IN_SERIES) if
new_status == 'accepted' && existing_registration_in_series?

Expand Down
9 changes: 9 additions & 0 deletions spec/services/registration_checker_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1104,6 +1104,15 @@
.not_to raise_error
end

it 'organizer can accept registrations if there is no limit' do
registration = FactoryBot.create(:registration, registration_status: 'pending')
competition_info = CompetitionInfo.new(FactoryBot.build(:competition, competitor_limit: 0))
update_request = FactoryBot.build(:update_request, :organizer_for_user, user_id: registration[:user_id], competing: { 'status' => 'accepted' })

expect { RegistrationChecker.update_registration_allowed!(update_request, competition_info, update_request['submitted_by']) }
.not_to raise_error
end

it 'user can change state to cancelled' do
override_registration = FactoryBot.create(:registration, user_id: 188000, registration_status: 'waiting_list')
update_request = FactoryBot.build(:update_request, user_id: override_registration[:user_id], competing: { 'status' => 'cancelled' })
Expand Down

0 comments on commit 8072e31

Please sign in to comment.