Paillasse/portail/tests/Feature/PagesLegalesTest.php

37 lines
2.3 KiB
PHP
Raw Normal View History

<?php
test('les pages légales sont en ligne et la page de statut redirige vers le site de statut', function () {
$this->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</a>')
->and($accueil)->toContain(route('statut'))
->and($accueil)->not->toContain('· Paris</span>')
->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);
}
});