seed(CatalogoSeeder::class); $this->actingAs(User::factory()->create()); } public function test_le_pagine_admin_del_catalogo_si_aprono(): void { $modello = Modello::where('codice', 'finestra_1_anta')->firstOrFail(); Livewire::test(ListSistemi::class)->assertOk()->assertSee('PVC'); Livewire::test(ListModelli::class)->assertOk()->assertCanSeeTableRecords([$modello]); Livewire::test(CreateModello::class)->assertOk(); Livewire::test(EditModello::class, ['record' => $modello->getRouteKey()]) ->assertOk() ->assertFormSet(['codice' => 'finestra_1_anta', 'descrizione' => 'FINESTRA 1 ANTA, A/R']); } public function test_dai_sistemi_si_aprono_i_modelli_filtrati_per_sistema(): void { $pvc = Sistema::where('codice', 'pvc')->firstOrFail(); $altro = Sistema::create(['codice' => 'legno', 'nome' => 'Legno']); $modelloAltro = Modello::create(['sistema_id' => $altro->id, 'codice' => 'finestra_1_anta', 'nome' => 'Finestra legno', 'attivo' => false]); Livewire::test(ListSistemi::class) ->assertTableActionHasUrl('modelli', ModelloResource::getUrl('index', [ 'tableFilters' => ['sistema' => ['value' => $pvc->id]], ]), $pvc); Livewire::withQueryParams(['tableFilters' => ['sistema' => ['value' => $pvc->id]]]) ->test(ListModelli::class) ->assertCountTableRecords($pvc->modelli()->count()) ->assertCanNotSeeTableRecords([$modelloAltro]); } public function test_un_modello_attivo_richiede_la_configurazione_3d(): void { $sistema = Modello::firstOrFail()->sistema_id; Livewire::test(CreateModello::class) ->fillForm(['sistema_id' => $sistema, 'codice' => 'nuovo', 'nome' => 'Nuovo', 'attivo' => true]) ->call('create') ->assertHasFormErrors(['cartella' => 'required', 'file_modello' => 'required', 'categoria' => 'required']); Livewire::test(CreateModello::class) ->fillForm(['sistema_id' => $sistema, 'codice' => 'finestra_1_anta', 'nome' => 'Doppione', 'attivo' => false]) ->call('create') ->assertHasFormErrors(['codice' => 'unique']); } }