. */ declare(strict_types=1); namespace Tests\integration\Api\About; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Testing\Fluent\AssertableJson; use Tests\integration\TestCase; /** * Class AboutControllerTest * * @internal * * @coversNothing */ final class AboutControllerTest extends TestCase { use RefreshDatabase; private $user; protected function setUp(): void { parent::setUp(); if (!isset($this->user)) { $this->user = $this->createAuthenticatedUser(); } $this->actingAs($this->user); } public function testGivenAuthenticatedRequestReturnsSystemInformation(): void { $response = $this->getJson(route('api.v1.about.index')); $response->assertOk(); $response->assertJsonStructure([ 'data' => [ 'version', 'api_version', 'php_version', 'os', 'driver', ], ]); } public function testGivenAuthenticatedRequestReturnsUserInformation(): void { $response = $this->getJson(route('api.v1.about.user')); $response->assertOk(); $response->assertJson( fn (AssertableJson $json) => $json ->where('data.attributes.email', $this->user->email) ->where('data.attributes.role', $this->user->role) ); } }