Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Filament\Resources\ModelloResource;
|
||||
use App\Filament\Resources\ModelloResource\Pages\CreateModello;
|
||||
use App\Filament\Resources\ModelloResource\Pages\EditModello;
|
||||
use App\Filament\Resources\ModelloResource\Pages\ListModelli;
|
||||
use App\Filament\Resources\SistemaResource\Pages\ListSistemi;
|
||||
use App\Models\Modello;
|
||||
use App\Models\Sistema;
|
||||
use App\Models\User;
|
||||
use Database\Seeders\CatalogoSeeder;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Livewire\Livewire;
|
||||
use Tests\TestCase;
|
||||
|
||||
class CatalogoAdminTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
Storage::fake('public');
|
||||
$this->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']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user