mirror of
https://github.com/flarum/core.git
synced 2025-07-25 10:41:24 +02:00
Throw error if required route params missing (#3118)
Co-authored-by: Daniël Klabbers <daniel@klabbers.email> Co-authored-by: luceos <luceos@users.noreply.github.com> Co-authored-by: David Wheatley <hi@davwheat.dev> Co-authored-by: Sami Mazouz <sychocouldy@gmail.com>
This commit is contained in:
committed by
GitHub
parent
4add23a984
commit
87f67744a8
@@ -44,4 +44,41 @@ class RouteCollectionTest extends TestCase
|
||||
|
||||
$this->assertEquals('/posts', $routeCollection->getPath('forum.posts.delete'));
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function must_provide_required_parameters()
|
||||
{
|
||||
$this->expectException(\InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage("Could not generate URL for route 'user': no value provided for required part 'user'.");
|
||||
|
||||
$routeCollection = (new RouteCollection)->addRoute('GET', '/user/{user}', 'user', function () {
|
||||
echo 'user';
|
||||
});
|
||||
|
||||
$routeCollection->getPath('user', []);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function dont_need_to_provide_optional_parameters()
|
||||
{
|
||||
$routeCollection = (new RouteCollection)->addRoute('GET', '/user/{user}[/{test}]', 'user', function () {
|
||||
echo 'user';
|
||||
});
|
||||
|
||||
$path = $routeCollection->getPath('user', ['user' => 'SomeUser']);
|
||||
|
||||
$this->assertEquals('/user/SomeUser', $path);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function can_provide_optional_parameters()
|
||||
{
|
||||
$routeCollection = (new RouteCollection)->addRoute('GET', '/user/{user}[/{test}]', 'user', function () {
|
||||
echo 'user';
|
||||
});
|
||||
|
||||
$path = $routeCollection->getPath('user', ['user' => 'SomeUser', 'test' => 'Flarum']);
|
||||
|
||||
$this->assertEquals('/user/SomeUser/Flarum', $path);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user