Hi people ! I have another problem with my test. I have this error in output.
FAIL Tests\Feature\LoginTest
✓ user can load login page
✓ user can authenticates with his credentials
✓ user cannot view login page after authentification
✕ user cannot authenticates with incorrect credentials
Session missing error: password Failed asserting that false is true.
at tests/Feature/LoginTest.php:106
102| 'password' => 'raprock12',
103| ]);
104|
105| $response->assertRedirect(route('login'));
> 106| $response->assertSessionHasErrors('password');
107| $this->assertTrue(session()->hasOldInput('email'));
108| $this->assertFalse(session()->hasOldInput('password'));
109| $this->assertGuest();
110| }
But still manually, my custom authentifications works... after registration, a redirected to my login page and when test manually my inputs show errors in there are.
public function loginPost(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required'
]);
//on retrouve l'utilisateur dans la base de données
$user = User::where('email', $request->email)->first();
// si celui-ci est trouvé...
if ($user) {
// /**
// * ...on vérifie que le mot de passe entré en le champs correspond avec celui enregistré en BDD.
// * Si c'est le cas...
// */
if (Hash::check($request->password, $user->password)) {
// l'utilisateur sera alors connecté.
Auth::attempt(['email' => $request->email, 'password' => $request->password]);
// il sera également redigigé vers la page de connexion.
return redirect()->route('home');
}
/**
* si une des saisie correspond à celles en BDD mais qu'il y a des erreurs...
* ... on le redirige vers la page de connexion avec sa saisie précédent dans le champs email et l'erreur lui indiquant qu'il y a des erreurs dans ses saisies.
*/
return redirect()->route('login')->withInput()->withErrors([
'email' => 'Vous identifiants sont incorrect.'
]);
// si son email est introuvable en BDD
}
if ($user === null) {
//... on le redirige vers la page de connexion avec sa saisie précédent dans le champs email et l'erreur lui indiquant que son email n'est pas trouvable en bdd
return redirect()->intended(route('login'))->withInput()->withErrors([
'email' => 'Cet email nous est inconnu.'
]);
}
return redirect()->route('login')->withInput()->withErrors([
'email' => 'Vous identifiants sont incorrect.'
]);
// return redirect()->intended(route('login'))->withInput()->withErrors([
// 'email' => 'Vous identifiants sont incorrect.'
// ]);
}
Can you help me please? Thank you in advance.