やりたいこと
ログインに失敗したときにFlash messagesがちゃんと表示されているかのテストをしたい
下記のコードじゃうまくいかないんじゃ
public function testLoginUnregisteredUser()
{
$data = [
'email' => 'thisisunregistereduser@hoge.com',
'password' => 'thisisunregistereduser',
];
$response = $this->post('login', $data);
$response->assertStatus(302);
$response->assertSeeText('アカウントが登録されていません');
}
リダイレクトのレスポンスが302で返されるのでassertSeeText
では確認できません。
そんなときはassertSessionHasを使うのじゃ
こんなときは直接Sessionを見に行くと吉
public function testLoginUnregisteredUser()
{
$data = [
'email' => 'thisisunregistereduser@hoge.com',
'password' => 'thisisunregistereduser',
];
$response = $this->post('login', $data);
$response->assertStatus(302);
$response->assertSessionHas('warning', 'アカウントが登録されていません');
}