<?php

namespace App\Tests\Smoke;

use App\Tests\ApiTestCase;

/**
 * Confirms the test infrastructure itself works: app boots, /health serves,
 * and JWT-authenticated requests reach protected endpoints.
 */
class InfraSmokeTest extends ApiTestCase
{
    public function testHealthIsPublicAnd200(): void
    {
        $this->client->request('GET', '/health');
        $this->assertSame(200, $this->responseCode());
    }

    public function testUnauthenticatedApiIs401(): void
    {
        $this->client->request('GET', '/oauth/userinfo');
        $this->assertSame(401, $this->responseCode());
    }

    public function testJwtAuthReachesUserInfo(): void
    {
        $user = $this->createUser(['ROLE_USER']);
        $body = $this->authJson('GET', '/oauth/userinfo', $user);

        $this->assertSame(200, $this->responseCode());
        $this->assertTrue($body['success']);
        $this->assertSame($user->getUuid(), $body['data']['uuid']);
    }
}
