Я пытаюсь написать тест для процедуры выхода из системы для Laravel Паспорт. Но каждый раз, когда я запускаю его, я получаю сообщение об ошибке expected 401 but got 200
, которое означает, что пользователь фактически не выходит из системы.
Функциональность выхода из системы в AuthController выглядит следующим образом:
public function logout(Request $request): JsonResponse
{
$accessToken = $request->user()->token();
$refreshToken = DB::table('oauth_refresh_tokens')
->where('access_token_id', $accessToken->id)
->update([
'revoked' => true
]);
$accessToken->revoke();
return response()->json(['message' => 'Successfully logged out']);
}
Это работает нормально, но проблема заключается в тестировании.
Мой тест выглядит следующим образом:
public function testUserIsLoggedOutProperly(): void
{
$user = factory(User::class)->create();
Passport::actingAs($user);
$this->json('GET', 'api/user')->assertStatus(JsonResponse::HTTP_OK);
$this->json('GET', 'api/logout')->assertStatus(JsonResponse::HTTP_OK);
$this->json('GET', 'api/user')
->assertStatus(JsonResponse::HTTP_UNAUTHORIZED);
}
Последнее утверждение фактически возвращает HTTP_OK (200)
Любой помощь будет принята с благодарностью.