netgescon-day0/tests/Feature/UnitaCondominoInquilinoRoleToggleTest.php

53 lines
1.7 KiB
PHP

<?php
use App\Filament\Pages\UnitaImmobiliarePage;
use App\Models\Stabile;
use App\Models\UnitaImmobiliare;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Livewire\Livewire;
test('unita immobiliare page allows toggling between condomino and inquilino role', function () {
DB::table('amministratori')->insertOrIgnore([
'id' => 1,
'nome' => 'Admin',
'cognome' => 'Test',
'created_at' => now(),
'updated_at' => now(),
]);
$user = User::factory()->create();
if (method_exists($user, 'assignRole')) {
\Spatie\Permission\Models\Role::firstOrCreate(['name' => 'admin', 'guard_name' => 'web']);
$user->assignRole('admin');
}
$stabile = Stabile::create([
'amministratore_id' => 1,
'codice_stabile' => '0013',
'denominazione' => 'Stabile Test 0013',
'indirizzo' => 'Via Ottaviano 105',
'citta' => 'Roma',
'cap' => '00192',
'provincia' => 'RM',
]);
$unita = UnitaImmobiliare::create([
'stabile_id' => $stabile->id,
'scala' => 'A',
'interno' => '1',
'codice_unita' => '0013-A-1',
]);
Livewire::actingAs($user)
->test(UnitaImmobiliarePage::class, ['unita_id' => $unita->id])
->assertSet('condInquilActive', 'C')
->assertSet('estrattoTipo', 'condomini')
->call('setCondInquilActive', 'I')
->assertSet('condInquilActive', 'I')
->assertSet('estrattoTipo', 'inquilini')
->call('setCondInquilActive', 'C')
->assertSet('condInquilActive', 'C')
->assertSet('estrattoTipo', 'condomini');
});