Files
portal/app/tests/Unit/Autopodbor/AgentDtoTest.php
T
Дмитрий 0a111d9f85 feat(автоподбор): DTO контракта движка (6 шт.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 13:20:10 +03:00

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);
});