Files
Portfolio-Codex/tests/router.test.php
2026-02-04 17:06:28 +01:00

33 lines
1.0 KiB
PHP

<?php
require_once __DIR__ . '/../includes/router.php';
function assertTrue($cond, $msg) {
if (!$cond) {
fwrite(STDERR, $msg . PHP_EOL);
exit(1);
}
}
$router = new Router();
$router
->add('/', 'pages/home.php')
->add('/projets', 'pages/projects.php')
->add('/projet/{slug}', 'pages/project-single.php');
[$handler, $params] = $router->resolve('/');
assertTrue($handler === 'pages/home.php', 'home route failed');
[$handler, $params] = $router->resolve('/projets');
assertTrue($handler === 'pages/projects.php', 'projects route failed');
[$handler, $params] = $router->resolve('/projet/ecommerce-xyz');
assertTrue($handler === 'pages/project-single.php', 'project route failed');
assertTrue(($params[0] ?? '') === 'ecommerce-xyz', 'slug param failed');
[$handler, $params] = $router->resolve('/unknown');
assertTrue($handler === 'pages/404.php', '404 route failed');
[$handler, $params] = $router->resolve('/projets/');
assertTrue($handler === 'pages/projects.php', 'trailing slash failed');
fwrite(STDOUT, "OK\n");