fix(dossier_transfer): avoid all transfers without valid email
Cf #7621
This commit is contained in:
parent
8dc966feb4
commit
a5d5f4307f
2 changed files with 21 additions and 4 deletions
|
@ -30,8 +30,14 @@ module Users
|
||||||
end
|
end
|
||||||
|
|
||||||
def transfer_all_dossiers
|
def transfer_all_dossiers
|
||||||
DossierTransfer.initiate(next_owner_email, current_user.dossiers)
|
transfer = DossierTransfer.initiate(next_owner_email, current_user.dossiers)
|
||||||
|
|
||||||
|
if transfer.valid?
|
||||||
flash.notice = t('.new_transfer', count: current_user.dossiers.count, email: next_owner_email)
|
flash.notice = t('.new_transfer', count: current_user.dossiers.count, email: next_owner_email)
|
||||||
|
else
|
||||||
|
flash.alert = transfer.errors.full_messages
|
||||||
|
end
|
||||||
|
|
||||||
redirect_to profil_path
|
redirect_to profil_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -133,15 +133,26 @@ describe Users::ProfilController, type: :controller do
|
||||||
let(:next_owner) { 'loulou@lou.com' }
|
let(:next_owner) { 'loulou@lou.com' }
|
||||||
let(:created_transfer) { DossierTransfer.first }
|
let(:created_transfer) { DossierTransfer.first }
|
||||||
|
|
||||||
before do
|
subject {
|
||||||
post :transfer_all_dossiers, params: { next_owner: next_owner }
|
post :transfer_all_dossiers, params: { next_owner: next_owner }
|
||||||
end
|
}
|
||||||
|
|
||||||
|
before { subject }
|
||||||
|
|
||||||
it "transfer all dossiers" do
|
it "transfer all dossiers" do
|
||||||
expect(created_transfer.email).to eq(next_owner)
|
expect(created_transfer.email).to eq(next_owner)
|
||||||
expect(created_transfer.dossiers).to match_array(dossiers)
|
expect(created_transfer.dossiers).to match_array(dossiers)
|
||||||
expect(flash.notice).to eq("Le transfert de 3 dossiers à #{next_owner} est en cours")
|
expect(flash.notice).to eq("Le transfert de 3 dossiers à #{next_owner} est en cours")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "next owner has an empty email" do
|
||||||
|
let(:next_owner) { '' }
|
||||||
|
|
||||||
|
it "should not transfer to an empty email" do
|
||||||
|
expect { subject }.not_to change { DossierTransfer.count }
|
||||||
|
expect(flash.alert).to eq(["L'adresse email est invalide"])
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'POST #accept_merge' do
|
context 'POST #accept_merge' do
|
||||||
|
|
Loading…
Reference in a new issue