bab/tested-routes-checker-bundle
A Symfony bundle that records which routes your test suite actually calls, then reports the untested ones via a console command—so you can fail CI when new untested routes slip in. Works with PHPUnit or any test runner and supports multi-job pipelines through artifact uploads.
RouteServiceProvider, web.php, api.php) can be mapped to Symfony’s routing abstraction.var/cache/...) to store route calls. Laravel’s storage/ or bootstrap/cache/ could serve as equivalents, requiring minimal adaptation.Routing and HttpKernel components, necessitating:
RouteCollection.Testing facade).phpunit.xml and tests/ structure are compatible. The v1.1.0 addition of documented ParaTest support provides a concrete parallel-testing reference point, though ParaTest is PHPUnit-based — Laravel’s default parallel runner (PestPHP/phpunit parallel via brianium/paratest) still requires artifact-merging adaptation. The CLI command (bab:tested-routes-checker:check) still needs a Laravel-specific facade (e.g., php artisan bab:check-routes)._locale parameters). Laravel’s route localization (via Route::localization() or packages like spatie/laravel-localization) would require mapping to Symfony’s Route objects.RouteCollection, Route objects) for Laravel’s router (Illuminate\Routing\Router) remains non-trivial but manageable with a wrapper layer.
Route objects include middleware; Laravel’s Route objects do not).var/cache/ → storage/framework/cache/).IgnoredRoutesStorage::saveRoutes() “gluing” routes together across successive saves. This directly reduces the risk of corrupted/merged baseline entries — previously an insidious failure mode in the wrapper’s Phase 2 baseline work.Http::fake() or Testing::fake() might interfere; a custom TestRequestListener is still needed.storage/ instead of var/cache/). The now-documented ParaTest scenario is a useful reference but not a drop-in for Pest.php artisan test --parallel artifact layout, or does the wrapper need its own merge step?{id}) handled?auth, throttle, and other guards that may block routes during testing?.bab-trc-baseline map to Laravel test exclusions? The v1.1.0 regeneration behavior change should be reflected in this mapping.bab:tested-routes-checker:check be exposed as an Artisan command?RouteCollection with Laravel’s Router instance, adapting route parameter extraction.FileCache or ArrayCache to store tested routes in storage/framework/cache/bab_tested_routes.php artisan bab:check-routes).Testing facade to intercept HTTP calls during test execution.symfony/routing and symfony/http-kernel are critical. Replace with Laravel’s native classes or minimal polyfills.bab/laravel-tested-routes-checker) that:
Router to log route hits.RouteCollection with a Laravel-compatible version.laravel/laravel skeleton) on PHP 8.4..bab-trc-baseline) to config/bab-trc.php, leveraging v1.1.0’s improved regeneration semantics instead of hand-rolling merging logic.IgnoredRoutesStorage fix by treating ignored-route accumulation as now-safe across successive test runs.Route object to include guard info).RouteServiceProvider and API route groups.file, database, and redis cache drivers.Testing facade or create a TestedRoutesServiceProvider.TestedRouteStorage class using Laravel’s cache; validate against the baseline regeneration contract.CheckRoutesCommand.middleware, name).IgnoredRoutesStorage fix significantly reduce manual baseline editing and the risk of corrupted/glued ignore entries. This is a concrete net positive for day-to-day maintenance.route:list for deeper insights.Http::fake() or Testing::ignore(), routes may not be logged. Clear documentation and a dedicated listener are required.IgnoredRoutesStorage::saveRoutes() gluing bug is fixed in v1.1.0; wrappers upgrading from earlier versions should re-verify previously suspect baselines.How can I help you explore Laravel packages today?