Ajout d'un test unitaire sur auth et calcul de stress
This commit is contained in:
+10
-1
@@ -3,8 +3,17 @@
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class Role extends Model
|
||||
{
|
||||
//
|
||||
use HasFactory;
|
||||
|
||||
// Cette ligne est CRUCIALE : elle autorise Laravel à remplir la colonne 'libelle'
|
||||
protected $fillable = ['libelle'];
|
||||
|
||||
public function users()
|
||||
{
|
||||
return $this->hasMany(User::class, 'id_role');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ class User extends Authenticatable
|
||||
'name',
|
||||
'email',
|
||||
'password',
|
||||
'id_role',
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\User;
|
||||
use App\Models\Role;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
use PHPUnit\Framework\Attributes\Test;
|
||||
|
||||
class AuthSecurityTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase; // Réinitialise la BDD de test à chaque lancement
|
||||
|
||||
#[Test]
|
||||
public function un_utilisateur_non_authentifie_est_bloque()
|
||||
{
|
||||
// On tente d'accéder à la route de profil sans token
|
||||
$response = $this->postJson('/api/update-profile');
|
||||
|
||||
$response->assertStatus(401);
|
||||
}
|
||||
|
||||
#[Test]
|
||||
public function un_utilisateur_authentifie_peut_acceder_a_son_profil()
|
||||
{
|
||||
// 1. Préparation : Créer un rôle et un utilisateur
|
||||
$role = Role::create(['libelle' => 'Utilisateur']);
|
||||
$user = User::factory()->create(['id_role' => $role->id]);
|
||||
|
||||
// 2. Action : Simuler une connexion avec Sanctum
|
||||
$response = $this->actingAs($user, 'sanctum')
|
||||
->getJson('/api/profile'); // Remplace par une de tes routes protégées
|
||||
|
||||
// 3. Assertion : Vérifier que l'accès est accordé (200)
|
||||
$response->assertStatus(200);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class StressCalculationTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* A basic unit test example.
|
||||
*/
|
||||
public function test_stress_score_calculation(): void
|
||||
{
|
||||
// 1. Préparation (Données simulées de Holmes et Rahe)
|
||||
$eventPoints = [100, 73, 50]; // Décès conjoint, Divorce, Mariage
|
||||
|
||||
// 2. Action (La logique que tu veux tester)
|
||||
$totalScore = array_sum($eventPoints);
|
||||
|
||||
// 3. Assertion (La vérification)
|
||||
$this->assertEquals(223, $totalScore, "Le calcul du score total a échoué.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Teste la détermination du niveau de stress.
|
||||
*/
|
||||
public function test_stress_level_label(): void
|
||||
{
|
||||
$score = 250;
|
||||
$level = "";
|
||||
|
||||
if ($score >= 300) {
|
||||
$level = "Risque élevé";
|
||||
} elseif ($score >= 150) {
|
||||
$level = "Risque modéré";
|
||||
} else {
|
||||
$level = "Risque léger";
|
||||
}
|
||||
|
||||
$this->assertEquals("Risque modéré", $level);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user