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);