Files
portal/app/tests/Unit/Autopodbor/Resolve/ResolvingAgentTest.php
T

43 lines
1.9 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use App\Services\Autopodbor\Agent\Dto\ResolveByNameRequest;
use App\Services\Autopodbor\Agent\Resolve\CompetitorResolver;
use App\Services\Autopodbor\Agent\Resolve\ResolvingAgent;
// stubPages() и fx() объявлены в CompetitorResolverTest.php (глобальные хелперы Pest).
it('resolveByName: имя + регион → кандидат §7.2 из настоящей карточки', function () {
$pages = stubPages([
'maps/?text=' => '<a href="/maps/org/kraslombard/175852236692/">org</a>',
'/maps/org/' => autopodborFixture('yandex-org-kraslombard.html'),
]);
$agent = new ResolvingAgent(new CompetitorResolver($pages));
// 29 = Красноярский край (конституционный порядок RussianRegions)
$res = $agent->resolve(new ResolveByNameRequest('КрасЛомбард', 29));
expect($res->candidates)->toHaveCount(1);
$c = $res->candidates[0];
expect($c['name'])->toBe('КрасЛомбард');
expect($c['site_url'])->toBe('http://kraslombard24.ru');
expect($c['directory_urls'])->toContain('https://yandex.ru/maps/org/kraslombard/175852236692');
expect($c['description'])->toContain('Ломбард');
expect($c['is_federal'])->toBeFalse();
expect($c['provenance']['via'])->toBe('name-search');
});
it('resolveByName: имя не найдено → кандидат-заглушка «нет филиала» (без ссылок, не федерал)', function () {
$agent = new ResolvingAgent(new CompetitorResolver(stubPages([])));
$res = $agent->resolve(new ResolveByNameRequest('Неведомая Фирма', 29));
expect($res->candidates)->toHaveCount(1);
$c = $res->candidates[0];
expect($c['name'])->toBe('Неведомая Фирма');
expect($c['directory_urls'])->toBe([]);
expect($c['site_url'])->toBeNull();
expect($c['is_federal'])->toBeFalse();
});