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

Smoke Testing Laravel Package

pierstoval/smoke-testing

Quickly smoke-test your PHP application by crawling configured URLs and checking responses for errors. Catch broken pages, unexpected status codes, and regressions early with simple setup and clear results, making it easy to verify deployments before users do.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Scope mismatch flag: The request frames this as a "Laravel/PHP package," but pierstoval/smoke-testing is explicitly a Symfony bundle/component. It hooks into Symfony's Kernel, Router, and test KernelBrowser/Panther stack. Do not assume Laravel compatibility; treat this as a Symfony-only evaluation unless a Laravel port is separately scoped.

Architecture fit

  • Fits as a CI-time verification layer, not a runtime dependency. It exercises routed endpoints against a booted application kernel and asserts no 5xx / unhandled exceptions.
  • Natural home is the require-dev block of a Symfony app, wired into a dedicated PHPUnit test suite or a console command invoked from CI.
  • Complements, rather than replaces, unit/integration tests: it answers "does every route at least resolve and render without blowing up?" — a cheap regression net after dependency upgrades, framework majors, or config changes.
  • Poor fit for apps without a deterministic, seeded database or with heavy third-party side effects on GET routes; smoke crawling assumes routes are safe to hit repeatedly.

Integration feasibility

  • Low effort to trial: add as dev dependency, point it at the app's route set, run locally against a disposable database.
  • Requires a routable, bootable app under test — containerized CI with a database and any external services stubbed or faked. That is the real cost, not the package.
  • Auth-gated routes need a strategy: either an authenticated session fixture or an exclusion list. The package cannot infer this; the integrating team must curate the route allow/deny set.
  • If the package relies on Symfony Panther (headless Chrome), CI images need Chrome/Chromedriver, which adds build weight and flakiness surface. Verify the current major's transport before committing.

Technical risk

  • Maintenance signal is the dominant risk: 39 stars, zero dependents, and a NOASSERTION license. Zero dependents means no downstream community pressure to keep it current with Symfony releases — the maintainer can walk away and nothing breaks loudly for anyone but you.
  • License ambiguity is a procurement blocker. NOASSERTION means the manifest does not map to a recognized SPDX identifier. Legal/OSS review must clear it before it lands in a commercial repo; do not merge on the assumption it is MIT.
  • Opportunity score 24.4 reads as low headroom — limited ecosystem momentum and little chance the package absorbs the maintenance burden for you. Budget for owning a fork.
  • Version-coupling risk: Symfony's kernel/browser APIs churn across majors. A low-traffic package will lag; expect to pin Symfony or patch the package yourself on upgrade.
  • False confidence risk: a green smoke run that excludes 60% of routes (auth, POST-only, feature-flagged) is worse than no run, because it gets cited as coverage.

Key questions

  1. Which Symfony versions and PHP versions does the current release actually support? Is the constraint range honest or aspirational?
  2. What is the transport — HTTP kernel browser, Panther/Chrome, or raw HTTP? This determines CI image cost and flake profile.
  3. What is the license, in plain terms, and will legal accept it?
  4. How are authenticated routes, CSRF-protected forms, and state-mutating GETs handled?
  5. What is the maintainer's release cadence over the last 18 months, and is there a stated support policy?
  6. What is the blast radius of a fork — how many files, and how coupled to Symfony internals?
  7. Does it fail on exceptions only, or also on non-2xx/3xx, console errors, or JS errors?

Integration Approach

Stack fit

  • Symfone-native only. It assumes a Symfony Kernel, the framework Router, and standard test bootstrap. In a Laravel codebase, the fit is effectively zero without a rewrite; in a mixed or migrating codebase, apply it to the Symfony surface only.
  • Best value in apps with large, route-heavy surfaces — admin panels, CRUD backends, CMS front ends — where route count grows faster than hand-written coverage.
  • Weakest value in small APIs with few routes or in apps whose GET routes are idempotent-only by convention already covered by functional tests.

Migration path

  • There is no migration path in the "replace existing tooling" sense; this is additive. The realistic path is: pilot on one service → measure findings per run → decide whether to standardize.
  • If the pilot shows the package is stale against your Symfony version, the fallback is a thin in-house crawler over the router (a few hundred lines) that you own outright. Frame the build-vs-buy decision explicitly; at zero dependents and 39 stars, buy is really "borrow and maintain."
  • Do not rip out existing functional test suites. Position this as a post-deploy or pre-merge gate layered on top.

Compatibility

  • Verify against your exact Symfony minor and PHP minor first; this is the single highest-probability failure point.
  • Check interaction with test-parallelization (Paratest) and with database fixtures/transaction rollback strategies. Smoke runs that leave residue will poison parallel suites.
  • Confirm it coexists with your existing PHPUnit configuration without hijacking the default test suite; isolate it under its own suite name.

Sequencing

  1. Legal/license clearance and a read of the source for Symfony-internal coupling — before any engineering time.
  2. Timeboxed spike (1–2 days): install in dev, run against a disposable environment, capture pass/fail and route coverage.
  3. Define the route allow/deny policy and auth fixture strategy — this is the actual product decision.
  4. Wire into CI as non-blocking, observe false-positive rate for two to four weeks.
  5. Promote to blocking once the exclusion list is stable and flake rate is acceptable.
  6. Only then consider extending to additional services.

Operational Impact

Maintenance

  • Assume you own it. With zero dependents and low stars, upstream fixes for a future Symfony major are unlikely to arrive on your schedule. Plan for a vendored fork or an internal patch layer.
  • Ongoing cost is dominated by two things: keeping the exclusion list honest as routes are added, and re-validating against framework upgrades. Budget a small recurring allocation, not a one-time setup.
  • Route drift is the silent killer: new routes are silently untested until someone adds them. Without a coverage check, the suite decays into theater.

Support

  • Community support is effectively nil. Escalation is: read the source, patch locally, or replace with in-house tooling. Staff accordingly — do not put this on a team without PHP/Symfony depth.
  • Internal documentation is mandatory: what is excluded and why, how to add routes, how to interpret failures.

Scaling

  • Runtime scales roughly linearly with route count and, if using a browser transport, with page-load cost. A few hundred routes with headless Chrome will be minutes, not seconds.
  • Shard across CI nodes or restrict runs to changed route groups if the suite becomes a bottleneck.
  • Database and service state are the real scaling constraint: each parallel worker needs isolated fixtures. This, not the package, sets your ceiling.

Failure modes

  • Silent under-coverage: exclusions grow until the suite tests the trivial subset. Mitigation: assert a minimum route count and review exclusions in PRs.
  • Flaky green/red: browser transport timeouts and async renders produce nondeterministic failures, training teams to re-run rather than investigate.
  • Framework-upgrade breakage: package pinned far behind Symfony, blocking upgrades or forcing a fork mid-upgrade.
  • Side-effect leakage: smoke hits to GET routes that mutate state (send email, enqueue jobs, charge) in a shared environment.
  • License surprise: discovered late during an audit or acquisition, forcing removal.

Ramp-up

  • Individual contributor: half a day to a day to get a first run green, assuming CI already has a bootable app and database.
  • Team-level adoption: one to two weeks to settle the exclusion policy, auth fixtures, and CI placement — the tooling is the easy part; the governance is the work.
  • Organizational: add OSS review time for the NOASSERTION license, plus a standing decision on fork ownership. Assign a named owner before rollout, because zero-dependents packages decay without one.
  • Net TPM read: cheap to trial, cheap to run, but not cheap to own. Justify it on route-surface size and upgrade-regression pain; if those are small, an in-house crawler or existing functional tests are the better call.
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.
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator