update project
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Tests\Feature\SchoolCore;
|
||||
|
||||
use App\Domain\SchoolCore\Context\SchoolContext;
|
||||
use App\Http\Middleware\ResolveSchoolContext;
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
use Illuminate\Http\Request;
|
||||
use Orchestra\Testbench\TestCase;
|
||||
|
||||
final class ResolveSchoolContextMiddlewareTest extends TestCase
|
||||
{
|
||||
protected function getPackageProviders($app): array
|
||||
{
|
||||
return [\App\Providers\SchoolContextServiceProvider::class];
|
||||
}
|
||||
|
||||
public function test_it_attaches_context_to_request(): void
|
||||
{
|
||||
$request = Request::create('/test', 'GET');
|
||||
$request->setUserResolver(fn () => new MiddlewareFakeUser(5, 88));
|
||||
|
||||
$middleware = app(ResolveSchoolContext::class);
|
||||
|
||||
$response = $middleware->handle($request, function (Request $request) {
|
||||
return response()->json([
|
||||
'school_id' => $request->attributes->get(SchoolContext::class)->schoolId,
|
||||
]);
|
||||
});
|
||||
|
||||
$this->assertSame(200, $response->getStatusCode());
|
||||
$this->assertStringContainsString('5', $response->getContent());
|
||||
}
|
||||
}
|
||||
|
||||
final class MiddlewareFakeUser implements Authenticatable
|
||||
{
|
||||
public function __construct(public int $school_id, private int $id)
|
||||
{
|
||||
}
|
||||
|
||||
public function getAuthIdentifierName(): string { return 'id'; }
|
||||
public function getAuthIdentifier(): mixed { return $this->id; }
|
||||
public function getAuthPassword(): string { return ''; }
|
||||
public function getAuthPasswordName(): string { return 'password'; }
|
||||
public function getRememberToken(): ?string { return null; }
|
||||
public function setRememberToken($value): void {}
|
||||
public function getRememberTokenName(): string { return 'remember_token'; }
|
||||
}
|
||||
Reference in New Issue
Block a user