From ad5c659f883ce2de284bec5aef652e9e44738efb Mon Sep 17 00:00:00 2001 From: Martin Date: Mon, 16 May 2022 15:54:16 +0200 Subject: [PATCH 1/2] bug(instructeurs/dossiers#destroy): redirect on destroyed dossier -> NotFound --- spec/system/instructeurs/instruction_spec.rb | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/spec/system/instructeurs/instruction_spec.rb b/spec/system/instructeurs/instruction_spec.rb index 8fa9daaf1..fcc541a97 100644 --- a/spec/system/instructeurs/instruction_spec.rb +++ b/spec/system/instructeurs/instruction_spec.rb @@ -69,12 +69,24 @@ describe 'Instructing a dossier:', js: true do click_on procedure.libelle click_on 'traité' - click_on 'Actions' + click_on 'Actions' # destroy from list click_on 'Supprimer le dossier' click_on 'traité' expect(page).not_to have_button('Actions') end + scenario 'An instructeur can destroy a dossier from view' do + log_in(instructeur.email, password) + + dossier.passer_en_instruction(instructeur: instructeur) + dossier.accepter!(instructeur: instructeur) + visit instructeur_dossier_path(procedure, dossier) + click_on 'Actions' # destroy from view + within '.user-dossier-actions' do + click_on 'Supprimer le dossier' + end + end + scenario 'A instructeur can follow/unfollow a dossier' do log_in(instructeur.email, password) From 2eb7da5227756361f1c5d037aa0a38b77e190cdc Mon Sep 17 00:00:00 2001 From: Paul Chavard Date: Tue, 17 May 2022 09:53:34 +0200 Subject: [PATCH 2/2] fix(dossier): redirect on not found dossiers --- app/controllers/instructeurs/dossiers_controller.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/controllers/instructeurs/dossiers_controller.rb b/app/controllers/instructeurs/dossiers_controller.rb index 3ac6681ae..b650015ee 100644 --- a/app/controllers/instructeurs/dossiers_controller.rb +++ b/app/controllers/instructeurs/dossiers_controller.rb @@ -8,6 +8,7 @@ module Instructeurs include ActionController::Streaming include Zipline + before_action :redirect_on_dossier_not_found, only: :show after_action :mark_demande_as_read, only: :show after_action :mark_messagerie_as_read, only: [:messagerie, :create_commentaire] after_action :mark_avis_as_read, only: [:avis, :create_avis] @@ -301,5 +302,11 @@ module Instructeurs "Le dossier est en ce moment #{dossier_display_state(exception.originating_state, lower: true)} : il n’est pas possible de le passer #{dossier_display_state(target_state, lower: true)}." end end + + def redirect_on_dossier_not_found + if !current_instructeur.dossiers.visible_by_administration.exists?(id: params[:dossier_id]) + redirect_to instructeur_procedure_path(procedure) + end + end end end