protonemedia/inertiajs-events-laravel-dusk
Laravel Dusk helpers for testing Inertia.js events. Adds assertions and utilities so you can verify Inertia events fire as expected in browser tests, making it easier to cover Inertia-powered Laravel flows end to end.
Architecture fit: Unchanged in substance. This remains a test-only Laravel Dusk helper for Inertia.js event synchronization, not a production runtime dependency. It fits only where the application already runs Laravel + Inertia.js + Dusk for browser-level end-to-end tests. Release 1.3.0 does not change the architectural role, but it does move the package from "abandoned tactical utility" toward "small, currently-maintained tactical utility." It still should not be treated as a strategic platform component or as a reason to choose Dusk over another E2E layer.
Integration feasibility: Materially improved. 1.3.0 adds Laravel 10, Dusk 7, and PHP 8.2 support, which aligns the package with currently supported upstream stacks rather than the Laravel 9-era baseline implied by the February 2023 release. Two caveats temper this: the release drops Laravel <9 and PHP <8.1, so any application still on Laravel 8 or PHP 8.0 must remain pinned to 1.2.x or upgrade first; and the release notes are a single data point after a long gap, so cadence is still unproven. Adoption is still feasible as a require-dev Composer package with a narrow surface and MIT licensing permitting internal fork/vendor. The earlier "archived" signal should be re-verified — a new release is inconsistent with an archived repository, and the assessment should not carry a stale status claim forward.
Technical risk: Reduced from medium-to-high to medium for teams on Laravel 9/10, Dusk 7, and PHP 8.1+. The abandonment risk is lower but not eliminated: one release after a multi-year gap demonstrates capability, not a sustainable maintenance rhythm. Compatibility risk shifts rather than disappears — Dusk 7 is a major version bump, so the package is now coupled to Dusk 7's own behavioral changes, and the team must validate the package and the Dusk upgrade together. Low adoption (23 stars, 0 dependents) still means zero external validation, so compatibility remains something we prove rather than inherit. Dev-only scope continues to cap production runtime and security exposure, but CI reliability and supply-chain hygiene still apply. Note that dropping Laravel <9/PHP <8.1 is effectively a breaking change shipped under a minor version — acceptable for a dev-only helper, but it means constraint resolution, not semver intuition, must drive pinning.
Key questions:
Stack fit: Use only in Laravel 9 or 10 applications that already run Inertia.js and Dusk 7. If the team uses Playwright, Cypress, Pest browser testing, or another E2E layer, this package is not a fit. It should not drive production architecture decisions, and it should not be a reason to remain on Dusk if the team is otherwise evaluating alternatives.
Migration path: No production migration. Treat adoption as a test-suite experiment: add as a pinned require-dev dependency on a branch, apply it to one or two representative Inertia navigation tests, and measure whether it reduces flakiness or simplifies waits. Teams on Laravel 8 or PHP 8.0 have two options: stay pinned to 1.2.x and accept an unsupported-version posture, or upgrade the platform first — the latter is preferable but is a platform project, not a package decision. If 1.3.0 is incompatible with our environment, fork the relevant helper code internally rather than downgrading the whole stack.
Compatibility: Validate Composer constraints and runtime behavior before committing. Confirm PHP 8.1+/8.2, Laravel 9/10, Dusk 7, Inertia.js adapter version, and CI OS/browser combinations. Because 1.3.0 is the first release in roughly two years, treat compatibility as newly asserted rather than proven: pin exact versions, commit the lockfile, and run the spike in the same CI configuration as production tests. Pay specific attention to the Dusk 7 coupling — if the upgrade to Dusk 7 is itself unvalidated, sequence it separately so failures can be attributed.
Sequencing:
Maintenance: Improved but not resolved. 1.3.0 is evidence of a live maintainer and gives us a supported-version target for Laravel 10 / Dusk 7 / PHP 8.2, which removes the immediate "no path forward" problem in the prior assessment. However, a single release after a long gap does not establish cadence. Internal ownership remains prudent: pinning, lockfile review, compatibility checks on each Laravel/Dusk/PHP upgrade, and a standing fork/replace option. The maintenance cost is now lower because we are tracking a maintained package rather than backporting compatibility ourselves.
Support: Community support remains thin — low stars, zero dependents, no evidence of a support commitment in the release notes. The difference from the prior assessment is that upstream fixes are now plausible rather than absent, so we can reasonably wait a short window for upstream before forking. Expectations should still be set at "best-effort internal helper with a live upstream," not "supported dependency." MIT licensing continues to make forking viable if the project goes quiet again.
Scaling: Unchanged; impact is confined to CI, not production. Browser-based Dusk suites consume significant CI time and compute, particularly with parallelism. The package may reduce flaky waits but does not address suite runtime, browser resource limits, or parallel test isolation. With Dusk 7 in play, re-baseline timeouts and sharding after any upgrade, and keep artifact capture on failure.
Failure modes:
Ramp-up: Low-to-moderate for teams already fluent in Laravel Dusk and Inertia.js navigation behavior. Engineers need to understand async page transitions, event timing, and Dusk wait semantics; the Dusk 7 upgrade adds a one-time learning and migration cost for teams not yet on it. The package itself is small, but debugging flaky browser tests requires E2E experience and CI observability. Ramp-up should include a short internal note covering when to use the helper, the version policy (1.3.x for Laravel 9/10, 1.2.x only for legacy apps), fallback patterns, and ownership.
How can I help you explore Laravel packages today?