52 lines
2.4 KiB
PHP
52 lines
2.4 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
use App\Providers\AutopodborServiceProvider;
|
||
|
|
use App\Services\Autopodbor\Agent\CompetitorAgent;
|
||
|
|
use App\Services\Autopodbor\Agent\Fetch\CachingPageFetcher;
|
||
|
|
use App\Services\Autopodbor\Agent\Fetch\XfetchClient;
|
||
|
|
use App\Services\Autopodbor\Agent\RealCompetitorAgent;
|
||
|
|
|
||
|
|
// Проводка флага render_cache: когда ВКЛ — загрузчик карточек оборачивается CachingPageFetcher
|
||
|
|
// (общий кэш для шага 1 и шага 2), когда ВЫКЛ — фетчер отдаётся как есть (регресс). Граф собирается
|
||
|
|
// в обоих режимах без ошибок.
|
||
|
|
|
||
|
|
it('render_cache ВЫКЛ → фетчер отдаётся как есть (без обёртки)', function () {
|
||
|
|
config()->set('autopodbor.render_cache', false);
|
||
|
|
$p = new AutopodborServiceProvider(app());
|
||
|
|
$inner = new XfetchClient(apiKey: 'k');
|
||
|
|
|
||
|
|
expect($p->wrapCache($inner))->toBe($inner);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('render_cache ВКЛ → фетчер обёрнут CachingPageFetcher', function () {
|
||
|
|
config()->set('autopodbor.render_cache', true);
|
||
|
|
$p = new AutopodborServiceProvider(app());
|
||
|
|
$inner = new XfetchClient(apiKey: 'k');
|
||
|
|
|
||
|
|
expect($p->wrapCache($inner))->toBeInstanceOf(CachingPageFetcher::class);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('граф CompetitorAgent собирается под render_cache ВКЛ (self-render, deep+real+reverse) без ошибок', function () {
|
||
|
|
config()->set('autopodbor.render_cache', true);
|
||
|
|
config()->set('autopodbor.self_render', true);
|
||
|
|
config()->set('services.self_render', ['endpoint' => 'https://render.local/render', 'key' => 'k', 'concurrency' => 4]);
|
||
|
|
config()->set('autopodbor.deep_study', true);
|
||
|
|
config()->set('autopodbor.real_find', true);
|
||
|
|
config()->set('autopodbor.phone_reverse', true);
|
||
|
|
config()->set('autopodbor.phone_reverse_yandex', true);
|
||
|
|
|
||
|
|
expect(app()->make(CompetitorAgent::class))->toBeInstanceOf(RealCompetitorAgent::class);
|
||
|
|
});
|
||
|
|
|
||
|
|
it('граф собирается под render_cache ВКЛ в режиме xf4 (self_render ВЫКЛ) — регресс', function () {
|
||
|
|
config()->set('autopodbor.render_cache', true);
|
||
|
|
config()->set('autopodbor.self_render', false);
|
||
|
|
config()->set('autopodbor.deep_study', true);
|
||
|
|
config()->set('autopodbor.real_find', true);
|
||
|
|
config()->set('autopodbor.phone_reverse', true);
|
||
|
|
|
||
|
|
expect(app()->make(CompetitorAgent::class))->toBeInstanceOf(RealCompetitorAgent::class);
|
||
|
|
});
|