Ajoute fiche d'identité informatique, catalogue prestataires et schémas draw.io

- Fiche d'identité par organisation (technicien référent, FAI, IP publiques,
  prestataires liés) accessible depuis un nouveau menu.
- Nouveau module Prestataires dédié (catalogue léger réutilisable entre
  communes, avec journal de suivi des échanges) plutôt que de détourner les
  organisations de type "Fournisseur".
- Nouveau menu Infrastructure par organisation avec schémas réseau/fonctionnel
  édités via draw.io embarqué (URL configurable, cf. réglages admin).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
mrKamoo
2026-08-21 15:55:23 +02:00
co-authored by Claude Sonnet 5
parent 74c0b01a2e
commit 3c87ced1e4
28 changed files with 1365 additions and 1 deletions
+76
View File
@@ -0,0 +1,76 @@
<?php
namespace Tests\Feature;
use App\Models\Provider;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Livewire\Livewire;
use Tests\TestCase;
class ProviderTest extends TestCase
{
use RefreshDatabase;
public function test_provider_index_page_renders_for_an_authenticated_user(): void
{
$user = User::factory()->create();
$response = $this->actingAs($user)->get(route('providers.index'));
$response->assertOk();
$response->assertSee('Prestataires');
}
public function test_can_create_a_provider(): void
{
$user = User::factory()->create();
$this->actingAs($user);
Livewire::test('providers.form')
->set('name', 'Orange Pro')
->set('phone', '09 70 00 00 00')
->set('email', 'contact@orange-pro.fr')
->call('save')
->assertHasNoErrors();
$this->assertDatabaseHas('providers', ['name' => 'Orange Pro', 'email' => 'contact@orange-pro.fr']);
}
public function test_blank_optional_fields_are_stored_as_null_not_empty_strings(): void
{
$user = User::factory()->create();
$this->actingAs($user);
Livewire::test('providers.form')
->set('name', 'Minimal Provider')
->call('save')
->assertHasNoErrors();
$provider = Provider::where('name', 'Minimal Provider')->firstOrFail();
$this->assertNull($provider->phone);
$this->assertNull($provider->email);
$this->assertNull($provider->website);
$this->assertNull($provider->notes);
}
public function test_can_add_a_log_entry_to_a_provider(): void
{
$user = User::factory()->create();
$provider = Provider::create(['name' => 'Orange Pro']);
$this->actingAs($user);
Livewire::test('providers.form', ['provider' => $provider])
->set('newLogCategory', 'contact')
->set('newLogNote', "Mail envoyé le 21/08 pour demander des précisions sur le contrat.")
->call('addLogEntry')
->assertHasNoErrors();
$this->assertDatabaseHas('provider_log_entries', [
'provider_id' => $provider->id,
'category' => 'contact',
'created_by' => $user->id,
]);
}
}