refactor(fc_info): use Dsfr::Notice for france connect informations

This commit is contained in:
Colin Darie 2022-09-14 16:19:14 +02:00
parent ab82128585
commit fcb478eb53
15 changed files with 73 additions and 77 deletions

View file

@ -1,12 +0,0 @@
@import "constants";
.france-connect-informations.card {
width: 100%;
padding-top: $default-spacer;
padding-bottom: $default-spacer;
}
.france-connect-informations-logo img {
width: 100px;
margin-right: $default-padding;
}

View file

@ -115,4 +115,16 @@ module DossierHelper
end
end
end
def france_connect_informations(user_information)
if user_information.full_name.empty?
t("shared.dossiers.france_connect_informations.details_no_name")
elsif user_information.updated_at.present?
t("shared.dossiers.france_connect_informations.details_updated",
name: user_information.full_name,
date: l(user_information.updated_at.to_date, format: :default))
else
t("shared.dossiers.france_connect_informations.details", name: user_information.full_name)
end
end
end

View file

@ -100,3 +100,6 @@
%li.fr-nav__item= active_link_to t('.files'), dossiers_path, active: :inclusive, class: 'fr-nav__link'
- if current_user.expert && current_expert.avis_summary[:total] > 0
= render partial: 'layouts/header/avis_tab', locals: { current_expert: current_expert }
= yield(:notice_info)

View file

@ -48,6 +48,7 @@
= render partial: "layouts/header"
%main{ role: :main }
= render partial: "layouts/flash_messages"
= content_for?(:content) ? yield(:content) : yield
- if content_for?(:footer)

View file

@ -1,3 +1,7 @@
- if dossier.france_connect_information.present?
- content_for(:notice_info) do
= render partial: "shared/dossiers/france_connect_informations_notice", locals: { user_information: dossier.france_connect_information }
.container
- if dossier.depose_at.present?
.card
@ -11,9 +15,6 @@
modifié le
= try_format_datetime(dossier.identity_updated_at)
- if dossier.france_connect_information.present?
= render partial: "shared/dossiers/france_connect_informations", locals: { user_information: dossier.france_connect_information }
.card
= render partial: "shared/dossiers/user_infos", locals: { user_deleted: dossier.user_deleted?, email: dossier.user_email_for(:display) }

View file

@ -1,3 +1,7 @@
- if dossier.france_connect_information.present?
- content_for(:notice_info) do
= render partial: "shared/dossiers/france_connect_informations_notice", locals: { user_information: dossier.france_connect_information }
.dossier-edit.container
= render partial: "shared/dossiers/submit_is_over", locals: { dossier: dossier }
@ -22,9 +26,6 @@
class: "fr-btn fr-btn--secondary mt-2",
title: t("views.shared.dossiers.edit.notice_title"), **external_link_attributes
- if dossier.france_connect_information.present?
= render partial: "shared/dossiers/france_connect_informations", locals: { user_information: dossier.france_connect_information }
- if dossier.show_groupe_instructeur_selector?
%span{ data: { controller: 'autosave' } }
= f.label :groupe_instructeur_id do

View file

@ -1,13 +0,0 @@
.fr-tile.fr-tile--horizontal.mb-4
.fr-tile__body
%h4.fr-tile__title
FranceConnect
%p
- if user_information.full_name.empty?
= t("views.shared.dossiers.france_connect_informations.details_no_name")
- elsif user_information.updated_at.present?
= t("views.shared.dossiers.france_connect_informations.details_updated", name: user_information.full_name, date: l(user_information.updated_at.to_date, format: :default))
- else
= t("views.shared.dossiers.france_connect_informations.details", name: user_information.full_name)
.fr-tile__img
= image_tag "logo-france-connect.png", alt: "", class: "fr-responsive-img"

View file

@ -0,0 +1,3 @@
= render Dsfr::NoticeComponent.new(closable: true) do |c|
- c.with_title do
= france_connect_informations(user_information)

View file

@ -145,10 +145,6 @@ fr:
form: "Formulaire"
edit_siret: "Modifier le SIRET"
edit_identity: "Modifier lidentité"
france_connect_informations:
details_no_name: "Le dossier a été déposé par un compte FranceConnect."
details: "Le dossier a été déposé par le compte de %{name}."
details_updated: "Le dossier a été déposé par le compte de %{name}, authentifié par FranceConnect le %{date}."
instructeurs:
dossiers:
tab_steps:

