Merge pull request #3259 from betagouv/migrate-sign-in
Migration de la page sign_in vers le layout partagé
This commit is contained in:
commit
b9897f2722
22 changed files with 195 additions and 119 deletions
|
@ -14,7 +14,7 @@ footer {
|
||||||
@include vertical-padding(72px);
|
@include vertical-padding(72px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dossier-footer {
|
.procedure-footer {
|
||||||
@include vertical-padding(30px);
|
@include vertical-padding(30px);
|
||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
class Sessions::SessionsController < Devise::SessionsController
|
class Sessions::SessionsController < Devise::SessionsController
|
||||||
before_action :before_sign_in, only: [:create]
|
before_action :before_sign_in, only: [:create]
|
||||||
|
|
||||||
|
layout 'new_application'
|
||||||
|
|
||||||
def before_sign_in
|
def before_sign_in
|
||||||
if user_signed_in?
|
if user_signed_in?
|
||||||
sign_out :user
|
sign_out :user
|
||||||
|
|
|
@ -2,10 +2,12 @@ class Users::SessionsController < Sessions::SessionsController
|
||||||
include TrustedDeviceConcern
|
include TrustedDeviceConcern
|
||||||
include ActionView::Helpers::DateHelper
|
include ActionView::Helpers::DateHelper
|
||||||
|
|
||||||
|
layout 'procedure_context', only: [:new, :create]
|
||||||
|
|
||||||
# GET /resource/sign_in
|
# GET /resource/sign_in
|
||||||
def new
|
def new
|
||||||
if user_return_to_procedure_id.present? # WTF ?
|
if user_return_to_procedure_id.present?
|
||||||
@dossier = Dossier.new(procedure: Procedure.active(user_return_to_procedure_id))
|
@procedure = Procedure.active(user_return_to_procedure_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
@user = User.new
|
@user = User.new
|
||||||
|
|
8
app/views/layouts/commencer/_no_procedure.html.haml
Normal file
8
app/views/layouts/commencer/_no_procedure.html.haml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
.no-procedure
|
||||||
|
= image_tag "landing/hero/dematerialiser.svg", class: "paperless-logo"
|
||||||
|
.baseline.center
|
||||||
|
%h3 Un outil simple
|
||||||
|
%p
|
||||||
|
pour gérer les formulaires
|
||||||
|
%br
|
||||||
|
administratifs dématérialisés.
|
|
@ -0,0 +1,8 @@
|
||||||
|
.procedure-logos
|
||||||
|
= image_tag logo_img(procedure)
|
||||||
|
- if procedure.euro_flag
|
||||||
|
= image_tag "flag_of_europe.svg"
|
||||||
|
%h2.procedure-title
|
||||||
|
= procedure.libelle
|
||||||
|
.procedure-description
|
||||||
|
= h string_to_html(procedure.description)
|
|
@ -1,22 +1,22 @@
|
||||||
|
- procedure = @procedure || @dossier&.procedure || nil
|
||||||
|
|
||||||
- content_for :content do
|
- content_for :content do
|
||||||
.two-columns.procedure-context
|
.two-columns.procedure-context
|
||||||
.columns-container
|
.columns-container
|
||||||
|
|
||||||
.column.procedure-preview
|
.column.procedure-preview
|
||||||
- procedure = @dossier.procedure
|
- if procedure
|
||||||
.procedure-logos
|
= render partial: 'layouts/commencer/procedure_description', locals: { procedure: procedure }
|
||||||
= image_tag logo_img(procedure)
|
- else
|
||||||
- if procedure.euro_flag
|
= render partial: 'layouts/commencer/no_procedure'
|
||||||
= image_tag "flag_of_europe.svg"
|
|
||||||
%h2.procedure-title
|
|
||||||
= procedure.libelle
|
|
||||||
.procedure-description
|
|
||||||
= h string_to_html(procedure.description)
|
|
||||||
|
|
||||||
.column.procedure-context-content
|
.column.procedure-context-content
|
||||||
= yield
|
= yield
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { 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'
|
= render template: 'layouts/application'
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
%footer.dossier-footer
|
%footer.procedure-footer
|
||||||
.container
|
.container
|
||||||
- service = dossier.procedure.service
|
- service = procedure.service
|
||||||
- if service.present?
|
- if service.present?
|
||||||
%ul.footer-row.footer-columns
|
%ul.footer-row.footer-columns
|
||||||
%li.footer-column
|
%li.footer-column
|
||||||
|
@ -15,12 +15,12 @@
|
||||||
%li.footer-column
|
%li.footer-column
|
||||||
%h3.footer-header Poser une question sur votre dossier :
|
%h3.footer-header Poser une question sur votre dossier :
|
||||||
%p
|
%p
|
||||||
- if dossier.brouillon?
|
- if dossier.present? && !dossier.brouillon?
|
||||||
Par email :
|
|
||||||
= link_to service.email, "mailto:#{service.email}"
|
|
||||||
- else
|
|
||||||
Directement
|
Directement
|
||||||
= link_to "par la messagerie", messagerie_dossier_path(dossier)
|
= link_to "par la messagerie", messagerie_dossier_path(dossier)
|
||||||
|
- else
|
||||||
|
Par email :
|
||||||
|
= link_to service.email, "mailto:#{service.email}"
|
||||||
|
|
||||||
%p
|
%p
|
||||||
Par téléphone :
|
Par téléphone :
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
%p
|
%p
|
||||||
Horaires : #{ service.horaires.sub(/\S/, &:downcase) }
|
Horaires : #{ service.horaires.sub(/\S/, &:downcase) }
|
||||||
|
|
||||||
- politiques = politiques_conservation_de_donnees(dossier.procedure)
|
- politiques = politiques_conservation_de_donnees(procedure)
|
||||||
- if politiques.present?
|
- if politiques.present?
|
||||||
%li.footer-column
|
%li.footer-column
|
||||||
%h3.footer-header Conservation des données :
|
%h3.footer-header Conservation des données :
|
||||||
|
@ -37,4 +37,4 @@
|
||||||
%p= politique
|
%p= politique
|
||||||
|
|
||||||
.footer-row.footer-bottom-line
|
.footer-row.footer-bottom-line
|
||||||
= render partial: "new_user/dossiers/general_footer_row", locals: { dossier: @dossier }
|
= render partial: 'new_user/general_footer_row', locals: { dossier: dossier }
|
|
@ -1,4 +1,4 @@
|
||||||
%footer.dossier-footer
|
%footer.procedure-footer
|
||||||
.container
|
.container
|
||||||
.footer-row.footer-bottom-line
|
.footer-row.footer-bottom-line
|
||||||
= render partial: "new_user/dossiers/general_footer_row", locals: { dossier: nil }
|
= render partial: "new_user/general_footer_row", locals: { dossier: nil }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Modification du brouillon nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Modification du brouillon nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
.dossier-header.sub-header
|
.dossier-header.sub-header
|
||||||
.container
|
.container
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Demande · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Demande · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
#dossier-show
|
#dossier-show
|
||||||
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Informations sur l’établissement")
|
- content_for(:title, "Informations sur l’établissement")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
.etablissement
|
.etablissement
|
||||||
.container
|
.container
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Dossier bien envoyé (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Dossier bien envoyé (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
.merci
|
.merci
|
||||||
.container
|
.container
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Messagerie · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Messagerie · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
#dossier-show
|
#dossier-show
|
||||||
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Modifier · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Modifier · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
#dossier-show
|
#dossier-show
|
||||||
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
- content_for(:title, "Résumé · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
- content_for(:title, "Résumé · Dossier nº #{@dossier.id} (#{@dossier.procedure.libelle})")
|
||||||
|
|
||||||
- content_for :footer do
|
- content_for :footer do
|
||||||
= render partial: "new_user/dossiers/dossier_footer", locals: { dossier: @dossier }
|
= render partial: "new_user/procedure_footer", locals: { procedure: @dossier.procedure, dossier: @dossier }
|
||||||
|
|
||||||
#dossier-show
|
#dossier-show
|
||||||
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
= render partial: 'new_user/dossiers/show/header', locals: { dossier: @dossier }
|
||||||
|
|
|
@ -1,63 +1,39 @@
|
||||||
.two-columns.auth
|
.auth-form.sign-in-form
|
||||||
.columns-container
|
- if resource_name == :user
|
||||||
.column.procedure-preview
|
%p.register
|
||||||
- if !@dossier
|
%span
|
||||||
= image_tag "landing/hero/dematerialiser.svg", class: "paperless-logo"
|
Nouveau sur demarches-simplifiees.fr ?
|
||||||
.baseline.center
|
= link_to "Créer un compte", new_registration_path(resource_name), class: "button primary auth-signup-button"
|
||||||
%h3 Un outil simple
|
|
||||||
%p
|
%hr
|
||||||
pour gérer les formulaires
|
|
||||||
%br
|
= form_for @user, url: user_session_path, html: { class: "form" } do |f|
|
||||||
administratifs dématérialisés.
|
%h1 Connectez-vous
|
||||||
- else
|
|
||||||
|
= f.label :email, "Email"
|
||||||
|
= f.text_field :email, autofocus: true
|
||||||
|
|
||||||
|
= f.label :password, "Mot de passe"
|
||||||
|
= f.password_field :password, value: @user.password, placeholder: "8 caractères minimum"
|
||||||
|
|
||||||
|
.auth-options
|
||||||
|
- if devise_mapping.rememberable?
|
||||||
|
%div
|
||||||
|
= f.check_box :remember_me, as: :boolean
|
||||||
|
= f.label :remember_me, "Se souvenir de moi", class: 'remember-me'
|
||||||
|
|
||||||
|
- if [:user, :gestionnaire].include?(resource_name)
|
||||||
.text-right
|
.text-right
|
||||||
= link_to "Fermer", users_no_procedure_url, class: "link close-procedure"
|
= link_to "Mot de passe oublié ?", new_password_path(resource_name), class: "link"
|
||||||
.procedure-logos
|
|
||||||
= image_tag logo_img(@dossier.procedure)
|
|
||||||
- if @dossier.procedure.euro_flag
|
|
||||||
= image_tag "flag_of_europe.svg"
|
|
||||||
|
|
||||||
%h2.procedure-title
|
= f.submit "Se connecter", class: "button large primary expand"
|
||||||
= @dossier.procedure.libelle
|
|
||||||
.procedure-description
|
|
||||||
= h simple_format(@dossier.procedure.description)
|
|
||||||
|
|
||||||
.column.procedure-context-content.auth-form.sign-in-form
|
.separation.center
|
||||||
- if resource_name == :user
|
ou
|
||||||
%p.register
|
|
||||||
%span
|
|
||||||
Nouveau sur demarches-simplifiees.fr ?
|
|
||||||
= link_to "Créer un compte", new_registration_path(resource_name), class: "button primary auth-signup-button"
|
|
||||||
|
|
||||||
%hr
|
.center
|
||||||
|
= image_tag "login-with-fc-hover.svg", style: "display: none"
|
||||||
|
= link_to "", france_connect_particulier_path, class: "login-with-fc"
|
||||||
|
|
||||||
= form_for @user, url: user_session_path, html: { class: "form" } do |f|
|
.center
|
||||||
%h1 Connectez-vous
|
= link_to "Qu’est-ce que FranceConnect ?", "https://franceconnect.gouv.fr/", target: "_blank", class: "link"
|
||||||
|
|
||||||
= f.label :email, "Email"
|
|
||||||
= f.text_field :email, autofocus: true
|
|
||||||
|
|
||||||
= f.label :password, "Mot de passe"
|
|
||||||
= f.password_field :password, value: @user.password, placeholder: "8 caractères minimum"
|
|
||||||
|
|
||||||
.auth-options
|
|
||||||
- if devise_mapping.rememberable?
|
|
||||||
%div
|
|
||||||
= f.check_box :remember_me, as: :boolean
|
|
||||||
= f.label :remember_me, "Se souvenir de moi", class: 'remember-me'
|
|
||||||
|
|
||||||
- if [:user, :gestionnaire].include?(resource_name)
|
|
||||||
.text-right
|
|
||||||
= link_to "Mot de passe oublié ?", new_password_path(resource_name), class: "link"
|
|
||||||
|
|
||||||
= f.submit "Se connecter", class: "button large primary expand"
|
|
||||||
|
|
||||||
.separation.center
|
|
||||||
ou
|
|
||||||
|
|
||||||
.center
|
|
||||||
= image_tag "login-with-fc-hover.svg", style: "display: none"
|
|
||||||
= link_to "", france_connect_particulier_path, class: "login-with-fc"
|
|
||||||
|
|
||||||
.center
|
|
||||||
= link_to "Qu’est-ce que FranceConnect ?", "https://franceconnect.gouv.fr/", target: "_blank", class: "link"
|
|
||||||
|
|
56
spec/features/sessions/sign_in_spec.rb
Normal file
56
spec/features/sessions/sign_in_spec.rb
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
feature 'Signin in:' do
|
||||||
|
let!(:user) { create(:user, password: password) }
|
||||||
|
let(:password) { 'testpassword' }
|
||||||
|
|
||||||
|
scenario 'an existing user can sign-in' do
|
||||||
|
visit root_path
|
||||||
|
click_on 'Connexion'
|
||||||
|
|
||||||
|
sign_in_with user.email, password
|
||||||
|
|
||||||
|
expect(page).to have_current_path dossiers_path
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when visiting a procedure' do
|
||||||
|
let(:procedure) { create :simple_procedure, :with_service }
|
||||||
|
|
||||||
|
before do
|
||||||
|
visit commencer_path(path: procedure.path)
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'an existing user can sign-in and fill the procedure' do
|
||||||
|
expect(page).to have_current_path new_user_session_path
|
||||||
|
expect(page).to have_content procedure.libelle
|
||||||
|
expect(page).to have_content procedure.description
|
||||||
|
expect(page).to have_content procedure.service.email
|
||||||
|
|
||||||
|
sign_in_with user.email, password
|
||||||
|
|
||||||
|
expect(page).to have_current_path identite_dossier_path(user.reload.dossiers.last)
|
||||||
|
expect(page).to have_content procedure.libelle
|
||||||
|
expect(page).to have_content procedure.description
|
||||||
|
expect(page).to have_content "Données d'identité"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when a user is not confirmed yet' do
|
||||||
|
let!(:user) { create(:user, password: password, confirmed_at: nil) }
|
||||||
|
|
||||||
|
# Ideally, when signing-in with an unconfirmed account,
|
||||||
|
# the user would be redirected to the "resend email confirmation" page.
|
||||||
|
#
|
||||||
|
# However the check for unconfirmed accounts is made by Warden every time a page is loaded –
|
||||||
|
# and much earlier than SessionsController#create.
|
||||||
|
#
|
||||||
|
# For now only test the default behavior (an error message is displayed).
|
||||||
|
scenario 'they get an error message' do
|
||||||
|
visit root_path
|
||||||
|
click_on 'Connexion'
|
||||||
|
|
||||||
|
sign_in_with user.email, password
|
||||||
|
expect(page).to have_content 'Vous devez confirmer votre adresse email pour continuer'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -4,25 +4,61 @@ describe 'layouts/procedure_context.html.haml', type: :view do
|
||||||
let(:procedure) { create(:simple_procedure, :with_service) }
|
let(:procedure) { create(:simple_procedure, :with_service) }
|
||||||
let(:dossier) { create(:dossier, procedure: procedure) }
|
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||||
|
|
||||||
before do
|
|
||||||
assign(:dossier, dossier)
|
|
||||||
end
|
|
||||||
|
|
||||||
subject do
|
subject do
|
||||||
render html: 'Column content', layout: 'layouts/procedure_context.html.haml'
|
render html: 'Column content', layout: 'layouts/procedure_context.html.haml'
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders a description of the procedure' do
|
context 'when a procedure is assigned' do
|
||||||
expect(subject).to have_text(dossier.procedure.libelle)
|
before do
|
||||||
expect(subject).to have_text(dossier.procedure.description)
|
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
|
end
|
||||||
|
|
||||||
it 'renders the inner content' do
|
context 'when a dossier is assigned' do
|
||||||
expect(subject).to have_text('Column content')
|
before do
|
||||||
|
assign(:dossier, dossier)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'renders a description of the procedure' do
|
||||||
|
expect(subject).to have_text(dossier.procedure.libelle)
|
||||||
|
expect(subject).to have_text(dossier.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(dossier.procedure.service.nom)
|
||||||
|
expect(subject).to have_text(dossier.procedure.service.email)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'renders the dossier footer' do
|
context 'when neither procedure or dossier are assigned' do
|
||||||
expect(subject).to have_text(dossier.procedure.service.nom)
|
it 'renders a placeholder for the procedure' do
|
||||||
expect(subject).to have_text(dossier.procedure.service.email)
|
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
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
describe 'new_user/dossiers/_dossier_footer.html.haml', type: :view do
|
describe 'new_user/procedure_footer.html.haml', type: :view do
|
||||||
let(:service) { create(:service) }
|
let(:service) { create(:service) }
|
||||||
let(:dossier) {
|
let(:dossier) {
|
||||||
dossier = create(:dossier)
|
dossier = create(:dossier)
|
||||||
|
@ -6,7 +6,7 @@ describe 'new_user/dossiers/_dossier_footer.html.haml', type: :view do
|
||||||
return dossier
|
return dossier
|
||||||
}
|
}
|
||||||
|
|
||||||
subject { render 'new_user/dossiers/dossier_footer.html.haml', dossier: dossier }
|
subject { render 'new_user/procedure_footer.html.haml', procedure: dossier.procedure, dossier: dossier }
|
||||||
|
|
||||||
it "affiche les informations de contact" do
|
it "affiche les informations de contact" do
|
||||||
expect(subject).to have_text(service.nom)
|
expect(subject).to have_text(service.nom)
|
|
@ -10,24 +10,12 @@ describe 'users/sessions/new.html.haml', type: :view do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
assign(:user, User.new)
|
assign(:user, User.new)
|
||||||
|
render
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when user_return_to session params contains a procedure_id' do
|
it 'renders' do
|
||||||
before do
|
expect(rendered).to have_field('Email')
|
||||||
assign(:dossier, dossier)
|
expect(rendered).to have_field('Mot de passe')
|
||||||
render
|
expect(rendered).to have_button('Se connecter')
|
||||||
end
|
|
||||||
|
|
||||||
it { expect(rendered).to have_selector('.procedure-logos') }
|
|
||||||
it { expect(rendered).to have_content(dossier.procedure.libelle) }
|
|
||||||
it { expect(rendered).to have_content(dossier.procedure.description) }
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'when user_return_to session params not contains a procedure_id' do
|
|
||||||
before do
|
|
||||||
render
|
|
||||||
end
|
|
||||||
|
|
||||||
it { expect(rendered).to have_content('Un outil simple') }
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue