demarches-normaliennes/spec/views/administrateurs/experts_procedures/index.html.haml_spec.rb

56 lines
1.8 KiB
Ruby

describe 'administrateurs/experts_procedures/index', type: :view do
let!(:procedure) { create(:procedure, :published) }
before do
assign(:procedure, procedure)
assign(:procedure_lien, commencer_url(path: procedure.path))
allow(view).to receive(:current_administrateur).and_return(procedure.administrateurs.first)
end
subject { render }
context 'when the procedure has 0 avis' do
let!(:dossier) { create(:dossier, procedure: procedure) }
before do
@invited_experts = procedure.experts_procedures
subject
end
it 'has 0 experts into the page' do
expect(@invited_experts.count).to eq(0)
expect(@invited_experts).to eq([])
end
end
context 'when the procedure has 3 avis from 2 experts and 1 unasigned' do
let!(:dossier) { create(:dossier, procedure: procedure) }
let!(:avis) { create(:avis, dossier: dossier) }
let!(:avis2) { create(:avis, dossier: dossier) }
before do
@invited_experts = procedure.experts_procedures
subject
end
it 'has 2 experts and match array' do
expect(@invited_experts.count).to eq(2)
expect(@invited_experts).to match_array([avis.experts_procedure, avis2.experts_procedure])
end
end
context 'when the experts_require_administrateur_invitation is false' do
it 'authorize instructors to invite any expert' do
expect(rendered).not_to have_content "Affecter des experts à la démarche"
end
end
context 'when the experts_require_administrateur_invitation is true' do
let!(:procedure) { create(:procedure, :published, experts_require_administrateur_invitation: true) }
before do
subject
end
it 'does not authorize instructors to invite any expert but only those presents in admin list' do
expect(rendered).to have_content "Affecter des experts à la démarche"
end
end
end