Files
portal/app/tests/Feature/Auth/UnauthenticatedApiResponseTest.php
T

28 lines
1.3 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use Illuminate\Foundation\Testing\DatabaseTransactions;
uses(DatabaseTransactions::class);
// FN-LOGIN-ROUTE (приёмка 22.06.2026): неаутентифицированный запрос к auth:sanctum
// роуту, который НЕ просит JSON (нет Accept: application/json — прямой заход
// браузером/ботом), уводит Laravel в редирект на route('login'), которого в SPA
// нет → «Route [login] not defined» (500). Должно отдавать 401 JSON для /api/*.
test('гость без Accept:json на /api/auth/me получает 401 JSON, не route(login)-ошибку', function () {
// get() без Accept:application/json — expectsJson() === false, как у прямого
// браузерного/ботового захода. Заголовок Accept по умолчанию не JSON.
$r = $this->get('/api/auth/me', ['Accept' => 'text/html']);
$r->assertStatus(401);
$r->assertHeader('Content-Type', 'application/json');
expect($r->json('message'))->not->toBeEmpty();
});
test('гость c Accept:json на /api/auth/me получает 401 JSON (регрессия — уже работало)', function () {
$r = $this->getJson('/api/auth/me');
$r->assertStatus(401);
});