d42334674c
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
34 lines
1.2 KiB
PHP
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);
|