42 lines
1.2 KiB
PHP
42 lines
1.2 KiB
PHP
<?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'));
|
|
});
|