Files
portal/app/tests/Unit/Autopodbor/Extract/DirectoryParserTest.php
T

30 lines
1.7 KiB
PHP
Raw Normal View History

<?php
use App\Services\Autopodbor\Agent\Extract\DirectoryParser;
it('берёт ссылки на карточки филиалов из списка 2ГИС', function () {
$html = '<a href="/krasnoyarsk/firm/111">Ф1</a><a href="/krasnoyarsk/firm/222">Ф2</a>'
.'<a href="/krasnoyarsk/firm/111">дубль</a><a href="/about">не филиал</a>';
$links = (new DirectoryParser)->parseBranchList($html);
expect($links)->toBe(['/krasnoyarsk/firm/111', '/krasnoyarsk/firm/222']);
});
it('из карточки 2ГИС берёт телефон из tel: и адрес из заголовка', function () {
$html = '<html><head><title>КрасЛомбард, улица Ладо Кецховели, 30, Красноярск — 2ГИС</title></head>'
.'<body><h1>КрасЛомбард</h1><a href="tel:+73912920000">+7 (391) 2...</a></body></html>';
$cards = (new DirectoryParser)->parseFirmCard($html, 'https://2gis.ru/krasnoyarsk/firm/111', '2ГИС');
expect($cards)->toHaveCount(1);
expect($cards[0]->number)->toBe('+73912920000');
expect($cards[0]->office)->toBe('улица Ладо Кецховели, 30');
expect($cards[0]->url)->toBe('https://2gis.ru/krasnoyarsk/firm/111');
expect($cards[0]->source)->toBe('2ГИС');
});
it('схлопывает неразрывные/двойные пробелы в адресе из заголовка', function () {
$html = "<title>КрасЛомбард,\u{00A0}улица Весны,\u{00A0}7а, Красноярск — 2ГИС</title>"
.'<a href="tel:+73912550000">x</a>';
$cards = (new DirectoryParser)->parseFirmCard($html, 'u', '2ГИС');
expect($cards[0]->office)->toBe('улица Весны, 7а');
});