Merge pull request #5145 from betagouv/5140-anonymisation-instructeurs
#5140 - Anonymisation de l'instructeur dans la messagerie
This commit is contained in:
commit
99ece20cb2
3 changed files with 45 additions and 3 deletions
|
@ -34,7 +34,11 @@ class Commentaire < ApplicationRecord
|
||||||
|
|
||||||
def redacted_email
|
def redacted_email
|
||||||
if instructeur.present?
|
if instructeur.present?
|
||||||
instructeur.email.split('@').first
|
if Flipper.enabled?(:hide_instructeur_email, dossier.procedure)
|
||||||
|
"Instructeur n° #{instructeur.id}"
|
||||||
|
else
|
||||||
|
instructeur.email.split('@').first
|
||||||
|
end
|
||||||
else
|
else
|
||||||
email
|
email
|
||||||
end
|
end
|
||||||
|
|
|
@ -44,11 +44,22 @@ describe Commentaire do
|
||||||
describe "#redacted_email" do
|
describe "#redacted_email" do
|
||||||
subject { commentaire.redacted_email }
|
subject { commentaire.redacted_email }
|
||||||
|
|
||||||
|
let(:procedure) { create(:procedure) }
|
||||||
|
let(:dossier) { create(:dossier, procedure: procedure) }
|
||||||
|
|
||||||
context 'with a commentaire created by a instructeur' do
|
context 'with a commentaire created by a instructeur' do
|
||||||
let(:commentaire) { build :commentaire, instructeur: instructeur }
|
let(:commentaire) { build :commentaire, instructeur: instructeur, dossier: dossier }
|
||||||
let(:instructeur) { build :instructeur, email: 'some_user@exemple.fr' }
|
let(:instructeur) { build :instructeur, email: 'some_user@exemple.fr' }
|
||||||
|
|
||||||
it { is_expected.to eq 'some_user' }
|
context 'when the procedure shows instructeurs email' do
|
||||||
|
before { Flipper.disable(:hide_instructeur_email, procedure) }
|
||||||
|
it { is_expected.to eq 'some_user' }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the procedure hides instructeurs email' do
|
||||||
|
before { Flipper.enable(:hide_instructeur_email, procedure) }
|
||||||
|
it { is_expected.to eq "Instructeur n° #{instructeur.id}" }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with a commentaire created by a user' do
|
context 'with a commentaire created by a user' do
|
||||||
|
|
|
@ -20,4 +20,31 @@ describe 'shared/dossiers/messages/message.html.haml', type: :view do
|
||||||
|
|
||||||
it { is_expected.to have_css(".highlighted") }
|
it { is_expected.to have_css(".highlighted") }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with an instructeur message' do
|
||||||
|
let(:instructeur) { create(:instructeur) }
|
||||||
|
let(:procedure) { create(:procedure) }
|
||||||
|
let(:commentaire) { create(:commentaire, instructeur: instructeur, body: 'Second message') }
|
||||||
|
let(:dossier) { create(:dossier, :en_construction, commentaires: [commentaire], procedure: procedure) }
|
||||||
|
|
||||||
|
context 'on a procedure with anonymous instructeurs' do
|
||||||
|
before { Flipper.enable_actor(:hide_instructeur_email, procedure) }
|
||||||
|
|
||||||
|
context 'redacts the instructeur email' do
|
||||||
|
it { is_expected.to have_text(commentaire.body) }
|
||||||
|
it { is_expected.to have_text("Instructeur n° #{instructeur.id}") }
|
||||||
|
it { is_expected.not_to have_text(instructeur.email) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on a procedure where instructeurs names are not redacted' do
|
||||||
|
before { Flipper.disable_actor(:hide_instructeur_email, procedure) }
|
||||||
|
|
||||||
|
context 'redacts the instructeur email but keeps the name' do
|
||||||
|
it { is_expected.to have_text(commentaire.body) }
|
||||||
|
it { is_expected.to have_text(instructeur.email.split('@').first) }
|
||||||
|
it { is_expected.not_to have_text(instructeur.email) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue