Files
agent-unit-testing/templates/phpunit/MiddlewareTest.template.php
T
Pham-Tan-Thien 2045c856e9 feat: complete Smartgift AI Laravel unit testing toolkit
- Add 10 core testing guides (setup, AAA principles, PHPUnit/Pest, mocking, anti-patterns, PHP 8.4+, debugging, data factories, advanced edge cases)
- Add 13 component testing guides covering all Laravel layers
- Add standard templates for PHPUnit 10/11 and Pest v2/v3 including ArchitectureTest
- Add Docker smart test runner, dependency installer, and CI/CD templates (GitHub Actions, GitLab CI)
- Add 4 Claude Code skills (laravel-test-setup, laravel-unit-test with --all mode, laravel-test-review, laravel-mock-helper)
- Add single unified installer script (sg-install-unit-testing.sh) with global support, CLI runners, and 1-click updater (sg-test-update)
- Add comprehensive documentation (README.md, USAGE-GUIDE.md)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 16:41:37 +07:00

43 lines
1016 B
PHP

<?php
declare(strict_types=1);
namespace Tests\Unit\{{Namespace}};
use Tests\TestCase;
use PHPUnit\Framework\Attributes\Test;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use {{TargetClassFullName}};
class {{ClassName}}Test extends TestCase
{
private {{ClassName}} $middleware;
protected function setUp(): void
{
parent::setUp();
$this->middleware = new {{ClassName}}();
}
#[Test]
public function it_passes_request_to_next_closure_when_authorized(): void
{
// Arrange
$request = Request::create('/test-route', 'GET');
$nextCalled = false;
$next = function ($req) use (&$nextCalled) {
$nextCalled = true;
return response('OK', Response::HTTP_OK);
};
// Act
$response = $this->middleware->handle($request, $next);
// Assert
$this->assertTrue($nextCalled);
$this->assertSame(Response::HTTP_OK, $response->getStatusCode());
}
}