0a111d9f85
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
1.3 KiB
PHP
24 lines
1.3 KiB
PHP
<?php
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\{FindCompetitorsRequest, FindCompetitorsResult, StudyCompetitorRequest, StudyCompetitorResult, ResolveByNameRequest, ResolveByNameResult};
|
|
|
|
it('конструирует все DTO', function () {
|
|
$fReq = new FindCompetitorsRequest(regionCode:16, examples:['okna.ru'], aboutSelf:['description'=>'окна'], includeFederal:true, maxCompetitors:15);
|
|
expect($fReq->regionCode)->toBe(16)->and($fReq->examples)->toContain('okna.ru')->and($fReq->includeFederal)->toBeTrue();
|
|
|
|
$fRes = new FindCompetitorsResult(competitors:[['name'=>'Окна Комфорт','relevance_pct'=>100]]);
|
|
expect($fRes->competitors[0]['name'])->toBe('Окна Комфорт');
|
|
|
|
$sReq = new StudyCompetitorRequest(competitor:['name'=>'Окна Комфорт','site_url'=>'okna.ru'], regionCode:16);
|
|
expect($sReq->competitor['site_url'])->toBe('okna.ru')->and($sReq->regionCode)->toBe(16);
|
|
|
|
$sRes = new StudyCompetitorResult(sources:[['signal_type'=>'site','identifier'=>'okna.ru']]);
|
|
expect($sRes->sources[0]['signal_type'])->toBe('site');
|
|
|
|
$rReq = new ResolveByNameRequest(name:'Окна Комфорт', regionCode:16);
|
|
expect($rReq->name)->toBe('Окна Комфорт');
|
|
|
|
$rRes = new ResolveByNameResult(candidates:[['name'=>'Окна Комфорт']]);
|
|
expect($rRes->candidates)->toHaveCount(1);
|
|
});
|