Проблема, с которой вы столкнулись, может быть связана с тем, что при вызове метода token->revoke()
в Laravel Passport, токен пользователя помечается как отозванный, но сам по себе этот метод не удаляет данные из основной базы данных, то есть токен остается в базе данных и его можно использовать для аутентификации.
Для реализации правильного удаления токена из базы данных после вызова метода token->revoke()
в unit тесте, вам необходимо вручную удалять запись о токене из таблицы базы данных. Для этого вам потребуется использовать фасад DB
Laravel для выполнения запроса к базе данных.
Примерный код, который вы можете использовать в своем unit тесте для удаления токена из базы данных:
use IlluminateSupportFacadesDB; // Ваш код для отзыва токена $token->revoke(); // Удаление токена из базы данных DB::table('oauth_access_tokens')->where('id', $token->id)->delete();
Примечание: Пожалуйста, убедитесь, что ваш unit тест работает с отдельной тестовой базой данных или использует транзакции для изоляции изменений в базе данных во время выполнения тестов. Это поможет вам избежать нежелательных побочных эффектов при выполнении тестов.