Expose public Scalar API docs

This commit is contained in:
2026-04-20 13:36:07 +02:00
parent 8b25421e7c
commit f036845f06
5 changed files with 380 additions and 2 deletions
@@ -0,0 +1,37 @@
<?php
namespace Tests\Feature\Api;
use Tests\TestCase;
class PublicApiDocumentationTest extends TestCase
{
public function test_scalar_api_docs_are_public(): void
{
$this->get('/api/docs')
->assertOk();
}
public function test_openapi_document_is_publicly_served(): void
{
$response = $this->get('/api/docs/openapi.json')
->assertOk();
$this->assertStringStartsWith(
'application/vnd.oai.openapi+json',
(string) $response->headers->get('Content-Type'),
);
$document = json_decode((string) $response->getContent(), true, 512, JSON_THROW_ON_ERROR);
$this->assertSame('3.1.0', $document['openapi']);
$this->assertSame([], $document['security']);
$this->assertArrayHasKey('/projects', $document['paths']);
}
public function test_application_api_still_requires_an_authenticated_user(): void
{
$this->getJson('/api/projects')
->assertUnauthorized();
}
}