Files
portal/app/tests/Feature/Autopodbor/AutopodborAgentBindingTest.php
T
Дмитрий 5851ac48d3 feat(автоподбор): включён настоящий движок шага 2 + ретрай флаки 2ГИС
Провайдер биндит RealCompetitorAgent вместо заглушки: сайт конкурента —
обычный curl плюс локальный Playwright, справочники 2ГИС/Яндекс — через
антибот xfetch. Поиск/резолв шага 1 ещё не реальны — делегируются заглушке
через fallback, поведение поиска не изменилось.

- AutopodborServiceProvider биндит RealCompetitorAgent с CompositeFetcher
- XfetchClient повторяет запрос при пустом флаки-рендере 2ГИС, до 3 раз
- тесты привязки контейнера плюс ретрая; study-тест пинит заглушку явно
- тесты заглушки строят FakeCompetitorAgent напрямую
- бэкенд автоподбора 126/126

НЕ на проде, воркстри avtopodbor.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 15:51:31 +03:00

26 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
use App\Services\Autopodbor\Agent\CompetitorAgent;
use App\Services\Autopodbor\Agent\Dto\FindCompetitorsRequest;
use App\Services\Autopodbor\Agent\RealCompetitorAgent;
it('контейнер отдаёт настоящий движок шага 2 (RealCompetitorAgent)', function () {
expect(app(CompetitorAgent::class))->toBeInstanceOf(RealCompetitorAgent::class);
});
it('поиск/резолв у настоящего агента пока делегируются заглушке', function () {
// find/resolve ещё не реальны → RealCompetitorAgent отдаёт их в fallback (Fake),
// поэтому демо-конкуренты по-прежнему приходят (поведение поиска не изменилось).
$agent = app(CompetitorAgent::class);
$res = $agent->findCompetitors(new FindCompetitorsRequest(
regionCode: 24,
examples: ['окна'],
aboutSelf: [],
includeFederal: false,
maxCompetitors: 5,
));
expect($res->competitors)->not->toBeEmpty();
});