Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tested Routes Checker Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Quality Assurance (QA) Automation: Enables proactive detection of untested routes in Symfony applications, reducing regression risks and improving test coverage metrics.
  • CI/CD Pipeline Enforcement: Integrates seamlessly into CI/CD workflows (e.g., GitHub Actions) to block merges or deployments if untested routes are introduced, aligning with shift-left testing principles. v1.1.0 documents ParaTest / parallel test support, making the gate viable for larger, faster suites.
  • Cross-Platform Reliability: New Windows CI coverage means teams on mixed developer OSes can rely on consistent behavior across local and CI environments.
  • Build vs. Buy: Avoids reinventing a custom solution for route coverage tracking, leveraging a maintained, open-source alternative with minimal overhead.
  • Compliance & Audits: Supports SQA (Software Quality Assurance) initiatives by providing tangible evidence of route coverage, useful for audits or internal metrics.
  • Developer Experience (DX): The improved baseline regeneration (keeping useful entries, dropping stale ones) and README overhaul reduce the friction of maintaining ignore lists, freeing engineers to focus on feature development while maintaining test discipline.
  • Roadmap Prioritization: Helps identify low-hanging fruit for test expansion (e.g., newly added routes) during sprint planning.

When to Consider This Package

  • Adopt if:

    • Your Symfony application has >50 routes and growing, making manual tracking unsustainable.
    • Your team prioritizes test coverage as a non-negotiable metric (e.g., 90%+ route coverage).
    • You use GitHub Actions or similar CI tools and want to enforce route testing as a gate, including parallel test runners (ParaTest).
    • You lack a dedicated QA team but need automated checks to catch regressions.
    • Your project uses localized routes (handled natively by this bundle).
    • Your team can run PHP 8.4+ (see below).
  • Look elsewhere if:

    • Your application is small-scale (<20 routes) or has static, rarely changing routes.
    • You already use a comprehensive testing framework (e.g., PestPHP, Codeception) with built-in route coverage tools.
    • Your team resists automated enforcement (requires buy-in for CI integration).
    • You need granular metrics (e.g., per-route test complexity) beyond binary "tested/untested" status.
    • Your stack doesn’t use Symfony, or your runtime is pinned to PHP 8.2 or 8.3 — v1.1.0 drops support for both, requiring PHP 8.4+. Treat the PHP upgrade as a prerequisite cost in build-vs-buy evaluation.

How to Pitch It (Stakeholders)

For Executives/Stakeholders:

*"This bundle automates a critical gap in our testing process: ensuring every route in our Symfony app is tested before deployment. Currently, untested routes slip through because manual tracking is error-prone. By integrating this tool into our CI pipeline, we’ll:

  • Reduce regression risks by catching untested endpoints early (e.g., during PR reviews).
  • Save QA time—no more manual audits of route coverage.
  • Improve deployment confidence with a simple pass/fail check in GitHub Actions.
  • Scale with our test suite—the latest release documents parallel test support, so our CI won’t get slower as the app grows. It’s a low-code, high-impact solution that aligns with our quality goals at minimal cost (MIT license, open-source). Caveat: v1.1.0 requires PHP 8.4+, so factor that upgrade into the plan if we’re still on 8.2/8.3."*

For Engineering Teams:

*"This is a Symfony-specific way to enforce route test coverage without writing custom scripts. Here’s how it works:

  1. During tests, it logs all called routes to var/cache/.
  2. After tests, run php bin/console bab:tested-routes-checker:check to see gaps.
  3. CI integration: Add a GitHub Actions step to block merges if new routes are untested.
  • Pros:
    • Handles localized routes (unlike basic solutions).
    • Works with parallel test jobs (ParaTest) — now documented in v1.1.0.
    • Tested on Windows as well as Linux, so behavior is consistent across dev machines.
    • Ignore routes via .bab-trc-baseline; v1.1.0 regenerates the baseline intelligently (keeps still-useful entries, drops stale ones) and fixes a bug where successive saves could glue routes together.
  • Cons / Requirements:
    • PHP 8.4+ required — v1.1.0 dropped 8.2 and 8.3, so upgrade first.
  • Setup: composer require --dev + CI config. No PHP changes needed. Let’s pilot this in [Project X] to validate the impact before rolling out."*

For Developers:

*"Think of this as ‘linter for your routes’:

  • Problem: You add a new route (/api/v2/users) but forget to test it. It sits untested until a user hits it in prod.
  • Solution: This bundle automatically flags untested routes in CI. No more ‘oops’ moments.
  • How to use:
    1. Ensure PHP 8.4+ (v1.1.0 dropped 8.2/8.3).
    2. Install: composer require --dev bab/tested-routes-checker-bundle.
    3. Add to bundles.php (dev/test only).
    4. Run php bin/console bab:tested-routes-checker:check locally or in CI.
  • Bonus:
    • ParaTest support for parallel test suites.
    • Smarter baseline regeneration — stale ignores get cleaned up automatically.
    • Windows-friendly, so local checks match CI results. Start by adding it to your local dev environment—it’s harmless until you run the check!"*
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route