- 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>
77 lines
2.3 KiB
PHP
77 lines
2.3 KiB
PHP
<?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,
|
|
]);
|
|
}
|
|
}
|