public function postChangedPassword(PasswordBroker $passwordBroker) { $validationResult = $this->validate(ResetPasswordByCodePostRequest::class); if (!$validationResult->isValid('password') || !$validationResult->isValid('password_confirmation')) { return view('reset_password.new_password', ['validationResult' => $validationResult, 'data' => $this->getValidatedData()]); } if ($validationResult->isValid() && $passwordBroker->reset($this->getValidatedData())) { return redirect(route('auth.login'))->with('message.password_changed', trans('reset_password.new_password.message.password_changed')); } return $this->requestCode()->with('message', trans('reset_password.new_password.message.invalid_link')); }
/** @test */ public function it_return_same_code_for_second_request() { $notifier = $this->mock('App\\Contracts\\Notifications\\UserNotifier'); $notifier->shouldReceive('sendResetPasswordInfo')->twice(); $userRepoMock = $this->app->make('App\\Repositories\\UserRepository'); $actionLog = $this->app->make('App\\Contracts\\Log\\ActionsLog'); $credentials = ['email' => $this->getUserForAuth()->email]; $passwordBroker = new PasswordBroker($userRepoMock, $notifier, $actionLog); $passwordResetToken = $passwordBroker->sendResetInformation($credentials); $secondPasswordResetToken = $passwordBroker->sendResetInformation($credentials); $this->assertEquals($secondPasswordResetToken->getDecryptedCode(), $passwordResetToken->getDecryptedCode()); $this->assertEquals($secondPasswordResetToken->id, $passwordResetToken->id); }