Paillasse/portail/tests/Feature/ConnexionProfTest.php

43 lines
1.4 KiB
PHP
Raw Normal View History

<?php
use App\Models\User;
use Illuminate\Support\Facades\Hash;
test('un prof se connecte avec son e-mail et son mot de passe', function () {
$prof = User::factory()->create(['password' => Hash::make('mot-de-passe-prof')]);
$this->post(route('connexion.prof'), [
'email' => $prof->email,
'password' => 'mot-de-passe-prof',
])->assertRedirect(route('mes-classes.index'));
$this->assertAuthenticatedAs($prof, 'web');
});
test('un mauvais mot de passe refuse la connexion', function () {
$prof = User::factory()->create(['password' => Hash::make('mot-de-passe-prof')]);
$this->post(route('connexion.prof'), [
'email' => $prof->email,
'password' => 'mauvais-mot-de-passe',
])->assertSessionHasErrors('email');
$this->assertGuest('web');
});
test('la page de connexion affiche le formulaire prof et élève', function () {
$this->get(route('login'))
->assertOk()
->assertSee('Je suis élève')
->assertSee('Je suis enseignant');
});
test('un prof connecté voit "Mes classes" dans le menu produit, pas la démo "Tableau de bord prof"', function () {
$classe = \App\Models\Classe::factory()->create();
commeProf($this, $classe->prof)
->get(route('mes-classes.index'))
->assertSee('Mes classes')
->assertDontSee('Tableau de bord prof')
->assertDontSee('outil=cockpit', false);
});