This commit is contained in:
2026-05-14 19:00:55 +02:00
parent 85ad36880c
commit 7f95b8a2ef
64 changed files with 2179 additions and 26 deletions
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace Tests\Feature;
use App\Models\User;
use App\Models\Role;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
class AdminAccessTest extends TestCase
{
use RefreshDatabase;
public function test_guest_is_redirected_to_login(): void
{
$response = $this->get('/admin');
$response->assertRedirect('/login');
}
public function test_non_admin_user_cannot_access_admin_panel(): void
{
$role = Role::create(['libelle' => 'Utilisateur']);
$user = User::factory()->create(['id_role' => $role->id]);
$response = $this->actingAs($user)->get('/admin');
$response->assertForbidden();
}
public function test_admin_user_can_access_admin_panel(): void
{
$role = Role::create(['libelle' => 'Admin']);
$user = User::factory()->create(['id_role' => $role->id]);
$response = $this->actingAs($user)->get('/admin');
$response->assertSuccessful();
}
}
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\User;
use App\Models\StressEvent;
use App\Models\ResultatDiag;
use Illuminate\Foundation\Testing\RefreshDatabase;
class DiagnosticTest extends TestCase
{
use RefreshDatabase;
public function test_diagnostic_score_calculation_and_storage(): void
{
$this->withoutMiddleware();
// Créer un utilisateur
$user = User::factory()->create();
// Créer des événements de stress
$event1 = StressEvent::create(['event_name' => 'Event 1', 'points' => 100]);
$event2 = StressEvent::create(['event_name' => 'Event 2', 'points' => 60]);
// Simuler une requête de diagnostic
$response = $this->actingAs($user)
->post(route('diagnostics.store'), [
'events' => [$event1->id, $event2->id]
]);
// Vérifier la redirection et le score en session
$response->assertStatus(302);
$response->assertSessionHas('score', 160);
// Vérifier l'enregistrement en base de données
$this->assertDatabaseHas('resultat_diags', [
'id_user' => $user->id,
'score_total' => 160,
'niveau_stress' => 'Modéré'
]);
}
}