demarches-normaliennes/spec/controllers/manager/dossiers_controller_spec.rb
2023-12-12 15:25:39 +01:00

68 lines
1.9 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

include ActionView::Helpers::SanitizeHelper
describe Manager::DossiersController, type: :controller do
let(:super_admin) { create(:super_admin) }
before do
sign_in super_admin
procedure = create(:procedure, :published, types_de_champ_public: types_de_champ)
@dossier = create(:dossier, :en_construction, :with_populated_champs, procedure:)
end
let(:types_de_champ) { [] }
render_views
describe 'GET #index' do
it "should list dossiers" do
get :index
expect(response.body).to include(@dossier.procedure.libelle)
end
end
describe "GET #show" do
let(:types_de_champ) {
[
{ libelle: "Nom", mandatory: true }
]
}
before do
get :show, params: { id: @dossier.id }
end
subject { strip_tags(response.body) }
it { expect(subject).to match(%r{Nom\s+\*\s+Texte court\s+🟢\s+rempli}) }
end
describe "POST #transfer" do
before do
allow(DossierMailer).to receive(:notify_transfer).and_call_original
post :transfer, params: { id: @dossier.id, email: }
end
context 'with valid email' do
let(:email) { "chouette.gars@laposte.net" }
it { expect(flash[:success]).to eq("Une invitation de transfert a été envoyée à chouette.gars@laposte.net") }
it { expect(DossierMailer).to have_received(:notify_transfer) }
end
context 'with invalid email' do
let(:email) { "chouette" }
it { expect(flash[:alert]).to eq("Ladresse email est invalide") }
it { expect(DossierMailer).not_to have_received(:notify_transfer) }
end
end
describe "DELETE #transfer_destroy" do
before do
DossierTransfer.create(email: 'coucou@laposte.net', dossiers: [@dossier])
delete :transfer_destroy, params: { id: @dossier.id }
end
it { expect(@dossier.transfer).to be_nil }
it { expect(flash[:notice]).to eq "La demande de transfert a été supprimée avec succès" }
end
end