create(); DB::statement("SET LOCAL app.current_tenant_id = ".$tenant->id); Project::factory()->create(['tenant_id' => $tenant->id, 'signal_type' => 'site', 'signal_identifier' => 'okna.ru']); $dedup = app(AutopodborDedup::class); expect($dedup->existingProjectId($tenant->id, 'site', 'https://www.okna.ru/'))->not->toBeNull() // нормализуется к okna.ru ->and($dedup->existingProjectId($tenant->id, 'site', 'drugoy.ru'))->toBeNull(); }); it('дедупит источники внутри списка', function () { $dedup = app(AutopodborDedup::class); $unique = $dedup->dedupSources([ ['signal_type' => 'call', 'identifier' => '+7 843 200-11-22'], ['signal_type' => 'call', 'identifier' => '88432001122'], // тот же номер ['signal_type' => 'site', 'identifier' => 'www.okna.ru'], ]); expect($unique)->toHaveCount(2); expect($unique[0])->toHaveKey('dedup_key'); }); it('дедупит конкурентов', function () { $dedup = app(AutopodborDedup::class); $unique = $dedup->dedupCompetitors([ ['name' => 'Окна Комфорт', 'site_url' => 'https://okna-komfort.ru/'], ['name' => 'Окна Комфорт', 'site_url' => 'okna-komfort.ru'], // тот же домен ['name' => 'Пластика Окон', 'site_url' => 'plastika.ru'], ]); expect($unique)->toHaveCount(2); expect($unique[0])->toHaveKey('dedup_key'); });