forgot password test

This commit is contained in:
Mussie Teshome 2023-06-26 14:53:38 +03:00
parent cd61c71bbd
commit 22c269ebc8

View File

@ -4,6 +4,7 @@ import (
"testing" "testing"
"github.com/authorizerdev/authorizer/server/constants" "github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/refs"
"github.com/authorizerdev/authorizer/server/db" "github.com/authorizerdev/authorizer/server/db"
"github.com/authorizerdev/authorizer/server/graph/model" "github.com/authorizerdev/authorizer/server/graph/model"
"github.com/authorizerdev/authorizer/server/resolvers" "github.com/authorizerdev/authorizer/server/resolvers"
@ -14,6 +15,7 @@ func forgotPasswordTest(t *testing.T, s TestSetup) {
t.Helper() t.Helper()
t.Run(`should run forgot password`, func(t *testing.T) { t.Run(`should run forgot password`, func(t *testing.T) {
_, ctx := createContext(s) _, ctx := createContext(s)
phoneNumber := "2234567890"
email := "forgot_password." + s.TestInfo.Email email := "forgot_password." + s.TestInfo.Email
res, err := resolvers.SignupResolver(ctx, model.SignUpInput{ res, err := resolvers.SignupResolver(ctx, model.SignUpInput{
Email: email, Email: email,
@ -23,7 +25,7 @@ func forgotPasswordTest(t *testing.T, s TestSetup) {
assert.NoError(t, err) assert.NoError(t, err)
assert.NotNil(t, res) assert.NotNil(t, res)
forgotPasswordRes, err := resolvers.ForgotPasswordResolver(ctx, model.ForgotPasswordInput{ forgotPasswordRes, err := resolvers.ForgotPasswordResolver(ctx, model.ForgotPasswordInput{
Email: email, EmailOrPhone: email,
}) })
assert.Nil(t, err, "no errors for forgot password") assert.Nil(t, err, "no errors for forgot password")
assert.NotNil(t, forgotPasswordRes) assert.NotNil(t, forgotPasswordRes)
@ -32,6 +34,33 @@ func forgotPasswordTest(t *testing.T, s TestSetup) {
assert.Equal(t, verificationRequest.Identifier, constants.VerificationTypeForgotPassword) assert.Equal(t, verificationRequest.Identifier, constants.VerificationTypeForgotPassword)
// Signup using phone and forget password
signUpRes, err := resolvers.MobileSignupResolver(ctx, &model.MobileSignUpInput{
Email: refs.NewStringRef(email),
PhoneNumber: phoneNumber,
Password: s.TestInfo.Password,
ConfirmPassword: s.TestInfo.Password,
})
assert.NoError(t, err)
assert.NotNil(t, signUpRes)
smsRequest, err := db.Provider.GetCodeByPhone(ctx, phoneNumber)
assert.NoError(t, err)
assert.NotEmpty(t, smsRequest.Code)
verifySMSRequest, err := resolvers.VerifyMobileResolver(ctx, model.VerifyMobileRequest{
PhoneNumber: phoneNumber,
Code: smsRequest.Code,
})
assert.Nil(t, err)
assert.NotEqual(t, verifySMSRequest.Message, "", "message should not be empty")
forgotPasswordWithPhone, err := resolvers.ForgotPasswordResolver(ctx, model.ForgotPasswordInput{
EmailOrPhone: phoneNumber,
})
assert.Nil(t, err)
assert.NotNil(t, forgotPasswordWithPhone, "verification code has been sent to your phone")
cleanData(email) cleanData(email)
}) })
} }