Files
portal/app/tests/Feature/ClientTg/TgRobotTokenTest.php
T

34 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
use App\Http\Middleware\TgRobotToken;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\HttpException;
it('пускает с верным токеном', function () {
config()->set('services.tg_robot.token', 'секрет');
$request = Request::create('/api/tg-robot/next');
$request->headers->set('X-Tg-Robot-Token', 'секрет');
$response = (new TgRobotToken)->handle($request, fn () => response('ок'));
expect($response->getContent())->toBe('ок');
});
it('не пускает с чужим токеном', function () {
config()->set('services.tg_robot.token', 'секрет');
$request = Request::create('/api/tg-robot/next');
$request->headers->set('X-Tg-Robot-Token', 'не тот');
(new TgRobotToken)->handle($request, fn () => response('ок'));
})->throws(HttpException::class);
it('канал закрыт, когда токен в настройках пуст', function () {
config()->set('services.tg_robot.token', '');
$request = Request::create('/api/tg-robot/next');
$request->headers->set('X-Tg-Robot-Token', '');
(new TgRobotToken)->handle($request, fn () => response('ок'));
})->throws(HttpException::class);