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:
co-authored by
Claude Sonnet 5
parent
74c0b01a2e
commit
3c87ced1e4
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\Organization;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Livewire\Livewire;
|
||||
use Tests\TestCase;
|
||||
|
||||
class InfrastructureTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_infrastructure_index_page_renders_for_an_authenticated_user(): void
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
$org = Organization::create(['name' => 'Test Commune', 'slug' => 'test-commune', 'org_type' => 'client']);
|
||||
|
||||
$response = $this->actingAs($user)->get(route('organizations.infrastructure.index', $org));
|
||||
|
||||
$response->assertOk();
|
||||
$response->assertSee('Infrastructure');
|
||||
}
|
||||
|
||||
public function test_can_create_a_diagram_and_it_opens_in_the_editor(): void
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
$org = Organization::create(['name' => 'Test Commune', 'slug' => 'test-commune', 'org_type' => 'client']);
|
||||
|
||||
$this->actingAs($user);
|
||||
|
||||
Livewire::test('infrastructure.index', ['organization' => $org])
|
||||
->set('newDiagramName', 'Schéma réseau - Mairie')
|
||||
->call('createDiagram')
|
||||
->assertHasNoErrors();
|
||||
|
||||
$this->assertDatabaseHas('documents', [
|
||||
'organization_id' => $org->id,
|
||||
'name' => 'Schéma réseau - Mairie',
|
||||
'type' => 'diagram',
|
||||
]);
|
||||
|
||||
$document = $org->documents()->where('type', 'diagram')->firstOrFail();
|
||||
|
||||
$response = $this->get(route('organizations.infrastructure.edit', [$org, $document]));
|
||||
$response->assertOk();
|
||||
$response->assertSee('Schéma réseau - Mairie');
|
||||
}
|
||||
|
||||
public function test_saving_a_diagram_creates_a_new_version_only_when_content_changed(): void
|
||||
{
|
||||
$user = User::factory()->create();
|
||||
$org = Organization::create(['name' => 'Test Commune', 'slug' => 'test-commune', 'org_type' => 'client']);
|
||||
|
||||
$document = $org->documents()->create([
|
||||
'name' => 'Schéma test',
|
||||
'type' => 'diagram',
|
||||
'content' => '<mxfile>old</mxfile>',
|
||||
'current_version' => 1,
|
||||
'created_by' => $user->id,
|
||||
]);
|
||||
$document->versions()->create(['version' => 1, 'content' => '<mxfile>old</mxfile>', 'created_by' => $user->id]);
|
||||
|
||||
$this->actingAs($user);
|
||||
|
||||
Livewire::test('documents.diagram-editor', ['organization' => $org, 'document' => $document])
|
||||
->call('saveDiagram', '<mxfile>new</mxfile>');
|
||||
|
||||
$document->refresh();
|
||||
$this->assertSame('<mxfile>new</mxfile>', $document->content);
|
||||
$this->assertSame(2, $document->current_version);
|
||||
$this->assertCount(2, $document->versions);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user