Skip to content

Commit 2726e57

Browse files
committed
fix: fixes to make tests work in ep and ev
1 parent 1bb72cd commit 2726e57

File tree

15 files changed

+96
-75
lines changed

15 files changed

+96
-75
lines changed

recipe/emailpassword/emailExistsAndVerificationCheck_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,9 @@ func TestGenerateTokenAPIWithValidInputNoSessionAndCheckOutput(t *testing.T) {
491491
WebsiteDomain: "supertokens.io",
492492
},
493493
RecipeList: []supertokens.Recipe{
494+
emailverification.Init(evmodels.TypeInput{
495+
Mode: evmodels.ModeOptional,
496+
}),
494497
Init(nil),
495498
session.Init(&sessmodels.TypeInput{
496499
AntiCsrf: &customAntiCsrfVal,

recipe/emailpassword/emailpassword_email_test.go

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ func TestDefaultBackwardCompatibilityEmailVerifyForEmailPasswordUser(t *testing.
350350
unittesting.StartUpST("localhost", "8080")
351351
defer AfterEach()
352352

353-
testServer := supertokensInitForTest(t, session.Init(nil), Init(nil))
353+
testServer := supertokensInitForTest(t, session.Init(nil), Init(nil), emailverification.Init(evmodels.TypeInput{Mode: evmodels.ModeOptional}))
354354
defer testServer.Close()
355355

356356
resp, err := unittesting.SignupRequest("[email protected]", "1234abcd", testServer.URL)
@@ -380,6 +380,7 @@ func TestBackwardCompatibilityEmailVerifyForEmailPasswordUser(t *testing.T) {
380380
t,
381381
session.Init(nil),
382382
emailverification.Init(evmodels.TypeInput{
383+
Mode: evmodels.ModeOptional,
383384
CreateAndSendCustomEmail: func(user evmodels.User, emailVerificationURLWithToken string, userContext supertokens.UserContext) {
384385
email = user.Email
385386
emailVerifyLink = emailVerificationURLWithToken
@@ -418,22 +419,26 @@ func TestCustomOverrideEmailVerifyForEmailPasswordUser(t *testing.T) {
418419
email := ""
419420
emailVerifyLink := ""
420421

421-
tpepConfig := &epmodels.TypeInput{
422-
EmailDelivery: &emaildelivery.TypeInput{
423-
Override: func(originalImplementation emaildelivery.EmailDeliveryInterface) emaildelivery.EmailDeliveryInterface {
424-
*originalImplementation.SendEmail = func(input emaildelivery.EmailType, userContext supertokens.UserContext) error {
425-
if input.EmailVerification != nil {
426-
customCalled = true
427-
email = input.EmailVerification.User.Email
428-
emailVerifyLink = input.EmailVerification.EmailVerifyLink
422+
testServer := supertokensInitForTest(t,
423+
session.Init(nil),
424+
Init(nil),
425+
emailverification.Init(evmodels.TypeInput{
426+
Mode: evmodels.ModeOptional,
427+
EmailDelivery: &emaildelivery.TypeInput{
428+
Override: func(originalImplementation emaildelivery.EmailDeliveryInterface) emaildelivery.EmailDeliveryInterface {
429+
*originalImplementation.SendEmail = func(input emaildelivery.EmailType, userContext supertokens.UserContext) error {
430+
if input.EmailVerification != nil {
431+
customCalled = true
432+
email = input.EmailVerification.User.Email
433+
emailVerifyLink = input.EmailVerification.EmailVerifyLink
434+
}
435+
return nil
429436
}
430-
return nil
431-
}
432-
return originalImplementation
437+
return originalImplementation
438+
},
433439
},
434-
},
435-
}
436-
testServer := supertokensInitForTest(t, session.Init(nil), Init(tpepConfig))
440+
}),
441+
)
437442
defer testServer.Close()
438443

439444
resp, err := unittesting.SignupRequest("[email protected]", "1234abcd", testServer.URL)
@@ -492,12 +497,16 @@ func TestSMTPOverrideEmailVerifyForEmailPasswordUser(t *testing.T) {
492497
return originalImplementation
493498
},
494499
})
495-
tpepConfig := &epmodels.TypeInput{
496-
EmailDelivery: &emaildelivery.TypeInput{
497-
Service: smtpService,
498-
},
499-
}
500-
testServer := supertokensInitForTest(t, session.Init(nil), Init(tpepConfig))
500+
testServer := supertokensInitForTest(t,
501+
session.Init(nil),
502+
Init(nil),
503+
emailverification.Init(evmodels.TypeInput{
504+
Mode: evmodels.ModeOptional,
505+
EmailDelivery: &emaildelivery.TypeInput{
506+
Service: smtpService,
507+
},
508+
}),
509+
)
501510
defer testServer.Close()
502511

503512
resp, err := unittesting.SignupRequest("[email protected]", "1234abcd", testServer.URL)

recipe/emailpassword/recipe.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (r *Recipe) handleError(err error, req *http.Request, res http.ResponseWrit
180180
"formFields": errs.Payload,
181181
})
182182
}
183-
return false, err
183+
return false, nil
184184
}
185185

186186
func (r *Recipe) getEmailForUserId(userID string, userContext supertokens.UserContext) (evmodels.TypeEmailInfo, error) {

recipe/emailverification/emailverificationClaim.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
// key string, fetchValue claims.FetchValueFunc
13-
func NewEmailVerificationClaim() (claims.TypeSessionClaim, evclaims.TypeEmailVerificationClaimValidators) {
13+
func NewEmailVerificationClaim() (*claims.TypeSessionClaim, evclaims.TypeEmailVerificationClaimValidators) {
1414
fetchValue := func(userId string, userContext supertokens.UserContext) (interface{}, error) {
1515
instance, err := getRecipeInstanceOrThrowError()
1616
if err != nil {

recipe/emailverification/emailverification_email_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,13 @@ func TestBackwardCompatibilityServiceWithoutCustomFunction(t *testing.T) {
3737
},
3838
RecipeList: []supertokens.Recipe{
3939
Init(evmodels.TypeInput{
40-
Mode: "OPTIONAL",
40+
Mode: evmodels.ModeOptional,
4141
GetEmailForUserID: func(userID string, userContext supertokens.UserContext) (evmodels.TypeEmailInfo, error) {
42-
return evmodels.TypeEmailInfo{}, nil
42+
return evmodels.TypeEmailInfo{
43+
OK: &struct{ Email string }{
44+
Email: "someEmail",
45+
},
46+
}, nil
4347
},
4448
}),
4549
},

recipe/emailverification/evclaims/claims.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ type TypeEmailVerificationClaimValidators struct {
99
IsVerified func(refetchTimeOnFalseInSeconds *int64) claims.SessionClaimValidator
1010
}
1111

12-
var EmailVerificationClaim claims.TypeSessionClaim
12+
var EmailVerificationClaim *claims.TypeSessionClaim
1313

1414
var EmailVerificationClaimValidators TypeEmailVerificationClaimValidators

recipe/emailverification/recipe.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,9 @@ func MakeRecipe(recipeId string, appInfo supertokens.NormalisedAppinfo, config e
9090
if emailRes.UnknownUserIDError != nil {
9191
return emailRes, nil
9292
}
93+
if emailRes.OK != nil {
94+
return emailRes, nil
95+
}
9396
}
9497
return evmodels.TypeEmailInfo{
9598
UnknownUserIDError: &struct{}{},
@@ -124,17 +127,15 @@ func recipeInit(config evmodels.TypeInput) supertokens.Recipe {
124127
singletonInstance = &recipe
125128

126129
supertokens.AddPostInitCallback(func() error {
127-
sessionRecipe, err := session.GetRecipeInstanceOrThrowError()
128-
if err != nil {
129-
return err
130-
}
131-
132-
sessionRecipe.AddClaimFromOtherRecipe(evclaims.EmailVerificationClaim)
133-
134-
if config.Mode == "REQUIRED" {
135-
sessionRecipe.AddClaimValidatorFromOtherRecipe(
136-
evclaims.EmailVerificationClaimValidators.IsVerified(nil),
137-
)
130+
sessionRecipe := session.GetRecipeInstance()
131+
if sessionRecipe != nil {
132+
sessionRecipe.AddClaimFromOtherRecipe(evclaims.EmailVerificationClaim)
133+
134+
if config.Mode == "REQUIRED" {
135+
sessionRecipe.AddClaimValidatorFromOtherRecipe(
136+
evclaims.EmailVerificationClaimValidators.IsVerified(nil),
137+
)
138+
}
138139
}
139140
return nil
140141
})

recipe/session/claims/booleanClaim.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package claims
22

3-
func BooleanClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (TypeSessionClaim, BooleanClaimValidators) {
3+
func BooleanClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (*TypeSessionClaim, BooleanClaimValidators) {
44
claim, primitiveClaimValidators := PrimitiveClaim(key, fetchValue, defaultMaxAgeInSeconds)
55

66
validators := BooleanClaimValidators{

recipe/session/claims/claims.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import (
44
"github.com/supertokens/supertokens-golang/supertokens"
55
)
66

7-
func SessionClaim(key string, fetchValue FetchValueFunc) TypeSessionClaim {
8-
sessionClaim := TypeSessionClaim{
7+
func SessionClaim(key string, fetchValue FetchValueFunc) *TypeSessionClaim {
8+
sessionClaim := &TypeSessionClaim{
99
Key: key,
1010
FetchValue: fetchValue,
1111
}

recipe/session/claims/primitiveArrayClaim.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"github.com/supertokens/supertokens-golang/supertokens"
77
)
88

9-
func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (TypeSessionClaim, PrimitiveArrayClaimValidators) {
9+
func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInSeconds *int64) (*TypeSessionClaim, PrimitiveArrayClaimValidators) {
1010
if defaultMaxAgeInSeconds == nil {
1111
val := int64(300)
1212
defaultMaxAgeInSeconds = &val
@@ -58,7 +58,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
5858
}
5959
return &SessionClaimValidator{
6060
ID: claimId,
61-
Claim: &sessionClaim,
61+
Claim: sessionClaim,
6262
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
6363
claimVal, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
6464
if !ok || claimVal == nil {
@@ -119,7 +119,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
119119
}
120120
return &SessionClaimValidator{
121121
ID: claimId,
122-
Claim: &sessionClaim,
122+
Claim: sessionClaim,
123123
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
124124
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
125125
if !ok || val == nil {
@@ -180,7 +180,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
180180
}
181181
return &SessionClaimValidator{
182182
ID: claimId,
183-
Claim: &sessionClaim,
183+
Claim: sessionClaim,
184184
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
185185
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
186186
if !ok || val == nil {
@@ -242,7 +242,7 @@ func PrimitiveArrayClaim(key string, fetchValue FetchValueFunc, defaultMaxAgeInS
242242
}
243243
return &SessionClaimValidator{
244244
ID: claimId,
245-
Claim: &sessionClaim,
245+
Claim: sessionClaim,
246246
ShouldRefetch: func(payload map[string]interface{}, userContext supertokens.UserContext) bool {
247247
val, ok := sessionClaim.GetValueFromPayload(payload, userContext).([]interface{})
248248
if !ok || val == nil {

0 commit comments

Comments
 (0)