Files
cesizen/WEB/tests/Feature/AdminAccessTest.php
T
sam c51f17a74c test: fiabilisation de la suite de tests
- 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>
2026-07-08 18:44:13 +02:00

46 lines
1.1 KiB
PHP

<?php
namespace Tests\Feature;
use App\Models\Role;
use App\Models\User;
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']);
// L'accès au panel Filament exige un compte actif ET le rôle Admin
// (cf. User::canAccessPanel()).
$user = User::factory()->create([
'id_role' => $role->id,
'is_active' => true,
]);
$response = $this->actingAs($user)->get('/admin');
$response->assertSuccessful();
}
}