View file

@ -1,6 +1,10 @@
en:
shared:
dossiers:
france_connect_informations:
details_no_name: "The file was submitted by a FranceConnect account."
details: "The file was submitted by the account of %{name}."
details_updated: "The file was submitted by the account of %{name}, authenticated by FranceConnect on %{date}."
header:
expires_at:
brouillon: "Expires on %{date} (%{duree_conservation_totale} months after this file was created)"

View file

@ -1,6 +1,10 @@
fr:
shared:
dossiers:
france_connect_informations:
details_no_name: "Le dossier a été déposé par un compte FranceConnect."
details: "Le dossier a été déposé par le compte de %{name}."
details_updated: "Le dossier a été déposé par le compte de %{name}, authentifié par FranceConnect le %{date}."
header:
expires_at:
brouillon: "Expirera le %{date} (%{duree_conservation_totale} mois après la création du dossier)"

View file

@ -215,4 +215,40 @@ RSpec.describe DossierHelper, type: :helper do
it { is_expected.to eq('without_continuation') }
end
end
describe ".france_connect_information" do
subject { france_connect_informations(user_information) }
context "with complete france_connect information" do
let(:user_information) { build(:france_connect_information, updated_at: Time.zone.now) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.given_name} #{user_information.family_name}, authentifié par FranceConnect le #{user_information.updated_at.strftime('%d/%m/%Y')}")
}
end
context "with missing updated_at" do
let(:user_information) { build(:france_connect_information, updated_at: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.given_name} #{user_information.family_name}")
expect(subject).not_to have_text("authentifié par FranceConnect le ")
}
end
context "with missing given_name" do
let(:user_information) { build(:france_connect_information, given_name: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.family_name}")
}
end
context "with all names missing" do
let(:user_information) { build(:france_connect_information, given_name: nil, family_name: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par un compte FranceConnect.")
}
end
end
end

View file

@ -30,7 +30,7 @@ describe 'instructeurs/dossiers/show.html.haml', type: :view do
end
it 'fills the individual with the informations from France Connect' do
expect(rendered).to have_text("Le dossier a été déposé par le compte de #{france_connect_information.given_name} #{france_connect_information.family_name}, authentifié par FranceConnect le #{france_connect_information.updated_at.strftime('%d/%m/%Y')}")
expect(view.content_for(:notice_info)).to have_text("Le dossier a été déposé par le compte de #{france_connect_information.given_name} #{france_connect_information.family_name}, authentifié par FranceConnect le #{france_connect_information.updated_at.strftime('%d/%m/%Y')}")
end
end
end

View file

@ -1,40 +0,0 @@
describe 'shared/dossiers/france_connect_informations.html.haml', type: :view do
subject do
render(
'shared/dossiers/france_connect_informations.html.haml',
user_information: user_information
)
end
context "with complete france_connect information" do
let(:user_information) { build(:france_connect_information, updated_at: Time.zone.now) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.given_name} #{user_information.family_name}, authentifié par FranceConnect le #{user_information.updated_at.strftime('%d/%m/%Y')}")
}
end
context "with missing updated_at" do
let(:user_information) { build(:france_connect_information, updated_at: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.given_name} #{user_information.family_name}")
expect(subject).not_to have_text("authentifié par FranceConnect le ")
}
end
context "with missing given_name" do
let(:user_information) { build(:france_connect_information, given_name: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par le compte de #{user_information.family_name}")
}
end
context "with all names missing" do
let(:user_information) { build(:france_connect_information, given_name: nil, family_name: nil) }
it {
expect(subject).to have_text("Le dossier a été déposé par un compte FranceConnect.")
}
end
end

View file

@ -45,7 +45,7 @@ describe 'users/dossiers/demande.html.haml', type: :view do
end
it 'fills the individual with the informations from France Connect' do
expect(rendered).to have_text("Le dossier a été déposé par le compte de #{france_connect_information.given_name} #{france_connect_information.family_name}, authentifié par FranceConnect le #{france_connect_information.updated_at.strftime('%d/%m/%Y')}")
expect(view.content_for(:notice_info)).to have_text("Le dossier a été déposé par le compte de #{france_connect_information.given_name} #{france_connect_information.family_name}, authentifié par FranceConnect le #{france_connect_information.updated_at.strftime('%d/%m/%Y')}")
end
end
end