5851ac48d3
Провайдер биндит 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>
26 lines
1.1 KiB
PHP
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();
|
|
});
|