28 lines
1.3 KiB
PHP
28 lines
1.3 KiB
PHP
|
|
<?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);
|
|||
|
|
});
|