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