2026-06-28 13:20:10 +03:00
|
|
|
<?php
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
use App\Services\Autopodbor\Agent\Dto\FindCompetitorsRequest;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\FindCompetitorsResult;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\ResolveByNameRequest;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\ResolveByNameResult;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\StudyCompetitorRequest;
|
|
|
|
|
use App\Services\Autopodbor\Agent\Dto\StudyCompetitorResult;
|
2026-06-28 13:20:10 +03:00
|
|
|
|
|
|
|
|
it('конструирует все DTO', function () {
|
2026-06-30 21:06:10 +03:00
|
|
|
$fReq = new FindCompetitorsRequest(regionCode: 16, examples: ['okna.ru'], aboutSelf: ['description' => 'окна'], includeFederal: true, maxCompetitors: 15);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($fReq->regionCode)->toBe(16)->and($fReq->examples)->toContain('okna.ru')->and($fReq->includeFederal)->toBeTrue();
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
$fRes = new FindCompetitorsResult(competitors: [['name' => 'Окна Комфорт', 'relevance_pct' => 100]]);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($fRes->competitors[0]['name'])->toBe('Окна Комфорт');
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
$sReq = new StudyCompetitorRequest(competitor: ['name' => 'Окна Комфорт', 'site_url' => 'okna.ru'], regionCode: 16);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($sReq->competitor['site_url'])->toBe('okna.ru')->and($sReq->regionCode)->toBe(16);
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
$sRes = new StudyCompetitorResult(sources: [['signal_type' => 'site', 'identifier' => 'okna.ru']]);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($sRes->sources[0]['signal_type'])->toBe('site');
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
$rReq = new ResolveByNameRequest(name: 'Окна Комфорт', regionCode: 16);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($rReq->name)->toBe('Окна Комфорт');
|
|
|
|
|
|
2026-06-30 21:06:10 +03:00
|
|
|
$rRes = new ResolveByNameResult(candidates: [['name' => 'Окна Комфорт']]);
|
2026-06-28 13:20:10 +03:00
|
|
|
expect($rRes->candidates)->toHaveCount(1);
|
|
|
|
|
});
|