create(); $user->assignRole('super-admin'); $this->actingAs($user); $stabile = Stabile::factory()->create(); $servizio = StabileServizio::query()->create([ 'stabile_id' => $stabile->id, 'tipo' => 'acqua', 'attivo' => true, 'nome' => 'Acqua Potabile' ]); $unit1 = UnitaImmobiliare::factory()->create([ 'stabile_id' => $stabile->id, 'interno' => '6', 'acqua_gateway_device_id' => null ]); $unit2 = UnitaImmobiliare::factory()->create([ 'stabile_id' => $stabile->id, 'interno' => '7', 'acqua_gateway_device_id' => '22919618' ]); \App\Support\StabileContext::setActiveStabileId($user, $stabile->id); \App\Support\AnnoGestioneContext::setActiveAnno(2024); $csvContent = "#ID,Modulo n°,Contatore n°,Nome,Cognome,Indirizzo,Interno,Lettura,Auto-lettura,Tensione,Date e tipo Frode,Flusso inverso (m3),Data allarme perdita,Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre\n" . "22919617,,,,,,6,\"411,560 m3\",0,,,\"0,000 m3\",,,,,\n" . "22919618,,,,,,7,\"662,184 m3\",0,,,\"0,000 m3\",,,,,"; $file = UploadedFile::fake()->createWithContent('readings.csv', $csvContent); Livewire::test(ServiziStabileArchivio::class) ->set('electronicReadingsFile', $file) ->call('importElectronicReadings') ->assertHasNoErrors(); $unit1->refresh(); expect($unit1->acqua_gateway_device_id)->toBe('22919617'); $readings = StabileServizioLettura::query() ->where('stabile_id', $stabile->id) ->get(); expect($readings)->toHaveCount(2); $r1 = $readings->firstWhere('unita_immobiliare_id', $unit1->id); expect((float)$r1->lettura_fine)->toEqual(411.560); expect($r1->tipologia_lettura)->toBe('elettronica_remota'); $r2 = $readings->firstWhere('unita_immobiliare_id', $unit2->id); expect((float)$r2->lettura_fine)->toEqual(662.184); });