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.
Architecture fit. Unchanged. mano/autotest-bundle remains a Symfony bundle, registered via Symfony's Bundle class and DependencyInjection extension, hooking the Symfony Router and PHPUnit bridge. A Laravel application will still resolve it in Composer and still boot nothing. The v1.1.2 change — "alter resolver interface to return route decorator" — is internal plumbing inside that Symfony-specific resolver chain; it does not introduce a framework-agnostic entry point, a Laravel service provider, or a portable data provider. The concept remains portable and valuable; the artifact remains non-adoptable.
Integration feasibility. Still low as a direct dependency, but the release note modestly improves feasibility as a design reference. The introduction of a route decorator abstraction is the single most useful thing in the package for our purposes: it implies the resolver's output is a normalized, wrapped route object (path, verbs, parameters, likely metadata) rather than a raw framework route. That is precisely the seam we would need to reproduce for a Laravel harness — it reduces the "read the source and guess the invariants" portion of the spike. It does not reduce the 1–2 day build estimate materially; it sharpens the design we copy.
Technical risk. Revised in two directions.
Key questions. Prior questions stand; the release adds:
Stack fit. Unchanged: not applicable as a Laravel dependency. Treat as a pattern to be reimplemented. Note the v1.1.2 diff as a reading assignment, not a dependency — the decorator shape is the part of the design worth lifting.
Migration path. Sequence holds, with one insertion:
Route::getRoutes(), filtered by middleware group, path parameters substituted from fixtures, dispatched via actingAs() + call(), asserted < 500 against an explicit expected-status set. Adopt the decorator idea — model each route as a value object carrying verbs, middleware, parameters, and expected statuses — because that is what makes the harness testable in isolation.Queue::fake(), Mail::fake(), Http::fake(), maintenance-mode guard. Non-negotiable given the decorator makes dispatch more faithful.Compatibility. Still assume incompatibility with Symfony ≥ 6.3 and PHP ≥ 8.1 until the composer.json is read directly. The v1.1.2 note says nothing about platform support, which is itself informative: a functional change with no accompanying constraint widening suggests the package is being maintained for its author's environment, not for the ecosystem. Do not --ignore-platform-reqs.
Sequencing. Unchanged. Land the in-house harness after a stable route inventory and before broad end-to-end investment. Run it as the fast first gate on every PR; keep feature tests as the deeper layer; do not let it substitute for authorization or contract testing.
Maintenance. As a dependency: still unowned upstream, still no release cadence we can plan against — and the v1.1.2 patch-level interface change means even a pinned minor is not a safe upgrade unit. As a fork or in-house build: ~200–400 LOC of test scaffolding, 2–4 hours per quarter to track Laravel majors and router API changes, unchanged. Bounded and acceptable, provided a named owner exists.
Support. No vendor, no SLA, no community. Three stars, no dependents. The 2025-era release slightly reduces the "dead repo" risk but does nothing for support: a single maintainer responding on their own schedule is not an escalation path. Budget for the team to be the maintainer from day one.
Scaling. Unchanged on both axes. Route count: linear dispatch is fine at 50, slow at 2,000 without filtering and parallel execution. Statefulness remains the dominant risk — each write endpoint increases cross-test contamination probability, and a decorator that dispatches verbs and parameters faithfully raises the chance of actually hitting destructive routes. Transactional wrapping plus fakes is the mitigation, not an optimization.
Failure modes.
Ramp-up. Concept curve remains negligible for anyone who knows Laravel's router. The v1.1.2 release adds maybe an hour of useful reading (resolver + decorator) and subtracts nothing. Net recommendation stands, with a sharpened rationale: adopt the pattern, reject the artifact. Allocate ~2 engineer-days to an internal route-smoke harness modeled on the decorator shape, assign a maintainer, and require the fakes/isolation guardrails above before it is permitted to gate merges. Re-evaluate upstream only if it publishes explicit platform-support constraints and a semver-respecting release history — not on the strength of one patch release.
How can I help you explore Laravel packages today?