Paillasse/portail/tests/Feature/ConnexionEleveTest.php

43 lines
1.2 KiB
PHP
Raw Permalink Normal View History

<?php
use App\Models\Eleve;
use Illuminate\Support\Facades\Hash;
test('un élève se connecte avec son identifiant et son code secret, et voit son tableau de bord', function () {
$eleve = Eleve::factory()->create([
'prenom' => 'Léa',
'identifiant' => 'lea.m',
'code_secret' => Hash::make('ABC123'),
]);
$this->post(route('connexion.eleve'), [
'identifiant' => 'lea.m',
'code' => 'ABC123',
])->assertRedirect(route('eleve'));
$this->assertAuthenticatedAs($eleve, 'eleve');
$this->get(route('eleve'))
->assertOk()
->assertSee('Salut Léa')
->assertSee($eleve->classe->nom);
});
test('un mauvais code secret refuse la connexion élève', function () {
$eleve = Eleve::factory()->create([
'identifiant' => 'lea.m',
'code_secret' => Hash::make('ABC123'),
]);
$this->post(route('connexion.eleve'), [
'identifiant' => 'lea.m',
'code' => 'FAUXCODE',
])->assertSessionHasErrors('identifiant');
$this->assertGuest('eleve');
});
test('un élève non connecté est renvoyé vers la connexion', function () {
$this->get(route('eleve'))->assertRedirect(route('login'));
});