describe 'users/dossiers/etablissement', type: :view do let(:etablissement) { create(:etablissement, :with_exercices, siret: "12345678900001") } let(:dossier) { create(:dossier, etablissement: etablissement) } let(:footer) { view.content_for(:footer) } before do sign_in dossier.user assign(:dossier, dossier) allow_any_instance_of(APIEntrepriseToken).to receive(:roles).and_return([]) allow_any_instance_of(APIEntrepriseToken).to receive(:expired?).and_return(false) end subject! { render } it 'affiche les informations de l’établissement' do expect(rendered).to have_text("123 456 789 00001") expect(rendered).to have_text(etablissement.entreprise_raison_sociale) end context 'etablissement avec infos non diffusables' do let(:etablissement) { create(:etablissement, :with_exercices, :non_diffusable, siret: "12345678900001") } it "affiche uniquement le SIRET si infos non diffusables" do expect(rendered).to have_text("123 456 789 00001") expect(rendered).not_to have_text(etablissement.entreprise_raison_sociale) expect(rendered).not_to have_text(etablissement.entreprise.forme_juridique) end end it 'prépare le footer' do expect(footer).to have_selector('footer') end context 'etablissement as degraded mode' do let(:etablissement) { Etablissement.create!(siret: '41816609600051') } it "affiche une notice avec un lien de vérification vers l'annuaire" do expect(rendered).to have_text("418 166 096 00051") expect(rendered).to have_link("Vérifier dans l'annuaire des entreprises", href: "https://annuaire-entreprises\.data\.gouv\.fr/rechercher?terme=#{etablissement.siret}") end end end