2cf8b74763
Карточка резолва имени: name/site/phones/directoryUrl/source/region/description/ isFederal + isLocal(). Без ИНН (решение владельца). Офлайн-тест 3/3. Фундамент под-блока A плана шага 1. НЕ на проде, воркстри avtopodbor. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
48 lines
1.9 KiB
PHP
48 lines
1.9 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Services\Autopodbor\Agent\Resolve\ResolvedCompetitor;
|
|
|
|
it('несёт поля карточки и разумные значения по умолчанию', function () {
|
|
$c = new ResolvedCompetitor(
|
|
name: 'КрасЛомбард',
|
|
siteUrl: 'kraslombard24.ru',
|
|
phones: ['73912920000'],
|
|
directoryUrl: 'https://2gis.ru/krasnoyarsk/firm/111',
|
|
source: '2ГИС',
|
|
region: 'Красноярск',
|
|
description: 'Ломбард, автоломбард',
|
|
isFederal: false,
|
|
);
|
|
|
|
expect($c->name)->toBe('КрасЛомбард');
|
|
expect($c->siteUrl)->toBe('kraslombard24.ru');
|
|
expect($c->phones)->toBe(['73912920000']);
|
|
expect($c->directoryUrl)->toBe('https://2gis.ru/krasnoyarsk/firm/111');
|
|
expect($c->source)->toBe('2ГИС');
|
|
expect($c->region)->toBe('Красноярск');
|
|
expect($c->description)->toBe('Ломбард, автоломбард');
|
|
expect($c->isFederal)->toBeFalse();
|
|
});
|
|
|
|
it('минимальная карточка: только имя, остальное по умолчанию', function () {
|
|
$c = new ResolvedCompetitor(name: 'Только Имя');
|
|
|
|
expect($c->name)->toBe('Только Имя');
|
|
expect($c->siteUrl)->toBeNull();
|
|
expect($c->phones)->toBe([]);
|
|
expect($c->directoryUrl)->toBeNull();
|
|
expect($c->source)->toBeNull();
|
|
expect($c->region)->toBeNull();
|
|
expect($c->description)->toBeNull();
|
|
expect($c->isFederal)->toBeFalse();
|
|
// local=false ⇒ нет местной карточки: ни 2ГИС, ни Яндекс
|
|
expect($c->isLocal())->toBeFalse();
|
|
});
|
|
|
|
it('isLocal() истинно, когда есть ссылка на карточку справочника', function () {
|
|
$c = new ResolvedCompetitor(name: 'X', directoryUrl: 'https://2gis.ru/krasnoyarsk/firm/9', source: '2ГИС');
|
|
expect($c->isLocal())->toBeTrue();
|
|
});
|