c51f17a74c
- BusinessLogicTest: utilise le vrai modele StressEvent + auth Sanctum - AdminAccessTest: compte actif requis pour l'acces au panel - SecurityHeadersTest: verifie les en-tetes de securite - suppression du modele orphelin EvenementStress Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
39 lines
1.1 KiB
PHP
39 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use App\Models\Role;
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use PHPUnit\Framework\Attributes\Test;
|
|
use Tests\TestCase;
|
|
|
|
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);
|
|
}
|
|
}
|