<?php
/**
 * Bootstrap des tests unitaires PHP.
 *
 * Définit des constantes de test puis charge les includes du projet
 * SANS aucun appel réseau : PEERTUBE_URL pointe volontairement sur
 * 127.0.0.1, ce qui fait échouer isValidPeerTubeUrl() et court-circuite
 * callPeerTubeApiOriginal() (retour [] immédiat, jamais de cURL). De ce
 * fait, initCategories() — appelée au chargement de config.php — est
 * neutralisée et PEERTUBE_CATEGORIES vaut un tableau vide.
 *
 * Les constantes sont définies AVANT le chargement de config.php pour
 * primer sur les valeurs de config.default.php (protégées par !defined()).
 */

define('APP_HOST_NAME', 'test.local');
define('SITE_NAME', 'Site de test');
define('CSRF_SECRET', 'secret-csrf-pour-tests-unitaires');
define('PEERTUBE_URL', 'http://127.0.0.1'); // URL privée volontaire : bloque tout appel API réel
define('CACHE_ENABLED', true);
define('CACHE_DURATION', 3600);
define('DEFAULT_TIMEZONE', 'UTC');

// Ne pas polluer la sortie des tests avec les error_log() de sécurité
// (ex. "Invalid PeerTube URL", attendu avec l'URL factice ci-dessus)
ini_set('error_log', sys_get_temp_dir() . '/annu-kute-tests-errors.log');

$includes_dir = dirname(__DIR__, 2) . '/includes';

require_once $includes_dir . '/security.php';
require_once $includes_dir . '/simple-cache.php';
require_once $includes_dir . '/lib/markdown.php';
require_once $includes_dir . '/structured-data.php';
require_once $includes_dir . '/config.php'; // fournit les fonctions de formatage
