diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index ed076d9cf..d63881c96 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -6,8 +6,8 @@ class Users::SessionsController < Sessions::SessionsController # GET /resource/sign_in def new - if user_return_to_procedure_id.present? # WTF ? - @dossier = Dossier.new(procedure: Procedure.active(user_return_to_procedure_id)) + if user_return_to_procedure_id.present? + @procedure = Procedure.active(user_return_to_procedure_id) end @user = User.new diff --git a/app/views/layouts/procedure_context.html.haml b/app/views/layouts/procedure_context.html.haml index dc802a2a1..2199d581b 100644 --- a/app/views/layouts/procedure_context.html.haml +++ b/app/views/layouts/procedure_context.html.haml @@ -1,10 +1,12 @@ +- procedure = @procedure || @dossier&.procedure || nil + - content_for :content do .two-columns.procedure-context .columns-container .column.procedure-preview - - if @dossier - = render partial: 'layouts/commencer/procedure_description', locals: { procedure: @dossier.procedure } + - if procedure + = render partial: 'layouts/commencer/procedure_description', locals: { procedure: procedure } - else = render partial: 'layouts/commencer/no_procedure' @@ -12,8 +14,9 @@ = yield - content_for :footer do - / TODO: display the procedure footer even if there is no dossier yet - - if @dossier - = render partial: 'new_user/procedure_footer', locals: { procedure: @dossier.procedure, dossier: @dossier } + - if procedure + = render partial: 'new_user/procedure_footer', locals: { procedure: procedure, dossier: @dossier } + - else + = render partial: 'new_user/dossiers/index_footer' = render template: 'layouts/application' diff --git a/app/views/new_user/_procedure_footer.html.haml b/app/views/new_user/_procedure_footer.html.haml index 01da129d8..2ac523da8 100644 --- a/app/views/new_user/_procedure_footer.html.haml +++ b/app/views/new_user/_procedure_footer.html.haml @@ -15,7 +15,7 @@ %li.footer-column %h3.footer-header Poser une question sur votre dossier : %p - - if dossier.id && !dossier.brouillon? + - if dossier.present? && !dossier.brouillon? Directement = link_to "par la messagerie", messagerie_dossier_path(dossier) - else diff --git a/spec/views/layouts/procedure_context.html.haml_spec.rb b/spec/views/layouts/procedure_context.html.haml_spec.rb index 220a4d097..062a2d39d 100644 --- a/spec/views/layouts/procedure_context.html.haml_spec.rb +++ b/spec/views/layouts/procedure_context.html.haml_spec.rb @@ -8,6 +8,24 @@ describe 'layouts/procedure_context.html.haml', type: :view do render html: 'Column content', layout: 'layouts/procedure_context.html.haml' end + context 'when a procedure is assigned' do + before do + assign(:procedure, procedure) + end + + it 'renders a description of the procedure' do + expect(subject).to have_text(procedure.libelle) + expect(subject).to have_text(procedure.description) + end + + it 'renders the inner content' do + expect(subject).to have_text('Column content') + end + + it 'renders the procedure footer' do + expect(subject).to have_text(procedure.service.nom) + expect(subject).to have_text(procedure.service.email) + end end context 'when a dossier is assigned' do @@ -30,5 +48,17 @@ describe 'layouts/procedure_context.html.haml', type: :view do end end + context 'when neither procedure or dossier are assigned' do + it 'renders a placeholder for the procedure' do + expect(subject).to have_selector('.no-procedure') + end + + it 'renders the inner content' do + expect(subject).to have_text('Column content') + end + + it 'renders a generic footer' do + expect(subject).to have_text('Mentions légales') + end end end