create(); Role::firstOrCreate(['name' => 'amministratore', 'guard_name' => 'web']); $user->assignRole('amministratore'); DB::table('amministratori')->insertOrIgnore([ 'id' => 1, 'user_id' => $user->id, 'nome' => 'Mario', 'cognome' => 'Rossi', 'codice_amministratore' => 'ADM0001', 'created_at' => now(), 'updated_at' => now(), ]); $stabile = Stabile::create([ 'codice_stabile' => '0099', 'denominazione' => 'Condominio Test Unitario', 'indirizzo' => 'Via Test 1', 'citta' => 'Roma', 'cap' => '00100', 'provincia' => 'RM', 'codice_fiscale' => '99999990580', 'amministratore_id' => 1, ]); $unita = UnitaImmobiliare::create([ 'stabile_id' => $stabile->id, 'interno' => '1', 'scala' => 'A', ]); $proprietario = Persona::create([ 'cognome' => 'Rossi', 'nome' => 'Mario', 'codice_fiscale' => 'RSSMRA80A01H501U', ]); $inquilino = Persona::create([ 'cognome' => 'Bianchi', 'nome' => 'Luigi', 'codice_fiscale' => 'BNCLGU85B02H501Z', ]); PersonaUnitaRelazione::create([ 'unita_id' => $unita->id, 'persona_id' => $proprietario->id, 'tipo_relazione' => 'proprietario', 'quota_relazione' => 100, 'data_inizio' => '2020-01-01', 'attivo' => 1, ]); PersonaUnitaRelazione::create([ 'unita_id' => $unita->id, 'persona_id' => $inquilino->id, 'tipo_relazione' => 'inquilino', 'quota_relazione' => 100, 'data_inizio' => '2020-01-01', 'attivo' => 1, ]); $response = $this->actingAs($user)->get("/admin-filament/condomini/nominativi?stabile_id={$stabile->id}"); expect($response->status())->toBeIn([200, 302]); }); it('fe scanner correctly matches invoices strictly by codice fiscale without arbitrary fallback', function () { $user = User::factory()->create(); Role::firstOrCreate(['name' => 'amministratore', 'guard_name' => 'web']); $user->assignRole('amministratore'); DB::table('amministratori')->insertOrIgnore([ 'id' => 1, 'user_id' => $user->id, 'nome' => 'Admin', 'cognome' => 'Test', 'codice_amministratore' => 'ADM0001', 'created_at' => now(), 'updated_at' => now(), ]); $stabile = Stabile::create([ 'codice_stabile' => '0098', 'denominazione' => 'Condominio Via Test 10', 'indirizzo' => 'Via Test 10', 'citta' => 'Roma', 'cap' => '00100', 'provincia' => 'RM', 'codice_fiscale' => '88888880581', 'amministratore_id' => 1, ]); $xmlContentMatching = << IT01234567890 FORNITORE TEST SRL 88888880581 CONDOMINIO VIA TEST 10 TD01 EUR 2026-03-01 FT-TEST-001 122.00 1 Manutenzione Ordinaria Impianto 100.00 100.00 22.00 22.00 100.00 22.00 XML; $importer = app(FatturaElettronicaImporter::class); $result = $importer->importXml($xmlContentMatching, (int) $stabile->id, 'FT-TEST-001.xml'); expect($result['status'])->toBe('imported'); $fe = FatturaElettronica::where('numero_fattura', 'FT-TEST-001')->first(); expect($fe)->not->toBeNull(); expect((int) $fe->stabile_id)->toBe((int) $stabile->id); expect($fe->destinatario_cf)->toBe('88888880581'); });