Я делаю тест http, но у меня выходит
Expected status code 200 but received 500.
Failed asserting that false is true.
При этом с таким запросом во вью когда я отправляю данные через axios то у меня все норма получается
Вот код теста
public function testLogin()
{
$responca = $this->post('/api/login', [
'username' => 'r.absalyamov',
'password' => 'kazan1811'
]);
$responca->assertStatus(200);
}
Кто может подсказать в чем проблема может быть, почему у меня выходит тут 500 ошибка, а когда я делаю неправильный пароль то срабатывает утверждение 200. Ну и соотвтетсвенно когда я неправильно ввожу логин то ошибка Expected status code 200 but received 401.
У меня только такой вариант не понятен, когда я ввожу правильный usename и password почему у меня срабатывает 500 ошибка, хотя не в тесте такого статуса не приходит
Контроллер который тестируется
public function login(Request $request)
{
// Проверяем на пустые поля
$errors = Validator::make($request->all(), [
'username' => 'required',
'password' => 'required'
])->errors();
Если есть значение то выводим 401 ошибку
if (count($errors)){
return response(['errors' => $errors], 401);
}
//Проверяем есть ли пользователь
$user = User::where('name', $request->username)->first();
if (!$user)
return response(['status' => 'error', 'message' => 'Пользователь не найден'], 401);//Если пользователя нет, то выводим 401 ошибку
//Проверяем пароль
if (Hash::check($request->password, $user->password)){
//Если все нормально, то создаем api токен
$response = new ApiTokenUser();
$response = $response->setToken($user->email, $request->password);
$response = json_decode((string) $response->getBody(), true); // И формируем ответ
} else {
$response = ['errors' => true, 'message' => 'Неверный пароль']; // формируем ответ
}
//Выводим клиенту что пришло
return response($response);
}