Laravel усиливает эхо / печать / возвращает токен при регистрации пользователя или отправке пароля электронной почты
Есть ли способ узнать, как laravel fortify генерирует токен при регистрации пользователя (путем отправки подтверждения по электронной почте с токеном), а также при сбросе пароля пользователем (токен, отправленный со ссылкой для сброса пароля). Я хочу распечатать / повторить их для использования во время модульных тестов.
1 ответ
Я использую Cypress для тестирования внешнего интерфейса, и это тоже нужно. В моем случае я определил конкретные маршруты, к которым кипарис может получить доступ, чтобы получить токен. Внутри контроллера я делаю так:
public function show (Request $request) {
$broker = Password::broker(config('fortify.passwords'));
$token = $broker->createToken($request->user());
return response()->json($token);
}
Это просто возвращает токен.
Я могу запустить такой тест:
it('Should be possible to access the password reset page', () => {
cy.createUserAndLogin().then(user => {
cy.resetToken().then(token => {
cy.logout()
// Visit the password reset page:
cy.visit('/reset-password/' + token + '?email=' + user.email)
// Fill the form:
cy.get('[name=password]').type('A completely new Password 1')
cy.get('[name=password_confirmation]').type('A completely new Password 1')
cy.get('button.primary').click()
// I should now be able to login:
cy.visit('/login')
cy.get('[name=email]').type(user.email)
cy.get('[name=password]').type('A completely new Password 1')
cy.get('#loginform').submit()
cy.location('pathname').should('eq', '/spa')
})
})
})
cy.resetToken().then(token => {})
выполняет фактический вызов сервера с помощью команды поддержки кипариса и возвращает токен.
Конечно, фокус в
cy.visit('/reset-password/' + token + '?email=' + user.email)
линия. Вы можете сделать нечто подобное в своей системе тестирования внешнего интерфейса.