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

Wiremock Bundle Laravel Package

nicolasguilloux/wiremock-bundle

Symfony bundle that integrates WireMock into your test suite, letting you start stub HTTP services, define request/response mappings, and verify outgoing calls so functional tests run against realistic APIs without hitting external systems.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Test-infrastructure strategy for third-party HTTP dependencies. The bundle exists to answer a concrete product question: how do we make integration tests deterministic when the feature depends on an external API (payments, shipping, identity, tax, CRM sync)? It supports the decision to stub at the HTTP boundary rather than mock our own client classes or maintain hand-rolled fixture servers.
  • Contract testing posture. Declarative stub mappings plus request assertions mean tests can verify what we send, not just what we handle. That is the PM-relevant difference between "our code doesn't crash" and "our integration honors the partner's documented contract" — the latter is what protects revenue-critical flows during a partner-side incident or version sunset.
  • Build vs. buy for mock-server plumbing. The package is a lifecycle wrapper (start/stop WireMock, load stubs, expose assertions) rather than a mock engine. That framing sharpens the buy decision: we are not buying mocking capability, we are buying roughly a few hundred lines of process orchestration and Symfony wiring. At 1 star, archived, and a single "First version" release, the honest answer is build the equivalent in-house — or use WireMock directly via Docker/Testcontainers — and treat this repo as a design reference.
  • Roadmap gating for partner integrations. Whenever a roadmap item adds a new external dependency, this pattern is what lets us ship an integration with a runnable, reproducible test harness on day one instead of a manual QA checklist. That converts "we'll test it in staging" into "we can prove it in CI," which shortens the path from development complete to launch-ready.
  • Feature-flag and rollout validation. Because stubs are declarative, the same fixtures can back tests for success, timeout, 429/503, and malformed-payload paths. Supporting failure-mode coverage is a product decision about resilience claims: it is what lets us say "we degrade gracefully" with evidence rather than assertion.
  • Not a fit for: Laravel codebases (see below), or any team looking for a supported, patched dependency in a compliance-audited environment.

When to Consider This Package

Consider it when all of the following hold:

  • The application is Symfony, not Laravel. The package is a Symfony bundle with service configuration and bundle lifecycle hooks; there is no evidence of Laravel service-provider auto-discovery, facades, or illuminate/* constraints. In a Laravel codebase, adoption means either abandoning the wrapper or carrying a Symfony-shaped dependency into a framework it was not built for.
  • You have already decided to standardize on WireMock as your mock HTTP server and want the start/stop lifecycle and stub loading managed for you in PHPUnit runs.
  • Test suites are small-to-medium and not aggressively parallelized; nothing in the captured materials documents parallel-execution behavior or port allocation across workers.
  • You accept forking and owning it. The repository is archived and the only release note is "First version" — there is no changelog, no upgrade guide, no responsive maintainer. Any adoption is a fork-or-vendor decision, so price the maintenance cost explicitly.
  • The integration surface is one or two endpoints, where a thin wrapper is cheap to own.

Look elsewhere when:

  • The stack is Laravel. Use WireMock standalone via Docker Compose or Testcontainers, or Laravel's built-in Http::fake(), which covers most of this need with zero new dependencies and full framework support.
  • You need a maintained dependency. Archived with 1 star and a single release is a hard stop for anything with an audit trail, CVE response requirement, or multi-year support horizon.
  • Your CI already runs containers. Testcontainers or a Compose service gives you WireMock lifecycle management that is language-agnostic, actively maintained, and reusable by non-PHP services — strictly better than a single-ecosystem wrapper.
  • You need contract verification against the real partner, not just against your own stubs. This package cannot tell you whether your stubs still match reality; that requires recorded traffic or a provider-side contract tool.
  • Nobody on the team can own PHP test infrastructure. Because there is no documentation beyond a description, ramp-up cost is "read the source," and that cost lands on whoever is on call when tests flake.

Decision framing for the PM: treat this as reference material for an internal test harness, not as a dependency. The valuable idea — declarative stubs plus automatic server lifecycle plus request assertions — is worth adopting. The artifact is not.

How to Pitch It (Stakeholders)

For executives (one paragraph): We evaluated a small open-source package that would let us simulate third-party APIs inside our automated test suite, so integration tests could prove our payment and partner flows work — including failure cases — without calling real vendors. The idea is valuable; the artifact is not. It has one star, one release, no documentation, and the repository is archived, so nothing about it can be supported or patched. It also targets Symfony, while our stack is Laravel. My recommendation is not to adopt it as a dependency, and instead spend a small, bounded amount of engineering time building the same capability (or using standard container tooling) so we own it outright. Cost is low and time-boxed; the benefit is that integration features stop depending on manual staging checks before launch, and we gain a defensible answer to "how do we know this breaks gracefully when the vendor is down?"

For engineering (the practical version): Do not composer require this. It is archived, it is a Symfony bundle, and its only release note is "First version," so there is no upgrade path and no maintainer signal. What is worth stealing is the pattern: (1) declarative stub mappings checked into the repo as JSON/YAML, versioned alongside the code that depends on them; (2) a test bootstrap that starts the mock server on a per-worker port and tears it down reliably; (3) assertion helpers so tests can verify the outbound request shape, not just the parsed response; (4) stubs organized per partner and per scenario so failure-path tests are as easy to write as happy-path ones. In Laravel, start from Http::fake() for unit-level work; bring in WireMock in Docker when you need a real socket for a client library you do not control, or when the same stubs must serve more than one service. Whatever we build, put it behind a small internal test-support package so it has an owner, a README, and a version — the three things this package is missing.

Risks to state plainly if anyone pushes back: an archived dependency means we inherit bugs permanently; a 1-star project means no community to absorb a Laravel or PHP-version bump; a Symfony-targeted bundle in a Laravel app means fighting the framework during upgrades. None of these are hypothetical — they are the standard failure modes that turn a two-day convenience into a recurring tax.

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.
unabomber/timezone
delatbabel/contacts
astritzeqiri/g-recaptcha
kevinongko/laravel-genode
developeruz/laravel-analytics
robbiep/afterthedeadline
frankkessler/incontact-laravel-oauth2-rest
jlxh/laravel-userlog
davidmgilo/timetables
qylinfly/role-permission
reflect-digital/conduit
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr