twoGis(autopodborFixture('2gis-search-kraslombard.html')); expect(count($items))->toBe(4); foreach ($items as $it) { expect($it['path'])->toMatch('#^/[a-z0-9_-]+/firm/\d+$#'); expect($it['name'])->toBe('КрасЛомбард'); } // ссылки уникальны $paths = array_column($items, 'path'); expect($paths)->toBe(array_values(array_unique($paths))); }); it('вытаскивает организации из реальной выдачи Яндекса (ссылка + имя)', function () { $items = (new SearchResultsParser)->yandex(autopodborFixture('yandex-search-kraslombard.html')); expect(count($items))->toBe(5); $names = array_column($items, 'name'); expect($names)->toContain('КрасЛомбард')->toContain('Сибломбард')->toContain('Енисейская скупка золота'); foreach ($items as $it) { expect($it['url'])->toMatch('#^/maps/org/[a-z0-9_-]+/\d+$#'); } $urls = array_column($items, 'url'); expect($urls)->toBe(array_values(array_unique($urls))); }); it('пустая/неподходящая страница → пустой список', function () { $p = new SearchResultsParser; expect($p->twoGis('ничего'))->toBe([]); expect($p->yandex('ничего'))->toBe([]); });