Procedures: redirect to avis if suitable
This commit is contained in:
parent
3dfd77e914
commit
112e3a5793
2 changed files with 48 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
module NewGestionnaire
|
module NewGestionnaire
|
||||||
class ProceduresController < GestionnaireController
|
class ProceduresController < GestionnaireController
|
||||||
before_action :ensure_ownership!, except: [:index]
|
before_action :ensure_ownership!, except: [:index]
|
||||||
|
before_action :redirect_to_avis_if_needed, only: [:index]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@procedures = current_gestionnaire.procedures.order(archived_at: :desc, published_at: :desc)
|
@procedures = current_gestionnaire.procedures.order(archived_at: :desc, published_at: :desc)
|
||||||
|
@ -76,5 +77,11 @@ module NewGestionnaire
|
||||||
redirect_to root_path
|
redirect_to root_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def redirect_to_avis_if_needed
|
||||||
|
if current_gestionnaire.procedures.count == 0 && current_gestionnaire.avis.count > 0
|
||||||
|
redirect_to avis_index_path
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,6 +42,47 @@ describe NewGestionnaire::ProceduresController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "before_action: redirect_to_avis_if_needed" do
|
||||||
|
it "is present" do
|
||||||
|
before_actions = NewGestionnaire::ProceduresController
|
||||||
|
._process_action_callbacks
|
||||||
|
.find_all{|process_action_callbacks| process_action_callbacks.kind == :before}
|
||||||
|
.map(&:filter)
|
||||||
|
|
||||||
|
expect(before_actions).to include(:redirect_to_avis_if_needed)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "redirect_to_avis_if_needed" do
|
||||||
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
expect(@controller).to receive(:current_gestionnaire).at_least(:once).and_return(gestionnaire)
|
||||||
|
allow(@controller).to receive(:redirect_to)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when a gestionnaire has some procedures" do
|
||||||
|
let!(:some_procedure) { create(:procedure, gestionnaires: [gestionnaire]) }
|
||||||
|
|
||||||
|
before { @controller.send(:redirect_to_avis_if_needed) }
|
||||||
|
|
||||||
|
it "does not redirects nor flash" do
|
||||||
|
expect(@controller).not_to have_received(:redirect_to)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when a gestionnaire has no procedure and some avis" do
|
||||||
|
before do
|
||||||
|
Avis.create!(dossier: create(:dossier), claimant: create(:gestionnaire), gestionnaire: gestionnaire)
|
||||||
|
@controller.send(:redirect_to_avis_if_needed)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "redirects avis" do
|
||||||
|
expect(@controller).to have_received(:redirect_to).with(avis_index_path)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#index" do
|
describe "#index" do
|
||||||
let(:gestionnaire) { create(:gestionnaire) }
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
subject { get :index }
|
subject { get :index }
|
||||||
|
|
Loading…
Reference in a new issue