controleonline/smoke-tests-playground
controleonline/smoke-tests-playground) appears to be a lightweight framework for running smoke tests (basic functional/integration tests) in PHP/Laravel applications. It may fit well in:
ServiceProvider or Artisan commands). May require manual bootstrapping.composer require + configuration). No database migrations or complex dependencies.actingAs(), followRedirects()) natively, requiring manual HTTP client usage (e.g., Guzzle or Symfony BrowserKit).| Risk Area | Assessment | Mitigation Strategy |
|---|---|---|
| Lack of Documentation | No README, no tests, no examples. | Reverse-engineer from source or reach out to maintainers for clarification. |
| Maintenance Status | 0 stars, no recent commits (likely abandoned). | Fork and maintain if critical; evaluate alternatives (e.g., Laravel Dusk, Pest). |
| Limited Features | No async testing, no parallel execution, no Laravel-specific integrations. | Supplement with custom scripts or other tools if needed. |
| Dependency Risks | Unknown dependencies (could introduce vulnerabilities). | Audit composer.json for outdated/unsafe packages. |
| Test Isolation | Risk of flaky tests if not properly scoped (e.g., shared state). | Use containerized environments (Docker) for consistent test runs. |
php artisan test) that better fit?--parallel).src/ for core classes (likely a SmokeTest runner).SmokeTest::run()) and required configuration./health endpoint returns 200).$smokeTest = new \ControleOnline\SmokeTestsPlayground\SmokeTest();
$result = $smokeTest->run([
'http://app.test/health' => ['expected_status' => 200],
]);
php artisan smoke:test
.github/workflows/ as a pre-deploy step.
- name: Run Smoke Tests
run: vendor/bin/php smoke-test-runner.php
# config/smoke-tests.yml
endpoints:
'/':
method: GET
expected_status: 200
assertions:
- 'response contains "Welcome"'
ServiceProvider, Facades, or Artisan commands by default.composer.json for ^8.0).guzzlehttp/guzzle).{
"require": {
"guzzlehttp/guzzle": "6.5", // Package might need 7.x
"symfony/http-client": "5.4"
}
}
/health, /api/status).composer update.SmokeTest::assert() to...").composer why-not-update)..env vars).try-catch blocks to log detailed failure reasons.try {
$result = $smokeTest->run($tests);
} catch (Throwable $e) {
file_put_contents(
storage_path('logs/smoke-test-failure.log'),
$e->getMessage()
);
throw $e;
}
auth-smoke.yml, api-smoke.yml).How can I help you explore Laravel packages today?