Написание команды двухшаговой смены email-адреса в кабинете пользователя с подтверждением по ссылке с токеном в письме.
- 00:00:24 Сценарий изменения Email
- 00:01:31 Запрос смены с токеном
- 00:02:42 Требования к методу смены
- 00:04:01 Написание юнит-тестов
- 00:08:03 Исходный код метода
- 00:09:40 Подтверждение почты по токену
- 00:13:42 Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Спасибо.
Спасибо за урок! Дмитрий, сегодня заметил, что проверка psalm на файлах юнит тестов вываливается с ошибками. Всего 38 ошибок по каждому юнит тесту. (после 9 урока psalm не запускал, только тесты). И их природа мне не особо понятна:
ERROR: PropertyNotSetInConstructor - src/Auth/Test/Unit/Entity/User/EmailTest.php:14:7 - Property PHPUnit\Framework\TestCase::$backupGlobals is not defined in constructor of App\Auth\Test\Unit\Entity\User\EmailTest and in any methods called in the constructor class EmailTest extends TestCase
ERROR: InternalMethod - src/Auth/Test/Unit/Entity/User/EmailTest.php:14:25 - The method PHPUnit\Framework\TestCase::__construct has been marked as internal class EmailTest extends TestCase
Вероятно, данные ошибки связаны с самим классом TestCase и избавиться от них без смены версии psalm или phpunit не выйдет.
Посмотри свой файл конфигурации для psalm и сравни с файлом Дмитрия на GitHub.
Да, спасибо! Я в нем забыл дописать директории src/Auth/Test и src/Http/Test
:)
Годный контент! Спасибо. Дмитрий есть вопрос, будет ли реализация автоматической генерации документации к API, на подобии Swagger?
Спасибо, Дмитрий, за отличный контент!
В одном из тестов ошибка. testNotActive. Там должен быть вызов метода requestEmailChanging вместо requestPasswordReset.
Исправили. Спасибо!
Кейс: отправка подтверждения. Когда мы ищем есть ли уже пользователи с таким email, надо учитывать текущего пользователя, которому мы отправляем подтверждение. Т.е. хендлер команды будет всегда возвращать DomainException. строка 41.
Нет никакого смысла давать менять email на такой же. Так что это учитывать необязательно.
Если пользователь запросил смену email, но опечатался, то получается он не сможет ввести второй раз уже верный email? Ведь тогда токен будет не null и не получится второй раз сделать запрос, только когда токен истечет по времени
Да, только когда токен истечёт по времени.
Или войти через: