parse(twoGisFixture(), $url); expect($c)->not->toBeNull(); expect($c->name)->toBe('КрасЛомбард'); // из , первый сегмент expect($c->siteUrl)->toBe('http://kraslombard24.ru'); // чистый url, НЕ редирект link.2gis expect($c->phones)->toContain('73912920000'); // нормализован к 7XXXXXXXXXX expect($c->region)->toBe('Красноярск'); // город — последний сегмент title expect($c->description)->toContain('Ломбарды'); // рубрики expect($c->source)->toBe('2ГИС'); expect($c->directoryUrl)->toBe('https://2gis.ru/krasnoyarsk/firm/70000001040792812'); // ?stat срезан expect($c->isLocal())->toBeTrue(); expect($c->isFederal)->toBeFalse(); }); it('НЕ берёт редирект link.2gis как сайт конкурента', function () { $url = 'https://2gis.ru/krasnoyarsk/firm/70000001040792812'; $c = (new TwoGisResolver)->parse(twoGisFixture(), $url); expect($c->siteUrl)->not->toContain('link.2gis.ru'); }); it('возвращает null, когда в HTML нет данных карточки (пустая оболочка 2ГИС)', function () { $c = (new TwoGisResolver)->parse('<html><head><title>2gis.ru', 'https://2gis.ru/x/firm/1'); expect($c)->toBeNull(); });