fix(dossier_transfer): require a valid email

Cf #7621
This commit is contained in:
Colin Darie 2022-08-02 15:20:33 +02:00
parent a5d5f4307f
commit d53aba4d24
3 changed files with 46 additions and 7 deletions

View file

@ -13,4 +13,33 @@ describe Users::TransfersController, type: :controller do
it { expect { dossier_transfert.reload }.to raise_error(ActiveRecord::RecordNotFound) }
end
describe "POST create" do
subject { post :create, params: { dossier_transfer: { email: email, dossier: dossier.id } } }
before { subject }
context "with valid email" do
let(:email) { "test@rspec.net" }
it { expect(DossierTransfer.last.email).to eq(email) }
it { expect(DossierTransfer.last.dossiers).to eq([dossier]) }
end
shared_examples 'email error' do
it { expect { subject }.not_to change { DossierTransfer.count } }
it { expect(flash.alert).to match([/invalide/]) }
it { is_expected.to redirect_to transferer_dossier_path(dossier.id) }
end
context "when email is empty" do
let(:email) { "" }
it_behaves_like 'email error'
end
context "when email is invalid" do
let(:email) { "not-an-email" }
it_behaves_like 'email error'
end
end
end