Skip to content

Commit

Permalink
Refactor middleware handling for resource registration and add suppor…
Browse files Browse the repository at this point in the history
…t for setting middleware for specific methods on registered resources
  • Loading branch information
MrPunyapal committed Oct 26, 2024
1 parent 3f28967 commit ccc583f
Showing 1 changed file with 24 additions and 7 deletions.
31 changes: 24 additions & 7 deletions tests/Routing/RouteRegistrarTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -851,13 +851,13 @@ public function testCanSetMiddlewareForSpecificMethodsOnRegisteredResource()
->middlewareFor(['create', 'store'], 'one')
->middlewareFor(['edit'],['one', 'two']);

$this->assertEquals($this->router->getRoutes()->getByName('users.index')->gatherMiddleware(),[RouteRegistrarMiddlewareStub::class]);
$this->assertEquals($this->router->getRoutes()->getByName('users.create')->gatherMiddleware(),['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.store')->gatherMiddleware(),['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.show')->gatherMiddleware(),[]);
$this->assertEquals($this->router->getRoutes()->getByName('users.edit')->gatherMiddleware(),['one', 'two']);
$this->assertEquals($this->router->getRoutes()->getByName('users.update')->gatherMiddleware(),[]);
$this->assertEquals($this->router->getRoutes()->getByName('users.destroy')->gatherMiddleware(),[]);
$this->assertEquals($this->router->getRoutes()->getByName('users.index')->gatherMiddleware(), [RouteRegistrarMiddlewareStub::class]);
$this->assertEquals($this->router->getRoutes()->getByName('users.create')->gatherMiddleware(), ['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.store')->gatherMiddleware(), ['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.show')->gatherMiddleware(), []);
$this->assertEquals($this->router->getRoutes()->getByName('users.edit')->gatherMiddleware(), ['one', 'two']);
$this->assertEquals($this->router->getRoutes()->getByName('users.update')->gatherMiddleware(), []);
$this->assertEquals($this->router->getRoutes()->getByName('users.destroy')->gatherMiddleware(), []);
}

public function testResourceWithoutMiddlewareRegistration()
Expand Down Expand Up @@ -1354,6 +1354,23 @@ public function testApiSingletonCanIncludeAnySingletonMethods()
$this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit'));
}

public function testCanSetMiddlewareForSpecificMethodsOnRegisteredSingletonResource()
{
$this->router->singleton('users', RouteRegistrarControllerStub::class)
->creatable()
->destroyable()
->middlewareFor('show', RouteRegistrarMiddlewareStub::class)
->middlewareFor(['create', 'store'], 'one')
->middlewareFor(['edit'],['one', 'two']);

$this->assertEquals($this->router->getRoutes()->getByName('users.create')->gatherMiddleware(), ['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.store')->gatherMiddleware(), ['one']);
$this->assertEquals($this->router->getRoutes()->getByName('users.show')->gatherMiddleware(), [RouteRegistrarMiddlewareStub::class]);
$this->assertEquals($this->router->getRoutes()->getByName('users.edit')->gatherMiddleware(), ['one', 'two']);
$this->assertEquals($this->router->getRoutes()->getByName('users.update')->gatherMiddleware(), []);
$this->assertEquals($this->router->getRoutes()->getByName('users.destroy')->gatherMiddleware(), []);
}

/**
* Get the last route registered with the router.
*
Expand Down

0 comments on commit ccc583f

Please sign in to comment.