Skip to content

Commit

Permalink
Fix withoutMiddleware method
Browse files Browse the repository at this point in the history
  • Loading branch information
nicollassilva committed Aug 10, 2021
1 parent d9db77c commit 491c640
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 6 deletions.
5 changes: 2 additions & 3 deletions src/Router/Middlewares/MiddlewareCollection.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,8 @@ public function removeMiddleware($middleware)
*
* @param array $middleware
*
* @return string|array
*/
private function destroyMiddleware(Array $middleware)
private function destroyMiddleware(Array $middleware): void
{
$currentMiddleware = $this->middlewares;

Expand All @@ -119,7 +118,7 @@ private function destroyMiddleware(Array $middleware)
}
}

return $currentMiddleware;
$this->middlewares = $currentMiddleware;
}

/**
Expand Down
3 changes: 3 additions & 0 deletions src/Router/RouteManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ class RouteManager

/** @var string */
protected $separator;

/** @var object */
protected $middleware;

/** @var array */
protected $where = [];
Expand Down
6 changes: 3 additions & 3 deletions src/Traits/RouteManagerUtils.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,6 @@

trait RouteManagerUtils
{
/** @var object */
protected $middleware;

public abstract function getDefaultName();
public abstract function setName(String $name);
public abstract function setWhereData(String $key, String $value);
Expand Down Expand Up @@ -133,6 +130,9 @@ public function withoutMiddleware($middleware)
return;
}

$this->middleware = clone $this->middleware;
$this->middleware->removeMiddleware($middleware);

return $this;
}
}
31 changes: 31 additions & 0 deletions tests/RouteGroupsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -100,4 +100,35 @@ public function check_names_and_that_all_routes_within_the_group_have_an_instanc
}
});
}

/**
* @test
*/
public function check_if_all_routes_have_group_middleware()
{
Route::middleware("isLogged")
->namespace("App\Http\Controllers")
->prefix("user")
->name("user.")
->group(function() {
$routes = [
Route::get("/", ["User", "index"])->name("index"),
Route::put("/settings", ["User", "updateSettings"])->name("updateSettings"),
Route::get("/settings", ["User", "settings"])->name("settings"),
Route::get("/logout", ["User", "logout"])->name("logout")
];

$routeWithoutMiddleware = Route::get("/{id}/profile", ["User", "profile"])
->name("profile")
->withoutMiddleware("isLogged");

foreach ($routes as $route) {
$routeMiddleware = $route->getMiddleware();

$this->assertEquals("isLogged", $routeMiddleware->get());
}

$this->assertEquals("", $routeWithoutMiddleware->getMiddleware()->get());
});
}
}

0 comments on commit 491c640

Please sign in to comment.