get(route('legal'))->assertOk()->assertSee('Esquisse Formation')->assertSee('entrepreneur individuel (EI)')->assertSee('SIREN 838 093 268')->assertSee('RCS Paris 433 115 904'); $this->get(route('confidentialite'))->assertOk() ->assertSee('90 jours après l’archivage', false) ->assertSee('aucune adresse e-mail', false) ->assertSee('cdn.tailwindcss.com'); $this->get(route('statut'))->assertRedirect('https://status.syllabuslab.fr'); }); test('« Conforme au RGPD » renvoie à la politique de confidentialité, et rien n’affiche « Hébergé en France · Paris »', function () { $accueil = $this->get(route('accueil'))->getContent(); expect($accueil)->toContain('href="'.route('confidentialite').'" style="color:#0b1220">Conforme au RGPD') ->and($accueil)->toContain(route('statut')) ->and($accueil)->not->toContain('· Paris') ->and($accueil)->not->toContain('20 cursus'); }); test('les pages d’aperçu sont signalées et ne citent aucun vrai établissement comme utilisateur', function () { // Noms cherchés un par un : dans les tableaux, nom et ville sont dans // deux cellules différentes (un premier test qui les cherchait collés // laissait passer « Lycée Vauban | Brest »). $vraisNoms = '/Vauban|Condorcet|Saint-Exupéry|Louis-Armand|Jean-Jaurès|Villetaneuse|Gustave-Eiffel|Martinière|Académie de (Créteil|Paris)/'; $apercus = ['/classes/suivi', '/examen', '/banque', '/quiz/projection', '/quiz', '/bibliotheque', '/generateur', '/labs/web', '/maison', '/devoirs', '/td/imprimer', '/cockpit', '/mon-espace', '/vie-scolaire', '/eleves/fiche', '/correction', '/sujets/creer', '/messagerie', '/exports', '/academie', '/paiement', '/paiement/confirme', '/compte/facturation', '/etablissement', '/cohortes', '/visio', '/ressources/outil', '/ide', '/labs/essai', '/cours/adressage-ipv4', '/cours/adressage-ipv4/cm', '/cours/fiche']; foreach ($apercus as $route) { $page = $this->get($route)->assertOk()->getContent(); expect($page)->toContain('Aperçu d’une fonction en préparation') ->and($page)->not->toMatch($vraisNoms, $route); } });