✨ Story 3.2: router php urls
This commit is contained in:
33
tests/router.test.php
Normal file
33
tests/router.test.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?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");
|
||||
Reference in New Issue
Block a user