diff --git a/src/Middleware/EnsureFeaturesAreActive.php b/src/Middleware/EnsureFeaturesAreActive.php index 4cec5e9..617be4f 100644 --- a/src/Middleware/EnsureFeaturesAreActive.php +++ b/src/Middleware/EnsureFeaturesAreActive.php @@ -26,6 +26,14 @@ public function handle(Request $request, Closure $next, string ...$features): mi return $next($request); } + /** + * Specify the features for the middleware. + */ + public static function all(string ...$features): string + { + return static::class.':'.implode(',', $features); + } + /** * Specify a callback that should be used to generate responses for failed feature checks. */ diff --git a/tests/Feature/FeatureMiddlewareTest.php b/tests/Feature/FeatureMiddlewareTest.php index 233676e..3b76647 100644 --- a/tests/Feature/FeatureMiddlewareTest.php +++ b/tests/Feature/FeatureMiddlewareTest.php @@ -98,6 +98,14 @@ public function test_it_passes_if_all_features_are_enabled(): void ); } + public function test_middleware_string_can_be_returned(): void + { + $this->assertEquals( + 'Laravel\Pennant\Middleware\EnsureFeaturesAreActive:test,another', + EnsureFeaturesAreActive::all('test', 'another'), + ); + } + protected function createRequest(string $uri, string $method): Request { $request = SymfonyRequest::create(