Files
portal/app/tests/Feature/Autopodbor/DeepStudyPhoneReverseWiringTest.php
T
Дмитрий ff1c3ed210 test(autopodbor): закрепить phone_reverse_parallel=false в тесте композита
Тест «reverse = композит» жёстко ждал CompositePhoneReverse, но не пинил флаг
parallel — из-за dev-.env (AUTOPODBOR_PHONE_REVERSE_PARALLEL=true) собирался
ParallelPhoneReverse и тест падал. Явно пиним parallel=false: тест проверяет
именно композитную ветку, независимо от окружения. Autopodbor-набор 476/476.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 12:13:47 +03:00

46 lines
2.6 KiB
PHP

<?php
use App\Services\Autopodbor\Agent\CompetitorAgent;
use App\Services\Autopodbor\Agent\RealCompetitorAgent;
use App\Services\Autopodbor\Agent\Study\DeepStudyCollector;
use App\Services\Autopodbor\Agent\Study\PhoneReverse;
it('при deep_study+phone_reverse в DeepStudyCollector проброшен реальный PhoneReverse', function () {
config()->set('autopodbor.deep_study', true);
config()->set('autopodbor.phone_reverse', true);
$agent = app(CompetitorAgent::class);
expect($agent)->toBeInstanceOf(RealCompetitorAgent::class);
$deep = (new ReflectionProperty(RealCompetitorAgent::class, 'deep'))->getValue($agent);
expect($deep)->toBeInstanceOf(DeepStudyCollector::class);
$reverse = (new ReflectionProperty(DeepStudyCollector::class, 'reverse'))->getValue($deep);
expect($reverse)->toBeInstanceOf(PhoneReverse::class);
});
it('при phone_reverse+phone_reverse_yandex reverse = композит (2ГИС + Яндекс)', function () {
config()->set('autopodbor.deep_study', true);
config()->set('autopodbor.phone_reverse', true);
config()->set('autopodbor.phone_reverse_yandex', true);
// Ветка композита проверяется явно; параллельный разворот — отдельный флаг, здесь пиним ВЫКЛ,
// иначе dev-.env (AUTOPODBOR_PHONE_REVERSE_PARALLEL=true) даёт ParallelPhoneReverse.
config()->set('autopodbor.phone_reverse_parallel', false);
$agent = app(\App\Services\Autopodbor\Agent\CompetitorAgent::class);
$deep = (new ReflectionProperty(\App\Services\Autopodbor\Agent\RealCompetitorAgent::class, 'deep'))->getValue($agent);
$reverse = (new ReflectionProperty(\App\Services\Autopodbor\Agent\Study\DeepStudyCollector::class, 'reverse'))->getValue($deep);
expect($reverse)->toBeInstanceOf(\App\Services\Autopodbor\Agent\Study\CompositePhoneReverse::class);
});
it('только phone_reverse (без Яндекса) → reverse = 2ГИС-экспандер (не композит)', function () {
config()->set('autopodbor.deep_study', true);
config()->set('autopodbor.phone_reverse', true);
config()->set('autopodbor.phone_reverse_yandex', false);
$agent = app(\App\Services\Autopodbor\Agent\CompetitorAgent::class);
$deep = (new ReflectionProperty(\App\Services\Autopodbor\Agent\RealCompetitorAgent::class, 'deep'))->getValue($agent);
$reverse = (new ReflectionProperty(\App\Services\Autopodbor\Agent\Study\DeepStudyCollector::class, 'reverse'))->getValue($deep);
expect($reverse)->toBeInstanceOf(\App\Services\Autopodbor\Agent\Study\PhoneReverseExpander::class);
});