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

Autotest Bundle Laravel Package

mano/autotest-bundle

Mano AutoTest Bundle is a PHP package for simplifying automated testing workflows. It helps generate, organize, and run tests with minimal setup, making it easier to add consistent coverage to your project and catch regressions earlier.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Coverage-vs-effort tradeoff on smoke testing. The bundle auto-generates a test per registered route and asserts the HTTP response, which directly answers "how do we get baseline regression coverage across N routes without writing N tests?" Relevant whenever route count grows faster than test-writing capacity.
  • Build vs buy vs borrow — now clearly "borrow". It's MIT-licensed with a very small surface area (a Symfony bundle wrapping the Router and test client). v1.1.2 reinforces this: the only change is an interface signature alteration, i.e. the whole package is still days-of-work to reproduce, and the upstream API is still in motion.
  • Release-gate design. It enables one concrete, cheap CI check — "no route returns 5xx" — that can be a required deploy gate and a forcing function for where QA time gets spent.
  • Route inventory and ownership. Running it against the full route table surfaces orphaned or dead endpoints nobody owns, which is useful backlog-grooming input.
  • Stack fit as a product finding. Despite being labeled a Laravel/PHP package, this is a Symfony bundle with zero Laravel relevance. That constrains adoption to Symfony services and is a hard reject for any Laravel codebase.
  • Per-route metadata as a design pattern (new in v1.1.2). Having the resolver return a route decorator rather than a bare route is the right shape for our allow/deny requirement: mutating-endpoint flags, required-role tags, and skip reasons can be attached as decorators instead of maintained in a brittle hardcoded exclusion list. Worth copying into an in-house implementation even if we never install the bundle.

When to Consider This Package

Consider it when:

  • You run a Symfony 4/5-era application matching the Feb 2022 release line, with a large, mostly idempotent GET surface and no existing smoke suite.
  • You need a zero-config first pass quickly and are comfortable forking rather than depending — more true after v1.1.2, not less.
  • Your test environment has an isolated database, disabled mailers/queues, and stubbed third-party HTTP — this is mandatory, not optional.
  • You can maintain a route allow/deny list so destructive POST/PUT/DELETE endpoints are excluded; the new decorator-return contract makes this easier to express, but only if you are forking and owning the resolver anyway.
  • If you do depend, pin an exact version and vendor the source. v1.1.2 changed an interface's return type on a patch release; anyone on ^1.1 absorbs that change silently.

Look elsewhere when:

  • The stack is Laravel or anything non-Symfony — no fit.
  • You're on modern Symfony 6/7 — expect compatibility work on a stale bundle.
  • Your dependency policy requires active maintenance, security responsiveness, or a maintainer to page. One commit-sized release after roughly three years of dormancy, three stars, and zero dependents does not meet that bar. A single release is a signal of possible revival, not a maintenance commitment — treat it as unproven until there is a sustained cadence.
  • Your dependency policy requires semver discipline. An interface signature change shipped as a patch bump is the disqualifying detail here; it means transitive version resolution can break our build without a major-version warning.
  • Hitting every route has side effects (payments, emails, webhooks, writes) and you can't reliably exclude them — the blast radius is the main risk here.
  • You need assertion depth: response shape, authorization, or contract/schema validation. This is a 5xx tripwire, not a test strategy.
  • Regulated procurement applies — an unmaintained third-party bundle touching production-shaped data is a review problem, and a breaking patch release strengthens that objection rather than easing it.

How to Pitch It (Stakeholders)

Executives: This is a small open-source helper that automatically calls every URL in the application and fails the build if any of them breaks. The idea is high value and low cost; the package is not — three GitHub stars, no downstream users, and after roughly three years of silence its only recent release changes an internal interface, shipped as a minor patch with no compatibility guarantees. Recommendation is unchanged and slightly firmer: adopt the pattern, not the dependency. Reimplementing it in-house costs days, eliminates the maintenance and security-review exposure, and still delivers the "no route is broken" deploy gate. The new release is a modest design improvement worth reading, not a reason to install.

Engineering: Treat it as a reference implementation. v1.1.2 alters the resolver interface to return a route decorator instead of a raw route — a genuinely better extension point than the previous contract, because per-route metadata (mutating flag, required role, skip reason) can be attached declaratively rather than hardcoded in an exclusion array. Two caveats before anyone copies it: the change landed as a patch release, so the project's versioning cannot be trusted for pinning, and the interface shift means any existing fork or local adaptation needs updating. Build our own route-iterating smoke test that (1) enumerates routes from the router, (2) wraps each in a decorator carrying a mutating/role/skip marker, (3) skips or explicitly allowlists mutating endpoints from those markers, (4) runs against an isolated environment with mailers, queues, and external HTTP disabled, (5) asserts no 5xx and optionally expected 2xx/3xx per route, and (6) adds role-based variants (anonymous / user / admin) as a second phase. Same regression signal, our own compatibility guarantees, and a sensible first step before investing in broader contract testing.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package