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)линия. Вы можете сделать нечто подобное в своей системе тестирования внешнего интерфейса.

Другие вопросы по тегам