diff --git a/app/controllers/youth/event/participations_controller.rb b/app/controllers/youth/event/participations_controller.rb index bc5887d..d00166b 100644 --- a/app/controllers/youth/event/participations_controller.rb +++ b/app/controllers/youth/event/participations_controller.rb @@ -14,6 +14,11 @@ module Youth::Event::ParticipationsController alias_method_chain :return_path, :managed alias_method_chain :after_destroy_path, :managed alias_method_chain :set_success_notice, :managed + + def current_user_interested_in_mail? + # send email to kind and verwalter + current_user.and_manageds.map(&:id).include? entry.person_id + end end def cancel diff --git a/spec/controllers/event/participations_controller_spec.rb b/spec/controllers/event/participations_controller_spec.rb index da5f1a0..f1fcd29 100644 --- a/spec/controllers/event/participations_controller_spec.rb +++ b/spec/controllers/event/participations_controller_spec.rb @@ -36,6 +36,25 @@ end context 'POST#create' do + let(:pending_dj_handlers) { Delayed::Job.all.pluck(:handler) } + let(:user) { people(:bottom_member) } + + it "sends confirmation mail when manager registers managed" do + PeopleManager.create!(manager_id: people(:top_leader).id, managed_id: user.id) + course.update!(waiting_list: false, maximum_participants: 2, participant_count: 1, automatic_assignment: true) + + expect do + post :create, params: {group_id: group.id, event_id: course.id, event_participation: {person_id: user.id}} + expect(assigns(:participation)).to be_valid + end.to change { Delayed::Job.count } + + expect(pending_dj_handlers).to be_one { |h| h =~ /Event::ParticipationNotificationJob/ } + expect(pending_dj_handlers).to be_one { |h| h =~ /Event::ParticipationConfirmationJob/ } + + expect(flash[:notice]) + .to include "Teilnahme von #{user} in Eventus wurde erfolgreich erstellt. Bitte überprüfe die Kontaktdaten und passe diese gegebenenfalls an." + expect(flash[:warning]).to be_nil + end it 'sets participation state to applied' do post :create,