open-dxp/test-foundation
A testing foundation for Laravel packages, offering base test cases, helper traits, and sensible defaults that bootstrap PHPUnit or Pest suites quickly. It standardizes setup so package authors spend less time wiring scaffolding and more time writing assertions.
skills/opendxp-tests bundle means the testing standard ships as instructions an AI agent (and a new hire) can apply directly, not as a wiki page that rots. That is a legitimate roadmap input: if agent-assisted contribution is part of the delivery model, conventions need to be executable, and this is a cheap way to test that thesis.test.yaml plus EnvironmentTestCase for outliers), cleanup, and external-service skipping remove the "how do I set up a test here" conversation from every PR. This supports a decision to optimize for contributor throughput over contributor flexibility.only()/dd() in the repository" are enforceable review criteria. That converts "improve our tests" from an aspiration into a checklist you can put in a definition-of-done.Adopt when all or most of these hold:
tests/Story/, named doubles in tests/Application/ — without relitigating them per repository.Look elsewhere when:
Before committing: run a time-boxed spike — port one representative package's suite, measure the migration effort, confirm the browser/testkit commands work in your CI, and identify which rules your team would fight. If the spike doesn't show a clear win on setup time or review friction, the honest answer is to copy the SKILL.md rules into your own contributor guide and skip the dependency.
For executives: This is a small, low-cost bet on standardizing how we test, not a new capability we sell. The package encodes a testing discipline — isolation, fixtures, naming, one action per test — into reusable tooling, so every new package inherits the same baseline instead of re-inventing it. The upside is faster onboarding and less review churn across our package portfolio. The risk is concentration: it is an early-stage, single-maintainer library with essentially no external adoption, so we should treat it as an internal accelerator we pin, not a strategic dependency. Recommendation: pilot on one package, measure setup time and PR review cycles, and keep our own conventions documented independently so we can walk away cheaply.
For engineering: You get Testbench/PHPUnit bootstrapping, assertion helpers, fixtures, sane config/environment defaults, cleanup, and composable traits — plus a written style guide covering test structure, factories and stories, helper placement, test doubles, isolation, and formatting, packaged so an agent can apply it while writing tests. The trade-off is explicit: you accept the conventions as given, including Pest expectations over PHPUnit assertions and factories over raw model values. Adopt on the pilot package first; flag any rule that costs more than it saves, because that feedback is the thing most likely to shape whether this becomes a real standard or stays a one-team convenience.
How can I help you explore Laravel packages today?