Skip to content

Commit cf96a00

Browse files
committed
Fix tests for verifying otp using mfa session
1 parent 09cfad9 commit cf96a00

File tree

5 files changed

+80
-1
lines changed

5 files changed

+80
-1
lines changed

server/resolvers/verify_otp.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,15 @@ func VerifyOtpResolver(ctx context.Context, params model.VerifyOTPRequest) (*mod
3131
mfaSession, err := cookie.GetMfaSession(gc)
3232
if err != nil {
3333
log.Debug("Failed to get otp request by email: ", err)
34+
// // Ignore mfa session error in test env
35+
// // dont trigger email sending in case of test
36+
// envKey, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyEnv)
37+
// if err != nil {
38+
// envKey = ""
39+
// }
40+
// if envKey != constants.TestEnv {
41+
//
42+
// }
3443
return res, fmt.Errorf(`invalid session: %s`, err.Error())
3544
}
3645

@@ -76,6 +85,15 @@ func VerifyOtpResolver(ctx context.Context, params model.VerifyOTPRequest) (*mod
7685

7786
if _, err := memorystore.Provider.GetMfaSession(user.ID, mfaSession); err != nil {
7887
log.Debug("Failed to get mfa session: ", err)
88+
// Ignore mfa session error in test env
89+
// dont trigger email sending in case of test
90+
// envKey, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyEnv)
91+
// if err != nil {
92+
// envKey = ""
93+
// }
94+
// if envKey != constants.TestEnv {
95+
//
96+
// }
7997
return res, fmt.Errorf(`invalid session: %s`, err.Error())
8098
}
8199

server/test/mobile_login_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package test
22

33
import (
4+
"fmt"
5+
"strings"
46
"testing"
7+
"time"
58

9+
"github.com/authorizerdev/authorizer/server/constants"
610
"github.com/authorizerdev/authorizer/server/db"
711
"github.com/authorizerdev/authorizer/server/graph/model"
12+
"github.com/authorizerdev/authorizer/server/memorystore"
813
"github.com/authorizerdev/authorizer/server/refs"
914
"github.com/authorizerdev/authorizer/server/resolvers"
15+
"github.com/google/uuid"
1016
"github.com/stretchr/testify/assert"
1117
)
1218

@@ -48,6 +54,17 @@ func mobileLoginTests(t *testing.T, s TestSetup) {
4854
smsRequest, err := db.Provider.GetOTPByPhoneNumber(ctx, phoneNumber)
4955
assert.NoError(t, err)
5056
assert.NotEmpty(t, smsRequest.Otp)
57+
// Get user by phone number
58+
user, err := db.Provider.GetUserByPhoneNumber(ctx, phoneNumber)
59+
assert.NoError(t, err)
60+
assert.NotNil(t, user)
61+
// Set mfa cookie session
62+
mfaSession := uuid.NewString()
63+
memorystore.Provider.SetMfaSession(user.ID, mfaSession, time.Now().Add(1*time.Minute).Unix())
64+
cookie := fmt.Sprintf("%s=%s;", constants.MfaCookieName+"_session", mfaSession)
65+
cookie = strings.TrimSuffix(cookie, ";")
66+
req, ctx := createContext(s)
67+
req.Header.Set("Cookie", cookie)
5168
verifySMSRequest, err := resolvers.VerifyOtpResolver(ctx, model.VerifyOTPRequest{
5269
PhoneNumber: &phoneNumber,
5370
Otp: smsRequest.Otp,

server/test/mobile_signup_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package test
22

33
import (
4+
"fmt"
5+
"strings"
46
"testing"
7+
"time"
58

69
"github.com/authorizerdev/authorizer/server/constants"
710
"github.com/authorizerdev/authorizer/server/db"
811
"github.com/authorizerdev/authorizer/server/graph/model"
912
"github.com/authorizerdev/authorizer/server/memorystore"
1013
"github.com/authorizerdev/authorizer/server/refs"
1114
"github.com/authorizerdev/authorizer/server/resolvers"
15+
"github.com/google/uuid"
1216
"github.com/stretchr/testify/assert"
1317
)
1418

@@ -79,6 +83,17 @@ func mobileSingupTest(t *testing.T, s TestSetup) {
7983
otp, err := db.Provider.GetOTPByPhoneNumber(ctx, phoneNumber)
8084
assert.Nil(t, err)
8185
assert.NotEmpty(t, otp.Otp)
86+
// Get user by phone number
87+
user, err := db.Provider.GetUserByPhoneNumber(ctx, phoneNumber)
88+
assert.NoError(t, err)
89+
assert.NotNil(t, user)
90+
// Set mfa cookie session
91+
mfaSession := uuid.NewString()
92+
memorystore.Provider.SetMfaSession(user.ID, mfaSession, time.Now().Add(1*time.Minute).Unix())
93+
cookie := fmt.Sprintf("%s=%s;", constants.MfaCookieName+"_session", mfaSession)
94+
cookie = strings.TrimSuffix(cookie, ";")
95+
req, ctx := createContext(s)
96+
req.Header.Set("Cookie", cookie)
8297
otpRes, err := resolvers.VerifyOtpResolver(ctx, model.VerifyOTPRequest{
8398
PhoneNumber: &phoneNumber,
8499
Otp: otp.Otp,

server/test/resend_otp_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@ package test
22

33
import (
44
"context"
5+
"fmt"
6+
"strings"
57
"testing"
8+
"time"
69

710
"github.com/authorizerdev/authorizer/server/constants"
811
"github.com/authorizerdev/authorizer/server/db"
912
"github.com/authorizerdev/authorizer/server/graph/model"
13+
"github.com/authorizerdev/authorizer/server/memorystore"
1014
"github.com/authorizerdev/authorizer/server/refs"
1115
"github.com/authorizerdev/authorizer/server/resolvers"
16+
"github.com/google/uuid"
1217
"github.com/stretchr/testify/assert"
1318
)
1419

@@ -89,6 +94,16 @@ func resendOTPTest(t *testing.T, s TestSetup) {
8994
})
9095
assert.Error(t, err)
9196
assert.Nil(t, verifyOtpRes)
97+
// Get user by email
98+
user, err := db.Provider.GetUserByEmail(ctx, email)
99+
assert.NoError(t, err)
100+
assert.NotNil(t, user)
101+
// Set mfa cookie session
102+
mfaSession := uuid.NewString()
103+
memorystore.Provider.SetMfaSession(user.ID, mfaSession, time.Now().Add(1*time.Minute).Unix())
104+
cookie := fmt.Sprintf("%s=%s;", constants.MfaCookieName+"_session", mfaSession)
105+
cookie = strings.TrimSuffix(cookie, ";")
106+
req.Header.Set("Cookie", cookie)
92107
verifyOtpRes, err = resolvers.VerifyOtpResolver(ctx, model.VerifyOTPRequest{
93108
Email: &email,
94109
Otp: newOtp.Otp,

server/test/verify_otp_test.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,18 @@ package test
22

33
import (
44
"context"
5+
"fmt"
6+
"strings"
57
"testing"
8+
"time"
69

710
"github.com/authorizerdev/authorizer/server/constants"
811
"github.com/authorizerdev/authorizer/server/db"
912
"github.com/authorizerdev/authorizer/server/graph/model"
13+
"github.com/authorizerdev/authorizer/server/memorystore"
1014
"github.com/authorizerdev/authorizer/server/refs"
1115
"github.com/authorizerdev/authorizer/server/resolvers"
16+
"github.com/google/uuid"
1217
"github.com/stretchr/testify/assert"
1318
)
1419

@@ -63,7 +68,16 @@ func verifyOTPTest(t *testing.T, s TestSetup) {
6368
otp, err := db.Provider.GetOTPByEmail(ctx, email)
6469
assert.NoError(t, err)
6570
assert.NotEmpty(t, otp.Otp)
66-
71+
// Get user by email
72+
user, err := db.Provider.GetUserByEmail(ctx, email)
73+
assert.NoError(t, err)
74+
assert.NotNil(t, user)
75+
// Set mfa cookie session
76+
mfaSession := uuid.NewString()
77+
memorystore.Provider.SetMfaSession(user.ID, mfaSession, time.Now().Add(1*time.Minute).Unix())
78+
cookie := fmt.Sprintf("%s=%s;", constants.MfaCookieName+"_session", mfaSession)
79+
cookie = strings.TrimSuffix(cookie, ";")
80+
req.Header.Set("Cookie", cookie)
6781
verifyOtpRes, err := resolvers.VerifyOtpResolver(ctx, model.VerifyOTPRequest{
6882
Email: &email,
6983
Otp: otp.Otp,

0 commit comments

Comments
 (0)